{"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;;;;"}