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:
parent
d5bf648fe6
commit
37b78f4d74
|
|
@ -479,9 +479,15 @@ export const deploy = {
|
||||||
// No compression, return data as-is
|
// No compression, return data as-is
|
||||||
return compressedData;
|
return compressedData;
|
||||||
} else if (compressionMethod === 8) {
|
} else if (compressionMethod === 8) {
|
||||||
// DEFLATE compression - decompress using gunzipAsync
|
// DEFLATE compression - decompress using inflateRaw (for ZIP format)
|
||||||
try {
|
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);
|
return new Uint8Array(decompressed);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.warn(`[WARN] Failed to decompress ${entry.filename} with method ${compressionMethod}:`, error.message);
|
console.warn(`[WARN] Failed to decompress ${entry.filename} with method ${compressionMethod}:`, error.message);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue