From 5eead31c91fcc1f6c0ecaf28e3006758055efd8b Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 7 Nov 2023 11:36:23 -0800 Subject: [PATCH] urlenc: remove compression dictionary --- ci/release/changelogs/next.md | 1 + lib/urlenc/testdata/TestChanges.exp.txt | 2 +- lib/urlenc/urlenc.go | 23 ++--------------------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 89a8916b73..cfc54b6f12 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -7,6 +7,7 @@ - Grid cells can now contain nested edges [#1629](https://github.com/terrastruct/d2/pull/1629) - Edges can now go across constant nears, sequence diagrams, and grids including nested ones. [#1631](https://github.com/terrastruct/d2/pull/1631) - All vars defined in a scope are accessible everywhere in that scope, i.e., an object can use a var defined after itself. [#1695](https://github.com/terrastruct/d2/pull/1695) +- Encoding API switches to standard zlib encoding so that decoding doesn't depend on source. [#1709](https://github.com/terrastruct/d2/pull/1709) #### Bugfixes ⛑️ diff --git a/lib/urlenc/testdata/TestChanges.exp.txt b/lib/urlenc/testdata/TestChanges.exp.txt index 0ab14ee949..a56df1db39 100644 --- a/lib/urlenc/testdata/TestChanges.exp.txt +++ b/lib/urlenc/testdata/TestChanges.exp.txt @@ -1 +1 @@ -vFdtb9s4Ev6uXzFwWvQuiN5sN0mFwx1yadMUaLHe2rv9UmBBiyOZrUSqJGUn3ea_L4aSbFl2usUusPkQkzPkzMNnXkhZUSIpoRR3qBMYjeB3DwDvqoJJRmwm8K3kHgDAyQmcni72NpyeOo0Pb-QnTC0wbs5gs1K-VX6mikJtzkDJpWKaC5m3a6-VXKM2zjqUitcFdppaG6WFzM8qlovGf6tabJBZ4MjrqhBpXzNHvUYOnFkGhcrzxtE378GboaoKBC5Mqtao7xMYDUXwURrUa5HiyGO8JeGKN6dzVDiyA0qbBEYnaczG2WTkPXje7lzQmkhg9NNO2LO8zzL4_4UhjiNLDu0fWdRi9lJKSSFRR9sY5ppVqy-FB5CqskRpPQBbGFYJ76G3PmjXJfCaBj-__ShvkKOm6oO51cwquHYl0dBBKZuAKFlOUaMCSGBlbWWSMKyrQjEebMRnUSIXLFA6D2lW0SwkHEqa0K7qchnGYXwRtj5_e6tyFZh1HsbjKKru_KE8qGS-D7s9VJeeJyeUImjD2qAGWofSwuqea5crZ7AWRixFIew9ZKKwSGnmfetbbMhJYPF27l_N3sC_lkjkc6w0pkTHv4_QRkHYD8swSv_x4cCJZzeC2hFklDSLdnKjHWwOTQD3uaWZCSxqzYzVdWqJgdCoVLAijOKJ35r0Y-JrGKmHnkeCfCz-YrZSEmGDy8cXdxzdLhYzuJJcK8G9DS4T-IDLH0bNvtYaww-4fDqO5k1uPx1H19SLw6uq2pO-VCUT0hw_lPemIsxJz_OzzrUxF8H668Y5FCZ0W8Jf0bXvD0JjgcaErKoK9IWz4sdj_3yaL_2q1iR9PoniC7_8JONJUfjsf084Eia_yJ88O4TSkpEcISHlchqQKBPUjB0ialcNO6Epmba-g2B8i-lKqkLlAk34PB6HrLHb6F0ZHLKwwaXLw23UdjloUqVdY-8a90c5d6LRke6WZRyzmLrbSpUImsnPtPeWJu_dxOtZ7pre9kqYP9qmDuAsVlpkFt7Pro-s3nO-Q9m7DROYDsQEP4qiV5OXBP97CFqQzknb8G-3Y-fu5NGmf7z--6b-EtydgSNkDbR_n5zHvLXElEyumLVMwjiBd93Ey8VXuqvTzwm87oZe034cFQnM3aS5dzxLzfi-EpQfbggzgQPXPU8DzdbZQN7zNzxG569tCYN6aKtzIK00cuHejN3pxwnMdsI2of_84ku59F0x-5XMg6xglmau0KmGz6fnsft3Gb9obzKHvqsGl39NWX63KreE9QNTYpmydIUJvGtHR1oQj7-cZxHD4i6qlA7SQtU8o-smkGjDShPZ1i9UrkzIMZrGz6OpH3G-9KeT7NxfXr5AP8NoOo0macouud955e15vAxtukrghn56h-gewQlYXeOOR3rlNtuYrTXSRjf48a1EnpB54oiji_qHdzqolAqt8w6Ey7DGmHckN_6p1GghEJpDEDvw2140DlLdvDz6WbVXYPQoPNRuE2c0GuqOVEb_Ttg2on6L2qkOoSVwzSQXnFlsUmTXSsfbF-tjLeuwIOiP5Dvr-t22fQ-X31zcXN68ouUP9GnDdHG_FJon8IqG_xea3o-1ZXkCv1jm7teKUbjn9NO-n2sprECTwPVu4j14aNMEgiBAmx7w63RdWt92L1Gvn23bAO0J27j0Zc7WjsLmm9F4fwQAAP__ \ No newline at end of file +vFdtb9u2E3-vT3FwWvT_D6In201SYdiQpU1ToMW82lvfFBho8SSxoUiVpOwka777QEqyZdnpgg1YXkTkHXn34-8eSBtWImcCoWS3qBIYjeBPDwBvK04EMUyKBL6V1AMAODqC4-PFzobjY6fx4Z34gqkBQvUJrAvpG-lnknO5PgEplpIoykTerr2UYoVKO-tQSlpz7DS10lIxkZ9UJGeN_1a1WCMxQJHWFWdpXzNHtUIKlBgCXOZ54-ib9-DNUFYcgTKdyhWquwRGQxF8FhrViqU48ghtSbigzekcFdrccQwyxnkCo6M0JuNsMvIePG97LmhNJDD6ZSvsWd5lGfwfYYjjwJJ9-wcWtZi9VApDmEAVbWKYK1IVX7kHkMqyRGE8AMM1qZj30FsftOsSeGsHv77_LK6QoiIGKcyNIkbCpeR1KRo6ClJhAqwkuY0aS22GFMZUOgnDuuKS0GDNbliJlJFAqjy0s8rOQotDCh2aoi6XYRzGZ2Hr84_3MpeBXuVhPI6i6tYfyoNK5Luw20N16Xl0ZFMETVhrVGDXoTBQ3FHlcuUEVkyzJePM3EHGuEGbZt63vsWGnAQW7-f-xewd_G-JlnyKlcLU0vH_A7TZIOyGZRilH3zYc-KZNTMGFWQ2aRbt5Eo52BSaAO5ya2c6MKgU0UbVqbEMhFqmjPAwiid-a9KPLV_DSD30PFrIh-LPZoUUCGtcPr644-h6sZjBhaBKMuqtcZnAJ1w-GTW5rxWGn3D5fBzNm9x-Po4uJZcqvKiqHelrWRIm9OFDee8qiznpeX7Rudb6LFjdr51DpkO3JfwdFbuX4hNTyFHrkFQVR585K3489k-n-dKvamWlLydRfOaXX0Q84dwnPz2jaDH5PH_2Yh9KS0ZygISUimlgRRkTFJVDZNtVw06oS6KM7yBo32BaCMllzlCHL-NxSBq7jd6VwT4La1y6PNxEbZuDOpXKNfaucX8WcycaHehuWUYxi213K2SJoIi4sXuv7eSjm3g9y13T21wJ80fb1B6cRaFYZuDj7PLA6h3nW5TaKHmDPiW6SGA6EFv4URS9mby28L-HoAXpnLQN_3ozdu6OHm36h-u_b-ofwd0aOEDWQPvvyXnMW0tMSURBjCECxgl86CZezu7tXZ3eJPC2G3pN-3FUJDB3k-be8YxtxncVs_nhhjBjOHDd8zTQbJwN5D1_w2N0_tqWMKiHtjoH0kohZal7h7SnHycw2wrbhP77iy-lwnfF7FciDzJOjJ25Qrc1fDo9jd2_8_hVe5M59F01uPxryvK7VbkhrB-YEsuUpAUm8KEdHWhBNP56mkUE-W1USRWkXNY0s9dNINCElbJkG5_LXOqQYjSNX0ZTP6J06U8n2am_PH-FfobRdBpN0pScU7_zStvzeBmatEjgyn56hyhrbljFMQGjatzyqA1WzTZiaoV2oxs8faslj4k8ccTZi_rJOx1Umwqt8w6Ey7DGmHcgN_6r1GghWDT7ILbgN71oHKSqeXn0s2qnwOyjcF-7SZzRaKg7UBn9O2HTiPotaqvah5bAJRGUUWKwSZFtKx1vXqyPtaz9grB_Vr61rj5s2vdw-dXZ1fnVG7v8wf60IYrfLZmiCbyxw5-Zsu_H2pA8gd8McfdrRWy45_bTvp9rwQxDncDlduI9eGjSBIIgQJPu8et0XVpfdy9Rr59tmwDtCNu49GXO1pZCLWuVovb-CgAA__8= \ No newline at end of file diff --git a/lib/urlenc/urlenc.go b/lib/urlenc/urlenc.go index a7bc18cd47..8ce6cb92f1 100644 --- a/lib/urlenc/urlenc.go +++ b/lib/urlenc/urlenc.go @@ -5,37 +5,18 @@ import ( "compress/flate" "encoding/base64" "io" - "sort" "strings" "oss.terrastruct.com/util-go/xdefer" - - "oss.terrastruct.com/d2/d2graph" ) -var compressionDict = "->" + - "<-" + - "--" + - "<->" - -func init() { - var common []string - for k := range d2graph.ReservedKeywords { - common = append(common, k) - } - sort.Strings(common) - for _, k := range common { - compressionDict += k - } -} - // Encode takes a D2 script and encodes it as a compressed base64 string for embedding in URLs. func Encode(raw string) (_ string, err error) { defer xdefer.Errorf(&err, "failed to encode d2 script") b := &bytes.Buffer{} - zw, err := flate.NewWriterDict(b, flate.DefaultCompression, []byte(compressionDict)) + zw, err := flate.NewWriterDict(b, flate.BestCompression, nil) if err != nil { return "", err } @@ -59,7 +40,7 @@ func Decode(encoded string) (_ string, err error) { return "", err } - zr := flate.NewReaderDict(bytes.NewReader(b64Decoded), []byte(compressionDict)) + zr := flate.NewReaderDict(bytes.NewReader(b64Decoded), nil) var b bytes.Buffer if _, err := io.Copy(&b, zr); err != nil { return "", err