{ "version": 3, "sources": ["../../../app/media/utils.ts"], "sourcesContent": ["import { AssetExtension, AssetScale } from './configs';\nimport { VideoSourceType } from '~/typings/media';\n\nimport type { Asset } from '~/typings/media';\n\n\nconst VIDEO_MIME_TYPE_REGEX = /^video\\/.*/;\nconst IMAGE_MIME_TYPE_REGEX = /^image\\/.*/;\nconst GIF_REGEX = /gif$/;\n\nconst isVideo = (asset: Asset): boolean =>\n VIDEO_MIME_TYPE_REGEX.test(asset?.mimeType);\n\nconst isImage = (asset: Asset): boolean =>\n IMAGE_MIME_TYPE_REGEX.test(asset.mimeType);\n\nconst isGif = (asset: Asset) => GIF_REGEX.test(asset.mimeType);\n\nconst getSourceUrl = (asset: Asset, scale = AssetScale.X_3) => {\n const { damId } = asset;\n\n const isVideoAsset = isVideo(asset);\n\n // Presently, DAM doesn't have support for video streaming. Therefor, original\n // asset url is used.\n if (isVideoAsset) {\n return asset.originalUrl;\n }\n // Uncomment this code when streaming is supported\n // if (isVideoAsset && asset.streamHlsUrl) {\n // return asset.streamHlsUrl;\n // }\n\n const pathSegments: string[] = [isVideoAsset ? '' : scale, damId].filter(\n (v) => !!v\n );\n\n const path = pathSegments.join('/');\n\n const extension = isVideoAsset\n ? AssetExtension.MP4\n : isGif(asset)\n ? AssetExtension.GIF\n : AssetExtension.WEBP;\n\n return `${path}.${extension}`;\n};\n\nconst getImageSource = (asset: Asset, scale = AssetScale.X_3): string => {\n const { damId } = asset;\n let path = `${isGif(asset) ? AssetScale.ORIGINAL : scale}/${damId}`;\n const extension = isGif(asset) ? AssetExtension.GIF : AssetExtension.WEBP;\n return `${path}.${extension}`;\n};\n\nconst getVideoSource = (asset: Asset) =>\n asset.streamUrl\n ? [VideoSourceType.STREAM, asset.streamUrl, asset.originalUrl]\n : [VideoSourceType.CONTAINER, asset.originalUrl, asset.originalUrl];\n\nexport {\n getImageSource,\n getSourceUrl,\n getVideoSource,\n isGif,\n isImage,\n isVideo,\n};\n"], "mappings": "AAMA,IAAMA,EAAwB,aACxBC,EAAwB,aACxBC,EAAY,OAEZC,EAAWC,GACfJ,EAAsB,KAAKI,GAAO,QAAQ,EAEtCC,EAAWD,GACfH,EAAsB,KAAKG,EAAM,QAAQ,EAErCE,EAASF,GAAiBF,EAAU,KAAKE,EAAM,QAAQ,EAEvDG,EAAe,CAACH,EAAcI,eAA2B,CAC7D,GAAM,CAAE,MAAAC,CAAM,EAAIL,EAEZM,EAAeP,EAAQC,CAAK,EAIlC,GAAIM,EACF,OAAON,EAAM,YAWf,IAAMO,EAJyB,CAACD,EAAe,GAAKF,EAAOC,CAAK,EAAE,OAC/DG,GAAM,CAAC,CAACA,CACX,EAE0B,KAAK,GAAG,EAE5BC,EAAYH,QAEdJ,EAAMF,CAAK,eAIf,MAAO,GAAGO,KAAQE,GACpB,EAEMC,EAAiB,CAACV,EAAcI,eAAmC,CACvE,GAAM,CAAE,MAAAC,CAAM,EAAIL,EACdO,EAAO,GAAGL,EAAMF,CAAK,aAA0BI,KAASC,IACtDI,EAAYP,EAAMF,CAAK,eAC7B,MAAO,GAAGO,KAAQE,GACpB,EAEME,EAAkBX,GACtBA,EAAM,UACF,UAAyBA,EAAM,UAAWA,EAAM,WAAW,EAC3D,aAA4BA,EAAM,YAAaA,EAAM,WAAW", "names": ["VIDEO_MIME_TYPE_REGEX", "IMAGE_MIME_TYPE_REGEX", "GIF_REGEX", "isVideo", "asset", "isImage", "isGif", "getSourceUrl", "scale", "damId", "isVideoAsset", "path", "v", "extension", "getImageSource", "getVideoSource"] }