{"version":3,"file":"thumbnailAfterChange.mjs","names":["thumbnailAfterChangeHook: CollectionAfterChangeHook"],"sources":["../../src/collectionHooks/thumbnailAfterChange.ts"],"sourcesContent":["import { buildThumbnailURL } from '../utils/buildThumbnailURL'\nimport { s3Store } from '../plugin'\nimport { MediaCloudErrors } from '../types/errors'\nimport { useErrorHandler } from '../hooks/useErrorHandler'\n\nimport type { CollectionAfterChangeHook } from 'payload'\n\nexport const thumbnailAfterChangeHook: CollectionAfterChangeHook = async ({\n  collection,\n  doc,\n  previousDoc,\n  req,\n}) => {\n  const { throwError } = useErrorHandler()\n\n  // Skip if this is an internal update to prevent infinite loop\n  if (req.context?._mediaCloudPluginInternal) {\n    return doc\n  }\n\n  // Handle thumbnail\n  if (!doc.thumbnail || previousDoc?.path !== doc.path) {\n    try {\n      const thumbnail = buildThumbnailURL({\n        storage: doc.storage,\n        playbackId: doc.storage === 'mux' ? doc.mux.playbackId : undefined,\n        s3Key: doc.storage === 's3' ? (doc.path ?? doc.filename) : undefined,\n        s3Store,\n      })\n\n      req.context = { ...req.context }\n      req.context._mediaCloudPluginInternal = true\n\n      const update = await req.payload.update({\n        collection: collection.slug,\n        id: doc.id,\n        data: { thumbnail },\n        req,\n      })\n\n      delete req.context._mediaCloudPluginInternal\n\n      return update\n    } catch (error) {\n      throwError({\n        ...MediaCloudErrors.THUMBNAIL_GENERATION_ERROR,\n        cause: error,\n      })\n    }\n  }\n\n  return doc\n}\n"],"mappings":";;;;;;AAOA,MAAaA,2BAAsD,OAAO,EACxE,YACA,KACA,aACA,UACI;CACJ,MAAM,EAAE,eAAe,iBAAiB;AAGxC,KAAI,IAAI,SAAS,0BACf,QAAO;AAIT,KAAI,CAAC,IAAI,aAAa,aAAa,SAAS,IAAI,KAC9C,KAAI;EACF,MAAM,YAAY,kBAAkB;GAClC,SAAS,IAAI;GACb,YAAY,IAAI,YAAY,QAAQ,IAAI,IAAI,aAAa;GACzD,OAAO,IAAI,YAAY,OAAQ,IAAI,QAAQ,IAAI,WAAY;GAC3D;GACD,CAAC;AAEF,MAAI,UAAU,EAAE,GAAG,IAAI,SAAS;AAChC,MAAI,QAAQ,4BAA4B;EAExC,MAAM,SAAS,MAAM,IAAI,QAAQ,OAAO;GACtC,YAAY,WAAW;GACvB,IAAI,IAAI;GACR,MAAM,EAAE,WAAW;GACnB;GACD,CAAC;AAEF,SAAO,IAAI,QAAQ;AAEnB,SAAO;UACA,OAAO;AACd,aAAW;GACT,GAAG,iBAAiB;GACpB,OAAO;GACR,CAAC;;AAIN,QAAO"}