{"version":3,"file":"uninstall.mjs","names":[],"sources":["../../../../../../../src/astro/routes/api/admin/plugins/[id]/uninstall.ts"],"sourcesContent":["/**\n * Marketplace plugin uninstall endpoint\n *\n * POST /_emdash/api/admin/plugins/:id/uninstall - Uninstall a marketplace plugin\n */\n\nimport type { APIRoute } from \"astro\";\nimport { z } from \"zod\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { apiError, unwrapResult } from \"#api/error.js\";\nimport { handleMarketplaceUninstall } from \"#api/index.js\";\nimport { checkMediaUsageActivationWriteFence } from \"#api/media-usage-write-fence.js\";\nimport { isParseError, parseOptionalBody } from \"#api/parse.js\";\n\nexport const prerender = false;\n\nconst uninstallBodySchema = z.object({\n\tdeleteData: z.boolean().optional(),\n});\n\nexport const POST: APIRoute = async ({ params, request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst { id } = params;\n\n\tif (!emdash?.db) {\n\t\treturn apiError(\"NOT_CONFIGURED\", \"EmDash is not initialized\", 500);\n\t}\n\n\tconst denied = requirePerm(user, \"plugins:manage\");\n\tif (denied) return denied;\n\n\tconst activationFence = await checkMediaUsageActivationWriteFence(emdash.db);\n\tif (activationFence) return activationFence;\n\n\tif (!id) {\n\t\treturn apiError(\"INVALID_REQUEST\", \"Plugin ID required\", 400);\n\t}\n\n\tconst body = await parseOptionalBody(request, uninstallBodySchema, {});\n\tif (isParseError(body)) return body;\n\n\tconst result = await handleMarketplaceUninstall(emdash.db, emdash.storage, id, {\n\t\tdeleteData: body.deleteData ?? false,\n\t});\n\n\tif (!result.success) return unwrapResult(result);\n\n\tawait emdash.syncMarketplacePlugins();\n\n\treturn unwrapResult(result);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAa,YAAY;AAEzB,MAAM,sBAAsB,EAAE,OAAO,EACpC,YAAY,EAAE,SAAS,CAAC,UAAU,EAClC,CAAC;AAEF,MAAa,OAAiB,OAAO,EAAE,QAAQ,SAAS,aAAa;CACpE,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,EAAE,OAAO;AAEf,KAAI,CAAC,QAAQ,GACZ,QAAO,SAAS,kBAAkB,6BAA6B,IAAI;CAGpE,MAAM,SAAS,YAAY,MAAM,iBAAiB;AAClD,KAAI,OAAQ,QAAO;CAEnB,MAAM,kBAAkB,MAAM,oCAAoC,OAAO,GAAG;AAC5E,KAAI,gBAAiB,QAAO;AAE5B,KAAI,CAAC,GACJ,QAAO,SAAS,mBAAmB,sBAAsB,IAAI;CAG9D,MAAM,OAAO,MAAM,kBAAkB,SAAS,qBAAqB,EAAE,CAAC;AACtE,KAAI,aAAa,KAAK,CAAE,QAAO;CAE/B,MAAM,SAAS,MAAM,2BAA2B,OAAO,IAAI,OAAO,SAAS,IAAI,EAC9E,YAAY,KAAK,cAAc,OAC/B,CAAC;AAEF,KAAI,CAAC,OAAO,QAAS,QAAO,aAAa,OAAO;AAEhD,OAAM,OAAO,wBAAwB;AAErC,QAAO,aAAa,OAAO"}