From 5059085f3c1179876e34d11f304ed801ed9c5210 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 24 Jan 2023 12:09:59 -0800 Subject: [PATCH 1/7] fix empty labels with class & sql_tables w/ premeasured texts --- d2graph/d2graph.go | 11 +++-- e2etests/e2e_test.go | 27 +++++++--- e2etests/measured_test.go | 34 +++++++++++++ .../measured/empty-class/dagre/board.exp.json | 49 +++++++++++++++++++ .../measured/empty-class/dagre/sketch.exp.svg | 45 +++++++++++++++++ .../measured/empty-shape/dagre/board.exp.json | 46 +++++++++++++++++ .../measured/empty-shape/dagre/sketch.exp.svg | 45 +++++++++++++++++ .../empty-sql_table/dagre/board.exp.json | 49 +++++++++++++++++++ .../empty-sql_table/dagre/sketch.exp.svg | 45 +++++++++++++++++ 9 files changed, 339 insertions(+), 12 deletions(-) create mode 100644 e2etests/measured_test.go create mode 100644 e2etests/testdata/measured/empty-class/dagre/board.exp.json create mode 100644 e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/measured/empty-shape/dagre/board.exp.json create mode 100644 e2etests/testdata/measured/empty-shape/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/measured/empty-sql_table/dagre/board.exp.json create mode 100644 e2etests/testdata/measured/empty-sql_table/dagre/sketch.exp.svg diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 28ea03ef9..f4b99a03e 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -707,6 +707,9 @@ func (obj *Object) GetLabelSize(mtexts []*d2target.MText, ruler *textmeasure.Rul } if dims == nil { + if obj.Text().Text == "" { + return d2target.NewTextDimensions(0, 0), nil + } if shapeType == d2target.ShapeImage { dims = d2target.NewTextDimensions(0, 0) } else { @@ -728,7 +731,7 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R return d2target.NewTextDimensions(128, 128), nil case d2target.ShapeClass: - maxWidth := labelDims.Width + maxWidth := go2.Max(12, labelDims.Width) for _, f := range obj.Class.Fields { fdims := GetTextDimensions(mtexts, ruler, f.Text(), go2.Pointer(d2fonts.SourceCodePro)) @@ -764,7 +767,7 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R rowHeight := GetTextDimensions(mtexts, ruler, anyRowText, go2.Pointer(d2fonts.SourceCodePro)).Height + 20 dims.Height = rowHeight * (len(obj.Class.Fields) + len(obj.Class.Methods) + 2) } else { - dims.Height = labelDims.Height + dims.Height = go2.Max(12, labelDims.Height) } case d2target.ShapeSQLTable: @@ -804,10 +807,10 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R } // The rows get padded a little due to header font being larger than row font - dims.Height = labelDims.Height * (len(obj.SQLTable.Columns) + 1) + dims.Height = go2.Max(12, labelDims.Height*(len(obj.SQLTable.Columns)+1)) headerWidth := d2target.HeaderPadding + labelDims.Width + d2target.HeaderPadding rowsWidth := d2target.NamePadding + maxNameWidth + d2target.TypePadding + maxTypeWidth + d2target.TypePadding + constraintWidth - dims.Width = go2.Max(headerWidth, rowsWidth) + dims.Width = go2.Max(12, go2.Max(headerWidth, rowsWidth)) } return &dims, nil diff --git a/e2etests/e2e_test.go b/e2etests/e2e_test.go index dcca4bba2..35a7c6c6d 100644 --- a/e2etests/e2e_test.go +++ b/e2etests/e2e_test.go @@ -37,6 +37,7 @@ func TestE2E(t *testing.T) { t.Run("stable", testStable) t.Run("regression", testRegression) t.Run("todo", testTodo) + t.Run("measured", testMeasured) } func testSanity(t *testing.T) { @@ -73,6 +74,7 @@ a -> c type testCase struct { name string script string + mtexts []*d2target.MText assertions func(t *testing.T, diagram *d2target.Diagram) skip bool } @@ -118,12 +120,16 @@ func run(t *testing.T, tc testCase) { ctx = log.WithTB(ctx, t, nil) ctx = log.Leveled(ctx, slog.LevelDebug) - ruler, err := textmeasure.NewRuler() - if !tassert.Nil(t, err) { - return - } + var ruler *textmeasure.Ruler + var err error + if tc.mtexts == nil { + ruler, err = textmeasure.NewRuler() + if !tassert.Nil(t, err) { + return + } - serde(t, tc, ruler) + serde(t, tc, ruler) + } layoutsTested := []string{"dagre", "elk"} @@ -132,12 +138,17 @@ func run(t *testing.T, tc testCase) { if layoutName == "dagre" { layout = d2dagrelayout.DefaultLayout } else if layoutName == "elk" { + // If measured texts exists, we are specifically exercising text measurements, no need to run on both layouts + if tc.mtexts != nil { + continue + } layout = d2elklayout.DefaultLayout } diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ - Ruler: ruler, - ThemeID: 0, - Layout: layout, + Ruler: ruler, + MeasuredTexts: tc.mtexts, + ThemeID: 0, + Layout: layout, }) if !tassert.Nil(t, err) { return diff --git a/e2etests/measured_test.go b/e2etests/measured_test.go new file mode 100644 index 000000000..777fda482 --- /dev/null +++ b/e2etests/measured_test.go @@ -0,0 +1,34 @@ +package e2etests + +import ( + _ "embed" + "testing" + + "oss.terrastruct.com/d2/d2target" +) + +// testMeasured exercises the code paths that provide pre-measured texts +func testMeasured(t *testing.T) { + tcs := []testCase{ + { + name: "empty-shape", + mtexts: []*d2target.MText{}, + script: `a: "" +`, + }, + { + name: "empty-class", + mtexts: []*d2target.MText{}, + script: `a: "" { shape: class } +`, + }, + { + name: "empty-sql_table", + mtexts: []*d2target.MText{}, + script: `a: "" { shape: sql_table } +`, + }, + } + + runa(t, tcs) +} diff --git a/e2etests/testdata/measured/empty-class/dagre/board.exp.json b/e2etests/testdata/measured/empty-class/dagre/board.exp.json new file mode 100644 index 000000000..1f92e5b45 --- /dev/null +++ b/e2etests/testdata/measured/empty-class/dagre/board.exp.json @@ -0,0 +1,49 @@ +{ + "name": "", + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "a", + "type": "class", + "pos": { + "x": 0, + "y": 0 + }, + "width": 112, + "height": 12, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#0A0F25", + "stroke": "#FFFFFF", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 1, + "primaryAccentColor": "#0D32B2", + "secondaryAccentColor": "#4A6FF3", + "neutralAccentColor": "#676C7E" + } + ], + "connections": [] +} diff --git a/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg b/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg new file mode 100644 index 000000000..830b5caa3 --- /dev/null +++ b/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file diff --git a/e2etests/testdata/measured/empty-shape/dagre/board.exp.json b/e2etests/testdata/measured/empty-shape/dagre/board.exp.json new file mode 100644 index 000000000..bf4da9d37 --- /dev/null +++ b/e2etests/testdata/measured/empty-shape/dagre/board.exp.json @@ -0,0 +1,46 @@ +{ + "name": "", + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "a", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 100, + "height": 100, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#F7F8FE", + "stroke": "#0D32B2", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 1 + } + ], + "connections": [] +} diff --git a/e2etests/testdata/measured/empty-shape/dagre/sketch.exp.svg b/e2etests/testdata/measured/empty-shape/dagre/sketch.exp.svg new file mode 100644 index 000000000..1acdbb250 --- /dev/null +++ b/e2etests/testdata/measured/empty-shape/dagre/sketch.exp.svg @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file diff --git a/e2etests/testdata/measured/empty-sql_table/dagre/board.exp.json b/e2etests/testdata/measured/empty-sql_table/dagre/board.exp.json new file mode 100644 index 000000000..dcd887dd3 --- /dev/null +++ b/e2etests/testdata/measured/empty-sql_table/dagre/board.exp.json @@ -0,0 +1,49 @@ +{ + "name": "", + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "a", + "type": "sql_table", + "pos": { + "x": 0, + "y": 0 + }, + "width": 50, + "height": 12, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "#0A0F25", + "stroke": "#FFFFFF", + "shadow": false, + "3d": false, + "multiple": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 20, + "fontFamily": "DEFAULT", + "language": "", + "color": "#0A0F25", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 1, + "primaryAccentColor": "#0D32B2", + "secondaryAccentColor": "#4A6FF3", + "neutralAccentColor": "#676C7E" + } + ], + "connections": [] +} diff --git a/e2etests/testdata/measured/empty-sql_table/dagre/sketch.exp.svg b/e2etests/testdata/measured/empty-sql_table/dagre/sketch.exp.svg new file mode 100644 index 000000000..69d917f3c --- /dev/null +++ b/e2etests/testdata/measured/empty-sql_table/dagre/sketch.exp.svg @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file From ca84d9e152db4faa0f318a3700c12cee6a059b63 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 14:57:35 -0800 Subject: [PATCH 2/7] install.sh: Regen [ci-force] --- ci/release/template/scripts/lib.sh | 8 ++++---- ci/sub | 2 +- install.sh | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/release/template/scripts/lib.sh b/ci/release/template/scripts/lib.sh index 699795908..2ee814abf 100644 --- a/ci/release/template/scripts/lib.sh +++ b/ci/release/template/scripts/lib.sh @@ -437,10 +437,10 @@ ensure_prefix() { if [ -n "${PREFIX-}" ]; then return fi - # The reason for checking whether bin is writable is that on macOS you have /usr/local + # The reason for checking whether lib is writable is that on macOS you have /usr/local # owned by root but you don't need root to write to its subdirectories which is all we # need to do. - if ! is_writable_dir "/usr/local/bin"; then + if ! is_writable_dir "/usr/local/lib"; then # This also handles M1 Mac's which do not allow modifications to /usr/local even # with sudo. PREFIX=$HOME/.local @@ -453,10 +453,10 @@ ensure_prefix_sh_c() { ensure_prefix sh_c="sh_c" - # The reason for checking whether bin is writable is that on macOS you have /usr/local + # The reason for checking whether lib is writable is that on macOS you have /usr/local # owned by root but you don't need root to write to its subdirectories which is all we # need to do. - if ! is_writable_dir "$PREFIX/bin"; then + if ! is_writable_dir "$PREFIX/lib"; then sh_c="sudo_sh_c" fi } diff --git a/ci/sub b/ci/sub index 1c94f3d01..64036dae6 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit 1c94f3d0120199b85eb5e45841a9bb4515ddf965 +Subproject commit 64036dae6aa4da7c5928e0b00e4d360f4cafa238 diff --git a/install.sh b/install.sh index 026f423c9..04721fd93 100755 --- a/install.sh +++ b/install.sh @@ -573,10 +573,10 @@ ensure_prefix() { if [ -n "${PREFIX-}" ]; then return fi - # The reason for checking whether bin is writable is that on macOS you have /usr/local + # The reason for checking whether lib is writable is that on macOS you have /usr/local # owned by root but you don't need root to write to its subdirectories which is all we # need to do. - if ! is_writable_dir "/usr/local/bin"; then + if ! is_writable_dir "/usr/local/lib"; then # This also handles M1 Mac's which do not allow modifications to /usr/local even # with sudo. PREFIX=$HOME/.local @@ -589,10 +589,10 @@ ensure_prefix_sh_c() { ensure_prefix sh_c="sh_c" - # The reason for checking whether bin is writable is that on macOS you have /usr/local + # The reason for checking whether lib is writable is that on macOS you have /usr/local # owned by root but you don't need root to write to its subdirectories which is all we # need to do. - if ! is_writable_dir "$PREFIX/bin"; then + if ! is_writable_dir "$PREFIX/lib"; then sh_c="sudo_sh_c" fi } From 73c6e57998ff1021b761bd42568d8de387397c91 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 15:00:25 -0800 Subject: [PATCH 3/7] deps: update [ci-force] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 38e75f856..cc87cce80 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 gonum.org/v1/plot v0.12.0 nhooyr.io/websocket v1.8.7 - oss.terrastruct.com/util-go v0.0.0-20230124223326-041fa96d3331 + oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae ) require ( diff --git a/go.sum b/go.sum index 10cedfc91..0af5027de 100644 --- a/go.sum +++ b/go.sum @@ -805,8 +805,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -oss.terrastruct.com/util-go v0.0.0-20230124223326-041fa96d3331 h1:5B6+mum6eq9bOtAkHK15T6rvPgtijxu/v165uEAqd7I= -oss.terrastruct.com/util-go v0.0.0-20230124223326-041fa96d3331/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= +oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae h1:ZK9+V4B8sLAj1thl4OE9GG/2DNLzaAEonH/YtcLQ140= +oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= From 46ccb5de87732f6467080a3e3b4c4a93d6ec37c4 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 15:07:42 -0800 Subject: [PATCH 4/7] ci: Update [ci-force] --- .github/workflows/ci.yml | 2 +- ci/sub | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9feefc85..e4beb9701 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ name: ci on: [push, pull_request] concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true jobs: diff --git a/ci/sub b/ci/sub index 64036dae6..c209cbcd9 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit 64036dae6aa4da7c5928e0b00e4d360f4cafa238 +Subproject commit c209cbcd9fafc5664d16531aa48eb050b5ff4b19 From afd2768880f327c18b50839b9c0a9268d6a1cc96 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 15:14:34 -0800 Subject: [PATCH 5/7] docs/flow.d2: Update [ci-base] --- docs/flow.d2 | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/flow.d2 b/docs/flow.d2 index 41c60d079..24cd5f31f 100644 --- a/docs/flow.d2 +++ b/docs/flow.d2 @@ -1,8 +1,10 @@ -inputFile \ - -> d2parser\ - -> d2ast\ - -> d2compiler\ - -> d2graph\ - -> d2layouts/d2dagrelayout\ - -> d2exporter\ - -> d2target +# How we actually want it formatted (d2 fmt removes line continuations currently): +# inputFile \ +# -> d2parser\ +# -> d2ast\ +# -> d2compiler\ +# -> d2graph\ +# -> d2layouts/d2dagrelayout\ +# -> d2exporter\ +# -> d2target +inputFile -> d2parser -> d2ast -> d2compiler -> d2graph -> d2layouts/d2dagrelayout -> d2exporter -> d2target From c77b4acc4edd10990d34bb2a31504d9fc9b8da6b Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 15:25:18 -0800 Subject: [PATCH 6/7] deps: update [ci-force] --- ci/sub | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/sub b/ci/sub index c209cbcd9..8b2a3a3be 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit c209cbcd9fafc5664d16531aa48eb050b5ff4b19 +Subproject commit 8b2a3a3be636842eaa74027c9e0d577ec8638272 diff --git a/go.mod b/go.mod index cc87cce80..2720cabf6 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 gonum.org/v1/plot v0.12.0 nhooyr.io/websocket v1.8.7 - oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae + oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c ) require ( diff --git a/go.sum b/go.sum index 0af5027de..53ecb7b43 100644 --- a/go.sum +++ b/go.sum @@ -805,8 +805,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae h1:ZK9+V4B8sLAj1thl4OE9GG/2DNLzaAEonH/YtcLQ140= -oss.terrastruct.com/util-go v0.0.0-20230124230012-e0ec54ab6cae/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= +oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c h1:gNKN5zMFFiKFaTtjpK5cCDfSh4ivWyz/tmzjrERPMz4= +oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= From 335d925b7c937d4e7cac7e26de993f60840eb116 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Tue, 24 Jan 2023 15:27:12 -0800 Subject: [PATCH 7/7] deps: update [ci-force] --- ci/sub | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/sub b/ci/sub index 8b2a3a3be..8ac704818 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit 8b2a3a3be636842eaa74027c9e0d577ec8638272 +Subproject commit 8ac704818b5d7ab519e4b87caf5eb79716493709 diff --git a/go.mod b/go.mod index 2720cabf6..573935bea 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 gonum.org/v1/plot v0.12.0 nhooyr.io/websocket v1.8.7 - oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c + oss.terrastruct.com/util-go v0.0.0-20230124232704-39c2226d2b5e ) require ( diff --git a/go.sum b/go.sum index 53ecb7b43..f6080f513 100644 --- a/go.sum +++ b/go.sum @@ -805,8 +805,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c h1:gNKN5zMFFiKFaTtjpK5cCDfSh4ivWyz/tmzjrERPMz4= -oss.terrastruct.com/util-go v0.0.0-20230124232507-30a218ab7f4c/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= +oss.terrastruct.com/util-go v0.0.0-20230124232704-39c2226d2b5e h1:pCKxiUFOLQamCtmyMZsM3Hc8MuKVpDg/4VunhVOVW/4= +oss.terrastruct.com/util-go v0.0.0-20230124232704-39c2226d2b5e/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=