From 88c253e009856d54a1d0f1155d4c8967aecb1865 Mon Sep 17 00:00:00 2001 From: Matthew Whitehead Date: Tue, 28 Feb 2023 15:23:04 +0000 Subject: [PATCH 1/2] Call Features() getter Signed-off-by: Matthew Whitehead --- internal/database/sqlcommon/blob_sql.go | 2 +- internal/database/sqlcommon/blob_sql_test.go | 12 +++++++----- internal/database/sqlcommon/data_sql.go | 2 +- internal/database/sqlcommon/data_sql_test.go | 12 +++++++----- internal/database/sqlcommon/event_sql.go | 4 ++-- internal/database/sqlcommon/event_sql_test.go | 12 +++++++----- internal/database/sqlcommon/message_sql.go | 5 ++--- internal/database/sqlcommon/message_sql_test.go | 17 ++++++++++------- internal/database/sqlcommon/pin_sql.go | 4 ++-- internal/database/sqlcommon/pin_sql_test.go | 12 +++++++----- .../database/sqlcommon/provider_mock_test.go | 5 ++++- internal/database/sqlcommon/sqlcommon.go | 3 +-- test/e2e/multiparty/ethereum_contracts.go | 4 ++-- 13 files changed, 53 insertions(+), 41 deletions(-) diff --git a/internal/database/sqlcommon/blob_sql.go b/internal/database/sqlcommon/blob_sql.go index 98a8fb8cb..f702eb7c5 100644 --- a/internal/database/sqlcommon/blob_sql.go +++ b/internal/database/sqlcommon/blob_sql.go @@ -88,7 +88,7 @@ func (s *SQLCommon) InsertBlobs(ctx context.Context, blobs []*core.Blob) (err er } defer s.RollbackTx(ctx, tx, autoCommit) - if s.features.MultiRowInsert { + if s.Features().MultiRowInsert { query := sq.Insert(blobsTable).Columns(blobColumns...) for _, blob := range blobs { query = s.setBlobInsertValues(query, blob) diff --git a/internal/database/sqlcommon/blob_sql_test.go b/internal/database/sqlcommon/blob_sql_test.go index 3c8df1fb2..5324fda69 100644 --- a/internal/database/sqlcommon/blob_sql_test.go +++ b/internal/database/sqlcommon/blob_sql_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -124,9 +124,10 @@ func TestInsertBlobsBeginFail(t *testing.T) { } func TestInsertBlobsMultiRowOK(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() blob1 := &core.Blob{Hash: fftypes.NewRandB32(), PayloadRef: "pay1"} blob2 := &core.Blob{Hash: fftypes.NewRandB32(), PayloadRef: "pay2"} @@ -144,9 +145,10 @@ func TestInsertBlobsMultiRowOK(t *testing.T) { } func TestInsertBlobsMultiRowFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() blob1 := &core.Blob{Hash: fftypes.NewRandB32(), PayloadRef: "pay1"} mock.ExpectBegin() mock.ExpectQuery("INSERT.*").WillReturnError(fmt.Errorf("pop")) diff --git a/internal/database/sqlcommon/data_sql.go b/internal/database/sqlcommon/data_sql.go index 29e4ba46e..29acf452b 100644 --- a/internal/database/sqlcommon/data_sql.go +++ b/internal/database/sqlcommon/data_sql.go @@ -195,7 +195,7 @@ func (s *SQLCommon) InsertDataArray(ctx context.Context, dataArray core.DataArra } defer s.RollbackTx(ctx, tx, autoCommit) - if s.features.MultiRowInsert { + if s.Features().MultiRowInsert { query := sq.Insert(dataTable).Columns(dataColumnsWithValue...) for _, data := range dataArray { query = s.setDataInsertValues(query, data) diff --git a/internal/database/sqlcommon/data_sql_test.go b/internal/database/sqlcommon/data_sql_test.go index 6162a09ef..a628ba539 100644 --- a/internal/database/sqlcommon/data_sql_test.go +++ b/internal/database/sqlcommon/data_sql_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -240,9 +240,10 @@ func TestInsertDataArrayBeginFail(t *testing.T) { } func TestInsertDataArrayMultiRowOK(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() data1 := &core.Data{ID: fftypes.NewUUID(), Namespace: "ns1"} data2 := &core.Data{ID: fftypes.NewUUID(), Namespace: "ns1"} @@ -262,9 +263,10 @@ func TestInsertDataArrayMultiRowOK(t *testing.T) { } func TestInsertDataArrayMultiRowFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() data1 := &core.Data{ID: fftypes.NewUUID(), Namespace: "ns1"} mock.ExpectBegin() mock.ExpectQuery("INSERT.*").WillReturnError(fmt.Errorf("pop")) diff --git a/internal/database/sqlcommon/event_sql.go b/internal/database/sqlcommon/event_sql.go index 2af652559..574add68e 100644 --- a/internal/database/sqlcommon/event_sql.go +++ b/internal/database/sqlcommon/event_sql.go @@ -1,4 +1,4 @@ -// Copyright © 2022 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -118,7 +118,7 @@ func (p *eventsPCA) PreCommit(ctx context.Context, tx *dbsql.TXWrapper) (err err } } - if p.s.features.MultiRowInsert { + if p.s.Features().MultiRowInsert { query := sq.Insert(eventsTable).Columns(eventColumns...) for _, event := range p.events { query = p.s.setEventInsertValues(query, event) diff --git a/internal/database/sqlcommon/event_sql_test.go b/internal/database/sqlcommon/event_sql_test.go index 59d4264a2..134460deb 100644 --- a/internal/database/sqlcommon/event_sql_test.go +++ b/internal/database/sqlcommon/event_sql_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -133,9 +133,10 @@ func TestInsertEventFailCommit(t *testing.T) { } func TestInsertEventsPreCommitMultiRowOK(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() ev1 := &core.Event{ID: fftypes.NewUUID(), Namespace: "ns1"} ev2 := &core.Event{ID: fftypes.NewUUID(), Namespace: "ns1"} @@ -162,9 +163,10 @@ func TestInsertEventsPreCommitMultiRowOK(t *testing.T) { } func TestInsertEventsPreCommitMultiRowFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() ev1 := &core.Event{ID: fftypes.NewUUID(), Namespace: "ns1"} mock.ExpectBegin() mock.ExpectExec("").WillReturnResult(driver.ResultNoRows) diff --git a/internal/database/sqlcommon/message_sql.go b/internal/database/sqlcommon/message_sql.go index a3e97659e..e5674f946 100644 --- a/internal/database/sqlcommon/message_sql.go +++ b/internal/database/sqlcommon/message_sql.go @@ -1,4 +1,4 @@ -// Copyright © 2022 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -210,8 +210,7 @@ func (s *SQLCommon) InsertMessages(ctx context.Context, messages []*core.Message return err } defer s.RollbackTx(ctx, tx, autoCommit) - - if s.features.MultiRowInsert { + if s.Features().MultiRowInsert { msgQuery := sq.Insert(messagesTable).Columns(msgColumns...) dataRefQuery := sq.Insert(messagesDataJoinTable).Columns( "namespace", diff --git a/internal/database/sqlcommon/message_sql_test.go b/internal/database/sqlcommon/message_sql_test.go index 19ffa8e21..de2227ff6 100644 --- a/internal/database/sqlcommon/message_sql_test.go +++ b/internal/database/sqlcommon/message_sql_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -310,9 +310,10 @@ func TestInsertMessagesBeginFail(t *testing.T) { } func TestInsertMessagesMultiRowOK(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() msg1 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID(), Namespace: "ns1"}, LocalNamespace: "ns1", Data: core.DataRefs{{ID: fftypes.NewUUID()}}} msg2 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID(), Namespace: "ns1"}, LocalNamespace: "ns1", Data: core.DataRefs{{ID: fftypes.NewUUID()}}} @@ -340,9 +341,10 @@ func TestInsertMessagesMultiRowOK(t *testing.T) { } func TestInsertMessagesMultiRowDataRefsFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() msg1 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID(), Namespace: "ns1"}, Data: core.DataRefs{{ID: fftypes.NewUUID()}}} @@ -356,9 +358,10 @@ func TestInsertMessagesMultiRowDataRefsFail(t *testing.T) { } func TestInsertMessagesMultiRowFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() msg1 := &core.Message{Header: core.MessageHeader{ID: fftypes.NewUUID(), Namespace: "ns1"}} mock.ExpectBegin() mock.ExpectQuery("INSERT.*").WillReturnError(fmt.Errorf("pop")) diff --git a/internal/database/sqlcommon/pin_sql.go b/internal/database/sqlcommon/pin_sql.go index ff39fcf70..a2961aa40 100644 --- a/internal/database/sqlcommon/pin_sql.go +++ b/internal/database/sqlcommon/pin_sql.go @@ -1,4 +1,4 @@ -// Copyright © 2022 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -124,7 +124,7 @@ func (s *SQLCommon) InsertPins(ctx context.Context, pins []*core.Pin) error { } defer s.RollbackTx(ctx, tx, autoCommit) - if s.features.MultiRowInsert { + if s.Features().MultiRowInsert { query := sq.Insert(pinsTable).Columns(pinColumns...) for _, pin := range pins { query = s.setPinInsertValues(query, pin) diff --git a/internal/database/sqlcommon/pin_sql_test.go b/internal/database/sqlcommon/pin_sql_test.go index 321042b5b..17749cf90 100644 --- a/internal/database/sqlcommon/pin_sql_test.go +++ b/internal/database/sqlcommon/pin_sql_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -146,9 +146,10 @@ func TestInsertPinsBeginFail(t *testing.T) { } func TestInsertPinsMultiRowOK(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() pin1 := &core.Pin{Namespace: "ns1", Hash: fftypes.NewRandB32()} pin2 := &core.Pin{Namespace: "ns1", Hash: fftypes.NewRandB32()} @@ -168,9 +169,10 @@ func TestInsertPinsMultiRowOK(t *testing.T) { } func TestInsertPinsMultiRowFail(t *testing.T) { - s, mock := newMockProvider().init() - s.features.MultiRowInsert = true + s := newMockProvider() + s.multiRowInsert = true s.fakePSQLInsert = true + s, mock := s.init() pin1 := &core.Pin{Hash: fftypes.NewRandB32()} mock.ExpectBegin() mock.ExpectQuery("INSERT.*").WillReturnError(fmt.Errorf("pop")) diff --git a/internal/database/sqlcommon/provider_mock_test.go b/internal/database/sqlcommon/provider_mock_test.go index b3cdf5176..38faa5eb9 100644 --- a/internal/database/sqlcommon/provider_mock_test.go +++ b/internal/database/sqlcommon/provider_mock_test.go @@ -1,4 +1,4 @@ -// Copyright © 2021 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -45,6 +45,7 @@ type mockProvider struct { openError error getMigrationDriverError error individualSort bool + multiRowInsert bool } func newMockProvider() *mockProvider { @@ -59,6 +60,7 @@ func newMockProvider() *mockProvider { mp.SQLCommon.InitConfig(mp, mp.config) mp.config.Set(SQLConfMaxConnections, 10) mp.mockDB, mp.mdb, _ = sqlmock.New() + mp.multiRowInsert = false return mp } @@ -84,6 +86,7 @@ func (mp *mockProvider) MigrationsDir() string { func (psql *mockProvider) Features() dbsql.SQLFeatures { features := dbsql.DefaultSQLProviderFeatures() features.UseILIKE = true + features.MultiRowInsert = psql.multiRowInsert features.AcquireLock = func(lockName string) string { return fmt.Sprintf(``, lockName) } diff --git a/internal/database/sqlcommon/sqlcommon.go b/internal/database/sqlcommon/sqlcommon.go index 1105604b8..02dbdd8ee 100644 --- a/internal/database/sqlcommon/sqlcommon.go +++ b/internal/database/sqlcommon/sqlcommon.go @@ -1,4 +1,4 @@ -// Copyright © 2022 Kaleido, Inc. +// Copyright © 2023 Kaleido, Inc. // // SPDX-License-Identifier: Apache-2.0 // @@ -33,7 +33,6 @@ type SQLCommon struct { dbsql.Database capabilities *database.Capabilities callbacks callbacks - features dbsql.SQLFeatures } type callbacks struct { diff --git a/test/e2e/multiparty/ethereum_contracts.go b/test/e2e/multiparty/ethereum_contracts.go index 967d65918..2b6385e76 100644 --- a/test/e2e/multiparty/ethereum_contracts.go +++ b/test/e2e/multiparty/ethereum_contracts.go @@ -19,7 +19,7 @@ package multiparty import ( "encoding/json" "fmt" - "io/ioutil" + "io" "os" "os/exec" "testing" @@ -316,7 +316,7 @@ func readContractJSON(t *testing.T, contract string) fftypes.JSONObject { jsonFile, err := os.Open(path) assert.NoError(t, err) defer jsonFile.Close() - byteValue, err := ioutil.ReadAll(jsonFile) + byteValue, err := io.ReadAll(jsonFile) assert.NoError(t, err) var jsonValue fftypes.JSONObject err = json.Unmarshal(byteValue, &jsonValue) From c9ff4862a6b449c59ad05358f456b5a08eb84bb8 Mon Sep 17 00:00:00 2001 From: Matthew Whitehead Date: Tue, 28 Feb 2023 16:00:36 +0000 Subject: [PATCH 2/2] Pull in firefly-common v1.2.3 Signed-off-by: Matthew Whitehead --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 730777f41..a1b923b9c 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/golang-migrate/migrate/v4 v4.15.2 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 - github.com/hyperledger/firefly-common v1.2.1 + github.com/hyperledger/firefly-common v1.2.3 github.com/hyperledger/firefly-signer v1.1.5 github.com/jarcoal/httpmock v1.2.0 github.com/karlseguin/ccache v2.0.3+incompatible @@ -28,8 +28,8 @@ require ( github.com/spf13/viper v1.14.0 github.com/stretchr/testify v1.8.1 gitlab.com/hfuss/mux-prometheus v0.0.4 - golang.org/x/net v0.4.0 - golang.org/x/text v0.5.0 + golang.org/x/net v0.7.0 + golang.org/x/text v0.7.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -79,8 +79,8 @@ require ( github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect go.uber.org/atomic v1.10.0 // indirect golang.org/x/crypto v0.4.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/term v0.3.0 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect diff --git a/go.sum b/go.sum index e199f70e2..d0bdc5d18 100644 --- a/go.sum +++ b/go.sum @@ -674,8 +674,8 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hyperledger/firefly-common v1.2.1 h1:h35T5Ask/ixlW70KZxHpPsO5QfdnKBFEyX+7L10lwoo= -github.com/hyperledger/firefly-common v1.2.1/go.mod h1:aqaq2ZUzSlkwVC/TF+pwUkHxGDLYSE2DzdozZ1MIMeM= +github.com/hyperledger/firefly-common v1.2.3 h1:6vlCEVUHZn8QdXdu3qrzfKLnzXsBffAKjWFiT9uWhA4= +github.com/hyperledger/firefly-common v1.2.3/go.mod h1:02hp5BYzAito5JMTjQZluk92xqhL0LxqEEHNENsVcFk= github.com/hyperledger/firefly-signer v1.1.5 h1:kCHe4O3tmYaMYf1hXrG40sIlpiGfOICmNNAcuMH5+jQ= github.com/hyperledger/firefly-signer v1.1.5/go.mod h1:XZP8ZXUZJSAPB6WUSM9RqRdpjnjm6Jsn0784WM4IKug= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= @@ -1396,8 +1396,8 @@ golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220111093109-d55c255bac03/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1552,15 +1552,15 @@ golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1570,8 +1570,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=