{"version":3,"file":"usage.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/admin/byline-fields/[slug]/usage.ts"],"sourcesContent":["/**\n * Byline field usage counts.\n *\n * GET /_emdash/api/admin/byline-fields/{slug}/usage\n *\n * Returns `{ translatableValueCount, groupValueCount, totalAffectedRows }`.\n * Backs the destructive-delete confirm dialog in the admin UI (Phase 5).\n * Thin wrapper around `handleBylineFieldUsage`.\n *\n * Phase 4 of Discussion #1174.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleBylineFieldUsage } from \"#api/handlers/byline-fields.js\";\n\nexport const prerender = false;\n\n// GET requires `schema:read` (Editor+); see byline-fields/index.ts GET\n// for rationale on the read/manage split.\nexport const GET: APIRoute = async ({ params, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst denied = requirePerm(user, \"schema:read\");\n\tif (denied) return denied;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst slug = params.slug;\n\tif (!slug) return apiError(\"MISSING_PARAM\", \"Field slug is required\", 400);\n\n\tconst result = await handleBylineFieldUsage(emdash.db, slug);\n\treturn unwrapResult(result);\n};\n"],"mappings":";;;;;;;;AAkBA,MAAa,YAAY;AAIzB,MAAa,MAAgB,OAAO,EAAE,QAAQ,aAAa;CAC1D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,SAAS,YAAY,MAAM,cAAc;AAC/C,KAAI,OAAQ,QAAO;CAEnB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KAAM,QAAO,SAAS,iBAAiB,0BAA0B,IAAI;AAG1E,QAAO,aADQ,MAAM,uBAAuB,OAAO,IAAI,KAAK,CACjC"}