From a3325c9fb44e2a63694837d8640dda2fd46bb6ae Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 26 May 2026 19:55:22 +0100 Subject: [PATCH] refactor: use unified rastermill encode API --- npm-shrinkwrap.json | 6 +++--- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- src/gateway/managed-image-attachments.ts | 3 ++- src/media/image-ops.ts | 2 +- src/media/web-media.ts | 6 ++++-- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 5c8ebb3c01b6..7dd225eeece6 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -47,7 +47,7 @@ "playwright-core": "1.60.0", "qrcode": "1.5.4", "quickjs-wasi": "2.2.0", - "rastermill": "https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148", + "rastermill": "https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5", "tar": "7.5.15", "tokenjuice": "0.7.1", "tree-sitter-bash": "0.25.1", @@ -3843,8 +3843,8 @@ }, "node_modules/rastermill": { "version": "0.2.0", - "resolved": "https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148", - "integrity": "sha512-Rzs9xELc0+t90r0kMon/AqBwkxT4R7En4OT04C4wBpDpQO4M+QLxHYaBBJWSTrEUKn+eunArcnwx+O2GGW/mGQ==", + "resolved": "https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5", + "integrity": "sha512-RZvbn3tpvDJ4LZNXw3g5lUaio0ENERRhZsWZ7Dz8PjOsmD71k6UM5OgbV/abITqTPsBD+M3xMSAJFfBsqIDZgA==", "license": "MIT", "dependencies": { "@silvia-odwyer/photon-node": "0.3.4" diff --git a/package.json b/package.json index 120937fd887d..ba0654dc8b23 100644 --- a/package.json +++ b/package.json @@ -1838,7 +1838,7 @@ "playwright-core": "1.60.0", "qrcode": "1.5.4", "quickjs-wasi": "2.2.0", - "rastermill": "https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148", + "rastermill": "https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5", "tar": "7.5.15", "tokenjuice": "0.7.1", "tree-sitter-bash": "0.25.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5909fa7fc169..9ca7b7319b22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -152,8 +152,8 @@ importers: specifier: 2.2.0 version: 2.2.0 rastermill: - specifier: https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148 - version: https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148 + specifier: https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5 + version: https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5 tar: specifier: 7.5.15 version: 7.5.15 @@ -6310,8 +6310,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - rastermill@https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148: - resolution: {gitHosted: true, integrity: sha512-Rzs9xELc0+t90r0kMon/AqBwkxT4R7En4OT04C4wBpDpQO4M+QLxHYaBBJWSTrEUKn+eunArcnwx+O2GGW/mGQ==, tarball: https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148} + rastermill@https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5: + resolution: {gitHosted: true, integrity: sha512-RZvbn3tpvDJ4LZNXw3g5lUaio0ENERRhZsWZ7Dz8PjOsmD71k6UM5OgbV/abITqTPsBD+M3xMSAJFfBsqIDZgA==, tarball: https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5} version: 0.2.0 engines: {node: '>=20'} @@ -12304,7 +12304,7 @@ snapshots: range-parser@1.2.1: {} - rastermill@https://codeload.github.com/openclaw/rastermill/tar.gz/89405b23b10e32bcbedbd0e2aa56ba790e94d148: + rastermill@https://codeload.github.com/openclaw/rastermill/tar.gz/8fbcb97abe0035fd4f3d237886da5cff916dece5: dependencies: '@silvia-odwyer/photon-node': 0.3.4 diff --git a/src/gateway/managed-image-attachments.ts b/src/gateway/managed-image-attachments.ts index cdfbba8dce4c..e10241f9d352 100644 --- a/src/gateway/managed-image-attachments.ts +++ b/src/gateway/managed-image-attachments.ts @@ -206,7 +206,8 @@ async function resizeManagedImageBufferToLimits(params: { buffer: Buffer; limits: ManagedImageAttachmentLimits; }): Promise<{ buffer: Buffer; contentType: string; width: number; height: number }> { - const resized = await createImageProcessor().encodeToLimits(params.buffer, { + const resized = await createImageProcessor().encode(params.buffer, { + format: "auto", limits: { maxWidth: params.limits.maxWidth, maxHeight: params.limits.maxHeight, diff --git a/src/media/image-ops.ts b/src/media/image-ops.ts index fe37c884d863..f38a8fe07aa4 100644 --- a/src/media/image-ops.ts +++ b/src/media/image-ops.ts @@ -180,7 +180,7 @@ export async function optimizeImageToPng( }> { let out; try { - out = await createImageProcessor().encodeWithinBytes(buffer, { + out = await createImageProcessor().encode(buffer, { format: "png", maxBytes, search: options?.sides === undefined ? {} : { maxSide: options.sides }, diff --git a/src/media/web-media.ts b/src/media/web-media.ts index 174a27d8916a..b162b5b1b961 100644 --- a/src/media/web-media.ts +++ b/src/media/web-media.ts @@ -646,7 +646,8 @@ async function optimizeImageWithFallback(params: { }): Promise { const { buffer, cap } = params; const grid = resolveImageCompressionGrid(params.imageCompression); - const optimized = await createImageProcessor().encodeBest(buffer, { + const optimized = await createImageProcessor().encode(buffer, { + format: "auto", maxBytes: cap, opaque: { format: "jpeg" }, transparent: { format: "png" }, @@ -1008,7 +1009,8 @@ export async function optimizeImageToJpeg( quality: number; }> { const { sides, qualities } = resolveImageCompressionGrid(opts.imageCompression); - const optimized = await createImageProcessor().encodeBest(buffer, { + const optimized = await createImageProcessor().encode(buffer, { + format: "auto", maxBytes, opaque: { format: "jpeg" }, search: {