{"version":3,"file":"preview.mjs","sources":["../../../../server/src/preview/controllers/preview.ts"],"sourcesContent":["import { join } from 'path';\n\nimport type { Core, UID } from '@strapi/types';\n\nimport { readFile } from 'fs/promises';\nimport { Preview } from '../../../../shared/contracts';\n\nimport { getService } from '../utils';\nimport { validatePreviewUrl } from './validation/preview';\n\nconst createPreviewController = () => {\n return {\n /**\n * Transforms an entry into a preview URL, so that it can be previewed\n * in the Content Manager.\n */\n async getPreviewUrl(ctx) {\n const uid = ctx.params.contentType as UID.ContentType;\n const query = ctx.request.query as Preview.GetPreviewUrl.Request['query'];\n\n // Validate the request parameters\n const params = await validatePreviewUrl(strapi, uid, query);\n\n // TODO: Permissions to preview content\n\n // Get the preview URL by using the user-defined config handler\n const previewService = getService(strapi, 'preview');\n const url = await previewService.getPreviewUrl(uid, params);\n\n // If no url is found, set status to 204\n if (!url) {\n ctx.status = 204;\n }\n\n return {\n data: { url: url || undefined },\n } satisfies Preview.GetPreviewUrl.Response;\n },\n\n /**\n * Serves the standalone preview script verbatim as JavaScript. The admin fetches\n * this, injects the config, and posts it to the preview iframe\n */\n async getPreviewScript(ctx) {\n ctx.type = 'application/javascript';\n ctx.body = await readFile(join(__dirname, 'previewScript.js'), 'utf8');\n },\n } satisfies Core.Controller;\n};\n\nexport { createPreviewController };\n"],"names":["createPreviewController","getPreviewUrl","ctx","uid","params","contentType","query","request","validatePreviewUrl","strapi","previewService","getService","url","status","data","undefined","getPreviewScript","type","body","readFile","join","__dirname"],"mappings":";;;;;AAUA,MAAMA,uBAAAA,GAA0B,IAAA;IAC9B,OAAO;AACL;;;QAIA,MAAMC,eAAcC,GAAG,EAAA;AACrB,YAAA,MAAMC,GAAAA,GAAMD,GAAAA,CAAIE,MAAM,CAACC,WAAW;AAClC,YAAA,MAAMC,KAAAA,GAAQJ,GAAAA,CAAIK,OAAO,CAACD,KAAK;;AAG/B,YAAA,MAAMF,MAAAA,GAAS,MAAMI,kBAAAA,CAAmBC,MAAAA,EAAQN,GAAAA,EAAKG,KAAAA,CAAAA;;;YAKrD,MAAMI,cAAAA,GAAiBC,WAAWF,MAAAA,EAAQ,SAAA,CAAA;AAC1C,YAAA,MAAMG,GAAAA,GAAM,MAAMF,cAAAA,CAAeT,aAAa,CAACE,GAAAA,EAAKC,MAAAA,CAAAA;;AAGpD,YAAA,IAAI,CAACQ,GAAAA,EAAK;AACRV,gBAAAA,GAAAA,CAAIW,MAAM,GAAG,GAAA;AACf,YAAA;YAEA,OAAO;gBACLC,IAAAA,EAAM;AAAEF,oBAAAA,GAAAA,EAAKA,GAAAA,IAAOG;AAAU;AAChC,aAAA;AACF,QAAA,CAAA;AAEA;;;QAIA,MAAMC,kBAAiBd,GAAG,EAAA;AACxBA,YAAAA,GAAAA,CAAIe,IAAI,GAAG,wBAAA;AACXf,YAAAA,GAAAA,CAAIgB,IAAI,GAAG,MAAMC,QAAAA,CAASC,IAAAA,CAAKC,WAAW,kBAAA,CAAA,EAAqB,MAAA,CAAA;AACjE,QAAA;AACF,KAAA;AACF;;;;"}