Fix ZIP DEFLATE decompression - use inflateRaw instead of gunzip

- Replace gunzipAsync with zlib.inflateRaw() for ZIP DEFLATE compression
- gunzipAsync expects GZIP format, but ZIP files use raw DEFLATE streams
- This fixes metadata.json and all compressed file processing
- archiver library creates standard ZIP format with DEFLATE compression

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
riz 2025-11-19 23:15:49 +00:00
parent d5bf648fe6
commit 37b78f4d74
1 changed files with 8 additions and 2 deletions

View File

@ -479,9 +479,15 @@ export const deploy = {
// No compression, return data as-is
return compressedData;
} else if (compressionMethod === 8) {
// DEFLATE compression - decompress using gunzipAsync
// DEFLATE compression - decompress using inflateRaw (for ZIP format)
try {
const decompressed = await gunzipAsync(compressedData);
const { inflateRaw } = await import('zlib');
const decompressed = await new Promise<Buffer>((resolve, reject) => {
inflateRaw(compressedData, (err, result) => {
if (err) reject(err);
else resolve(result);
});
});
return new Uint8Array(decompressed);
} catch (error) {
console.warn(`[WARN] Failed to decompress ${entry.filename} with method ${compressionMethod}:`, error.message);