{"version":3,"file":"metadata.mjs","sources":["../../../../server/src/controllers/utils/metadata.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\nimport { async } from '@strapi/utils';\n\nimport { getService } from '../../utils';\n\nimport { DocumentVersion, GetMetadataOptions } from '../../services/document-metadata';\n\nimport type {\n AvailableLocaleDocument,\n AvailableStatusDocument,\n} from '../../../../shared/contracts/collection-types';\n\n/**\n * Format a document with metadata. Making sure the metadata response is\n * correctly sanitized for the current user\n */\nexport const formatDocumentWithMetadata = async (\n permissionChecker: any,\n uid: UID.ContentType,\n document: DocumentVersion,\n opts: GetMetadataOptions = {}\n) => {\n const documentMetadata = getService('document-metadata');\n\n const serviceOutput = await documentMetadata.formatDocumentWithMetadata(uid, document, opts);\n\n let {\n meta: { availableLocales, availableStatus },\n } = serviceOutput;\n\n const metadataSanitizer = permissionChecker.sanitizeOutput;\n\n availableLocales = await async.map(\n availableLocales,\n async (localeDocument: AvailableLocaleDocument) => metadataSanitizer(localeDocument)\n );\n\n availableStatus = await async.map(\n availableStatus,\n async (statusDocument: AvailableStatusDocument) => metadataSanitizer(statusDocument)\n );\n\n return {\n ...serviceOutput,\n meta: {\n availableLocales,\n availableStatus,\n },\n };\n};\n"],"names":["formatDocumentWithMetadata","permissionChecker","uid","document","opts","documentMetadata","getService","serviceOutput","meta","availableLocales","availableStatus","metadataSanitizer","sanitizeOutput","async","map","localeDocument","statusDocument"],"mappings":";;;AAYA;;;UAIaA,0BAAAA,GAA6B,OACxCC,mBACAC,GAAAA,EACAC,QAAAA,EACAC,IAAAA,GAA2B,EAAE,GAAA;AAE7B,IAAA,MAAMC,mBAAmBC,UAAAA,CAAW,mBAAA,CAAA;AAEpC,IAAA,MAAMC,gBAAgB,MAAMF,gBAAAA,CAAiBL,0BAA0B,CAACE,KAAKC,QAAAA,EAAUC,IAAAA,CAAAA;IAEvF,IAAI,EACFI,MAAM,EAAEC,gBAAgB,EAAEC,eAAe,EAAE,EAC5C,GAAGH,aAAAA;IAEJ,MAAMI,iBAAAA,GAAoBV,kBAAkBW,cAAc;AAE1DH,IAAAA,gBAAAA,GAAmB,MAAMI,KAAAA,CAAMC,GAAG,CAChCL,gBAAAA,EACA,OAAOM,iBAA4CJ,iBAAAA,CAAkBI,cAAAA,CAAAA,CAAAA;AAGvEL,IAAAA,eAAAA,GAAkB,MAAMG,KAAAA,CAAMC,GAAG,CAC/BJ,eAAAA,EACA,OAAOM,iBAA4CL,iBAAAA,CAAkBK,cAAAA,CAAAA,CAAAA;IAGvE,OAAO;AACL,QAAA,GAAGT,aAAa;QAChBC,IAAAA,EAAM;AACJC,YAAAA,gBAAAA;AACAC,YAAAA;AACF;AACF,KAAA;AACF;;;;"}