Skip to content

Commit

Permalink
Merge pull request #1709 from alixander/remove-compression-dict
Browse files Browse the repository at this point in the history
urlenc: remove compression dictionary
  • Loading branch information
alixander authored Nov 7, 2023
2 parents 99e8ad1 + 5eead31 commit 768ffee
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 22 deletions.
1 change: 1 addition & 0 deletions ci/release/changelogs/next.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 ⛑️

Expand Down
2 changes: 1 addition & 1 deletion lib/urlenc/testdata/TestChanges.exp.txt
Original file line number Diff line number Diff line change
@@ -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__
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=
23 changes: 2 additions & 21 deletions lib/urlenc/urlenc.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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
Expand Down

0 comments on commit 768ffee

Please sign in to comment.