diff --git a/internal/utils/compress.go b/internal/utils/compress.go index 5761df8..2913372 100644 --- a/internal/utils/compress.go +++ b/internal/utils/compress.go @@ -2,38 +2,43 @@ package utils import ( "bytes" - "compress/gzip" + "compress/zlib" "encoding/base64" - "io" ) -// CompressToBase64 compresses data using gzip and encodes to base64 +// CompressToBase64 compresses data using zlib and encodes to base64 func CompressToBase64(data string) (string, error) { + if data == "" { + return "", nil + } var buf bytes.Buffer - gz := gzip.NewWriter(&buf) - if _, err := gz.Write([]byte(data)); err != nil { + zw := zlib.NewWriter(&buf) + if _, err := zw.Write([]byte(data)); err != nil { return "", err } - if err := gz.Close(); err != nil { + if err := zw.Close(); err != nil { return "", err } return base64.StdEncoding.EncodeToString(buf.Bytes()), nil } -// DecompressFromBase64 decodes base64 and decompresses gzip data -func DecompressFromBase64(data string) (string, error) { - decoded, err := base64.StdEncoding.DecodeString(data) - if err != nil { - return "", err - } - gz, err := gzip.NewReader(bytes.NewReader(decoded)) - if err != nil { - return "", err - } - defer gz.Close() - result, err := io.ReadAll(gz) - if err != nil { - return "", err - } - return string(result), nil -} +// // DecompressFromBase64 decodes base64 and decompresses zlib data +// func DecompressFromBase64(data string) (string, error) { +// if data == "" { +// return "", nil +// } +// decoded, err := base64.StdEncoding.DecodeString(data) +// if err != nil { +// return "", err +// } +// zr, err := zlib.NewReader(bytes.NewReader(decoded)) +// if err != nil { +// return "", err +// } +// defer zr.Close() +// result, err := io.ReadAll(zr) +// if err != nil { +// return "", err +// } +// return string(result), nil +// } diff --git a/web/src/utils/decompress.ts b/web/src/utils/decompress.ts index bd538fa..6873144 100644 --- a/web/src/utils/decompress.ts +++ b/web/src/utils/decompress.ts @@ -9,8 +9,8 @@ export function decompressFromBase64(compressed: string): string { for (let i = 0; i < binaryString.length; i++) { bytes[i] = binaryString.charCodeAt(i) } - // Decompress gzip - const decompressed = pako.ungzip(bytes, { to: 'string' }) + // Decompress zlib + const decompressed = pako.inflate(bytes, { to: 'string' }) return decompressed } catch (e) { console.error('Decompress error:', e)