pomljs
Version:
Prompt Orchestration Markup Language
1 lines • 4.17 kB
Source Map (JSON)
{"version":3,"file":"image.cjs","sources":["../../.build/util/image.js"],"sourcesContent":["import sharp from 'sharp';\nfunction readImage(src, base64) {\n if (src) {\n return sharp(src);\n }\n if (base64) {\n return sharp(Buffer.from(base64, 'base64'));\n }\n throw new Error('src or base64 is required');\n}\nfunction resizeImage(image, metadata, maxWidth, maxHeight, resize) {\n let width = metadata.width || 1;\n let height = metadata.height || 1;\n const resizes = [];\n if (resize) {\n resizes.push(resize);\n }\n if (maxWidth) {\n resizes.push(maxWidth / width);\n }\n if (maxHeight) {\n resizes.push(maxHeight / height);\n }\n if (resizes.length === 0) {\n return image;\n }\n const resizeFactor = Math.min(...resizes);\n return image.resize(Math.round(width * resizeFactor), Math.round(height * resizeFactor));\n}\nfunction convertType(image, metadata, type) {\n let fileType = metadata.format || '';\n if (!fileType) {\n throw new Error('Cannot determine image format');\n }\n if (type) {\n fileType = type.startsWith('image/') ? type.split('/', 2)[1] : type;\n image = image.toFormat(fileType);\n }\n return [image, fileType];\n}\nexport async function preprocessImage(args) {\n const { src, base64, type, maxWidth, maxHeight, resize } = args;\n let sharpObj = readImage(src, base64);\n const metadata = await sharpObj.metadata();\n const resizedImage = resizeImage(sharpObj, metadata, maxWidth, maxHeight, resize);\n const [converted, fileType] = convertType(resizedImage, metadata, type);\n return {\n base64: await converted.toBuffer().then(buffer => buffer.toString('base64')),\n mimeType: 'image/' + fileType\n };\n}\nexport async function getImageWidthHeight(base64) {\n const image = sharp(Buffer.from(base64, 'base64'));\n const metadata = await image.metadata();\n if (!metadata.width || !metadata.height) {\n throw new Error('Cannot determine image dimensions');\n }\n return { width: metadata.width, height: metadata.height };\n}\n//# sourceMappingURL=image.js.map"],"names":[],"mappings":";;;;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC;AACzB;AACA,IAAI,IAAI,MAAM,EAAE;AAChB,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnD;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AAChD;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC;AACnC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;AACrC,IAAI,MAAM,OAAO,GAAG,EAAE;AACtB,IAAI,IAAI,MAAM,EAAE;AAChB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtC;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;AACxC;AACA,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAC7C,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;AAC5F;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE;AACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;AACxD;AACA,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AAC3E,QAAQ,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxC;AACA,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC5B;AACO,eAAe,eAAe,CAAC,IAAI,EAAE;AAC5C,IAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;AACnE,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;AACzC,IAAI,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE;AAC9C,IAAI,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;AACrF,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC;AAC3E,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACpF,QAAQ,QAAQ,EAAE,QAAQ,GAAG;AAC7B,KAAK;AACL;;;;"}