diff --git a/packages/excalidraw/data/image.ts b/packages/excalidraw/data/image.ts index 4d72a26a4..750e52141 100644 --- a/packages/excalidraw/data/image.ts +++ b/packages/excalidraw/data/image.ts @@ -77,19 +77,20 @@ export const encodePngMetadata = async ({ }), ); - let metadataChunk; + let metadataChunk: TEXtChunk | ITXtChunk; try { if (useITXt) { - metadataChunk = iTXt.encodeSync( - MIME_TYPES.excalidraw, - encodedData, - { - compressed: true, - compressedMethod: 0, - language: "en", - translated: "" - } - ); + metadataChunk = { + name: "iTXt", + data: iTXt.encodeSync({ + keyword: MIME_TYPES.excalidraw, + text: encodedData, + compressionFlag: true, + compressionMethod: 0, + languageTag: "en", + translatedKeyword: "" + }) + }; } else { throw new Error("Fallback to tEXt"); } diff --git a/packages/excalidraw/global.d.ts b/packages/excalidraw/global.d.ts index 6a142748e..52ad3b52c 100644 --- a/packages/excalidraw/global.d.ts +++ b/packages/excalidraw/global.d.ts @@ -43,13 +43,17 @@ declare module "png-chunk-text" { function decode(data: Uint8Array): { keyword: string; text: string }; } declare module "png-chunk-itxt" { - function encodeSync( - keyword: string, - text: string, - options?: { compressed?: boolean; compressedMethod: number; language?: string; translated?: string }, - ): { name: "iTXt"; data: Uint8Array }; - function decodeSync (data: Uint8Array): { - keyword: string; + function encodeSync(options: { + keyword: string; + text: string; + compressionFlag?: boolean; + compressionMethod?: number; + languageTag?: string; + translatedKeyword?: string; + }): Uint8Array; + + function decodeSync(data: Uint8Array): { + keyword: string; text: string; compressed?: boolean; compressedMethod?: number;