Skip to content

Commit 99783f9

Browse files
committed
replace custom logger with slog
1 parent b9c0c05 commit 99783f9

File tree

70 files changed

+681
-1174
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+681
-1174
lines changed

cmd/gen-docs/main.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"fmt"
5+
"log/slog"
56
"os"
67
"strings"
78

@@ -12,11 +13,9 @@ import (
1213
"github.com/reubenmiller/go-c8y-cli/v2/pkg/config"
1314
"github.com/reubenmiller/go-c8y-cli/v2/pkg/console"
1415
"github.com/reubenmiller/go-c8y-cli/v2/pkg/dataview"
15-
"github.com/reubenmiller/go-c8y-cli/v2/pkg/logger"
1616
"github.com/reubenmiller/go-c8y/pkg/c8y"
1717
"github.com/spf13/pflag"
1818
"github.com/spf13/viper"
19-
"go.uber.org/zap/zapcore"
2019
)
2120

2221
func main() {
@@ -102,18 +101,11 @@ func createCmdRoot() *root.CmdRoot {
102101
var client *c8y.Client
103102
var dataView *dataview.DataView
104103
var consoleHandler *console.Console
105-
var logHandler *logger.Logger
106104
var activityLoggerHandler *activitylogger.ActivityLogger
107105
var configHandler = config.NewConfig(viper.GetViper())
108106

109-
// init logger
110-
logHandler = logger.NewLogger("", logger.Options{
111-
Level: zapcore.WarnLevel,
112-
Debug: false,
113-
})
114-
115107
if _, err := configHandler.ReadConfigFiles(nil); err != nil {
116-
logHandler.Infof("Failed to read configuration. Trying to proceed anyway. %s", err)
108+
slog.Info("Failed to read configuration. Trying to proceed anyway", "err", err)
117109
}
118110

119111
// cmd factory
@@ -129,12 +121,6 @@ func createCmdRoot() *root.CmdRoot {
129121
}
130122
return client, nil
131123
}
132-
loggerFunc := func() (*logger.Logger, error) {
133-
if logHandler == nil {
134-
return nil, fmt.Errorf("logger is missing")
135-
}
136-
return logHandler, nil
137-
}
138124
activityLoggerFunc := func() (*activitylogger.ActivityLogger, error) {
139125
if activityLoggerHandler == nil {
140126
return nil, fmt.Errorf("activityLogger is missing")
@@ -153,7 +139,7 @@ func createCmdRoot() *root.CmdRoot {
153139
}
154140
return consoleHandler, nil
155141
}
156-
cmdFactory := factory.New("", "", configFunc, clientFunc, loggerFunc, activityLoggerFunc, dataViewFunc, consoleFunc)
142+
cmdFactory := factory.New("", "", configFunc, clientFunc, activityLoggerFunc, dataViewFunc, consoleFunc)
157143

158144
return root.NewCmdRoot(cmdFactory, "", "")
159145
}

cmd/gen-tests/main.go

Lines changed: 17 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,63 +4,32 @@ import (
44
"encoding/json"
55
"fmt"
66
"io"
7+
"log"
8+
"log/slog"
79
"os"
810
"path"
911
"path/filepath"
1012
"strconv"
1113
"strings"
1214

1315
"github.com/spf13/cobra"
14-
"go.uber.org/zap"
15-
"go.uber.org/zap/zapcore"
1616

1717
"github.com/google/shlex"
1818
"github.com/reubenmiller/go-c8y-cli/v2/internal/integration/models"
1919
"github.com/reubenmiller/go-c8y-cli/v2/pkg/flatten"
2020
"github.com/reubenmiller/go-c8y-cli/v2/pkg/jsonUtilities"
21+
"github.com/reubenmiller/go-c8y-cli/v2/pkg/logger"
2122
"gopkg.in/yaml.v3"
2223
)
2324

24-
var logger *zap.Logger
25-
var loggerS *zap.SugaredLogger
26-
2725
func init() {
2826
createLogger()
2927
}
3028

3129
func createLogger() {
32-
consoleEncCfg := zapcore.EncoderConfig{
33-
// Keys can be anything except the empty string.
34-
TimeKey: "T",
35-
LevelKey: "L",
36-
NameKey: "N",
37-
CallerKey: "C",
38-
FunctionKey: zapcore.OmitKey,
39-
MessageKey: "M",
40-
StacktraceKey: "S",
41-
LineEnding: zapcore.DefaultLineEnding,
42-
EncodeLevel: zapcore.CapitalColorLevelEncoder,
43-
EncodeTime: zapcore.ISO8601TimeEncoder,
44-
EncodeDuration: zapcore.StringDurationEncoder,
45-
EncodeCaller: zapcore.ShortCallerEncoder,
46-
}
47-
48-
consoleLevel := zapcore.InfoLevel
49-
consoleLevelEnabler := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
50-
return lvl >= consoleLevel
30+
logger.NewLogger("gen-test", logger.Options{
31+
Level: slog.LevelInfo,
5132
})
52-
var cores []zapcore.Core
53-
cores = append(cores, zapcore.NewCore(
54-
zapcore.NewConsoleEncoder(consoleEncCfg),
55-
zapcore.Lock(zapcore.AddSync(os.Stderr)),
56-
consoleLevelEnabler,
57-
))
58-
core := zapcore.NewTee(cores...)
59-
logger = zap.New(core)
60-
defer func() {
61-
_ = logger.Sync()
62-
}()
63-
loggerS = logger.Sugar()
6433
}
6534

6635
type Generator struct {
@@ -75,13 +44,13 @@ func NewGenerator(name string, mockConfig *models.MockConfiguration) (gen *Gener
7544
}
7645
contents, err := io.ReadAll(f)
7746
if err != nil {
78-
loggerS.Fatalf("Failed to read spec file. file=%s err=%s", name, err)
47+
log.Fatalf("Failed to read spec file. file=%s err=%s", name, err)
7948
return
8049
}
8150
spec := &models.Specification{}
8251
err = yaml.Unmarshal(contents, spec)
8352
if err != nil {
84-
loggerS.Fatalf("Failed to marshal spec file. file=%s err=%s", name, err)
53+
log.Fatalf("Failed to marshal spec file. file=%s err=%s", name, err)
8554
return
8655
}
8756

@@ -120,7 +89,7 @@ func (g *Generator) CreateTests(outDir string) error {
12089
testcase.Command = fmt.Sprintf("$TEST_SHELL -c '%s'", command)
12190
}
12291

123-
loggerS.Debugf("Processing endpoint: %s", testcase.Command)
92+
slog.Debug("Processing endpoint", "command", testcase.Command)
12493
testcase.StdOut = buildAssertions(g.Spec.Group.Name, &endpoint, i)
12594

12695
testsuite.Tests[key] = *testcase
@@ -129,7 +98,7 @@ func (g *Generator) CreateTests(outDir string) error {
12998
suitekey := CreateSuiteKey(g.Spec, &endpoint)
13099

131100
if err := WriteTestSuite(testsuite, suitekey, outDir); err != nil {
132-
loggerS.Fatalf("Failed to write test suite to file. %s", err)
101+
log.Fatalf("Failed to write test suite to file. %s", err)
133102
}
134103
}
135104

@@ -164,7 +133,7 @@ func CreateFakeCommand(parentCmd string, endpoint *models.Command) *cobra.Comman
164133
cmd.PersistentFlags().String("output", "o", "Output format i.e. table, json, csv, csvheader")
165134

166135
for _, parameter := range endpoint.GetAllParameters() {
167-
loggerS.Debugf("Adding parameter. name=%s", parameter.Name)
136+
slog.Debug("Adding parameter", "name", parameter.Name)
168137
if strings.Contains(parameter.Type, "[]") {
169138
cmd.Flags().StringSlice(parameter.Name, nil, "")
170139
} else if parameter.Type == "boolean" || parameter.Type == "optional_fragment" || parameter.Type == "booleanDefault" {
@@ -199,7 +168,7 @@ func CreateFakeCommand(parentCmd string, endpoint *models.Command) *cobra.Comman
199168
func parseFakeCommand(parentCmd string, command string, endpoint *models.Command) *cobra.Command {
200169
cmd := CreateFakeCommand(parentCmd, endpoint)
201170
if err := cmd.ParseFlags(parseCommand(parentCmd, command, endpoint)); err != nil {
202-
loggerS.Fatalf("Failed to parse command. command=%s, err=%s", command, err)
171+
log.Fatalf("Failed to parse command. command=%s, err=%s", command, err)
203172
}
204173

205174
return cmd
@@ -272,7 +241,7 @@ func buildAssertions(parentCmd string, endpoint *models.Command, exampleIdx int)
272241
} else {
273242
for _, parameter := range endpoint.Body {
274243
value := getParameterValue(cmd, &parameter)
275-
loggerS.Debugf("Adding body property. name=%s, value=%s", parameter.Name, value)
244+
slog.Debug("Adding body property", "name", parameter.Name, "value", value)
276245
if value != "" {
277246
switch parameter.Type {
278247
case "attachment", "file", "fileContents":
@@ -301,7 +270,7 @@ func formatJsonAssertion(jsonAssertion map[string]string, propType string, prop
301270
if strings.HasSuffix(prop, ".data") || strings.EqualFold(propType, "json_custom") {
302271
data := make(map[string]interface{})
303272
if err := jsonUtilities.ParseJSON(values[0], data); err != nil {
304-
loggerS.Warnf("Could not parse shorthand json. error=%s, data=%s", err, values[0])
273+
slog.Warn("Could not parse shorthand json", "err", err, "data", values[0])
305274
return
306275
}
307276

@@ -311,7 +280,7 @@ func formatJsonAssertion(jsonAssertion map[string]string, propType string, prop
311280
}
312281
flatData, err := flatten.Flatten(data, prefix, flatten.DotStyle)
313282
if err != nil {
314-
loggerS.Fatalf("Could not flatten map. %s", err)
283+
log.Fatalf("Could not flatten map. %s", err)
315284
}
316285
for k, v := range flatData {
317286
switch tv := v.(type) {
@@ -416,7 +385,7 @@ func substituteVariables(cmd *cobra.Command, endpoint *models.Command) (out stri
416385
}
417386
}
418387

419-
loggerS.Debugf("Detected variables: %v", variableNames)
388+
slog.Debug("Detected variables", "variables", variableNames)
420389
// replace variable values from fake command
421390

422391
for _, parameter := range endpoint.PathParameters {
@@ -446,7 +415,7 @@ func WriteTestSuite(t *models.TestSuite, id string, outDir string) (err error) {
446415
}
447416

448417
if err := os.MkdirAll(filepath.Dir(outFile), 0755); err != nil {
449-
loggerS.Fatal(err)
418+
log.Fatal(err)
450419
}
451420

452421
f, err := os.OpenFile(outFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
@@ -504,7 +473,7 @@ func main() {
504473

505474
// Ignore skipped specs
506475
if gen.Spec.Group.Skip {
507-
loggerS.Warnf("Specification is marked as skipped. Ignoring. file=%s", os.Args[2])
476+
slog.Warn("Specification is marked as skipped. Ignoring file", "file", os.Args[2])
508477
os.Exit(0)
509478
}
510479

go.mod

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ require (
2323
github.com/olekukonko/ts v0.0.0-20171002115256-78ecb04241c0
2424
github.com/pkg/errors v0.9.1
2525
github.com/pquerna/otp v1.5.0
26-
github.com/reubenmiller/go-c8y v0.37.6
26+
github.com/reubenmiller/go-c8y v0.37.7-0.20250823091328-e9f46442afa8
2727
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
2828
github.com/spf13/cobra v1.9.1
2929
github.com/spf13/pflag v1.0.6
@@ -33,9 +33,8 @@ require (
3333
github.com/tidwall/pretty v1.2.1
3434
github.com/tidwall/sjson v1.2.5
3535
github.com/vbauerster/mpb/v6 v6.0.4
36-
go.uber.org/zap v1.27.0
37-
golang.org/x/crypto v0.39.0
38-
golang.org/x/term v0.32.0
36+
golang.org/x/crypto v0.41.0
37+
golang.org/x/term v0.34.0
3938
gopkg.in/yaml.v3 v3.0.1
4039
)
4140

@@ -44,9 +43,10 @@ require github.com/hashicorp/go-version v1.7.0
4443
require (
4544
github.com/cli/browser v1.3.0
4645
github.com/dustin/go-humanize v1.0.1
47-
github.com/golang-jwt/jwt/v5 v5.2.2
46+
github.com/golang-jwt/jwt/v5 v5.3.0
4847
github.com/hashicorp/go-retryablehttp v0.7.7
4948
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
49+
github.com/lmittmann/tint v1.1.2
5050
github.com/reubenmiller/gojsonq/v2 v2.0.0-20221119213524-0fd921ac20a3
5151
)
5252

@@ -79,7 +79,6 @@ require (
7979
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
8080
github.com/microcosm-cc/bluemonday v1.0.27 // indirect
8181
github.com/muesli/reflow v0.3.0 // indirect
82-
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 // indirect
8382
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
8483
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
8584
github.com/rivo/uniseg v0.4.7 // indirect
@@ -96,14 +95,14 @@ require (
9695
go.mozilla.org/pkcs7 v0.9.0 // indirect
9796
go.uber.org/multierr v1.11.0 // indirect
9897
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b // indirect
99-
golang.org/x/net v0.41.0 // indirect
100-
golang.org/x/sys v0.33.0 // indirect
101-
golang.org/x/text v0.26.0 // indirect
98+
golang.org/x/net v0.43.0 // indirect
99+
golang.org/x/sys v0.35.0 // indirect
100+
golang.org/x/text v0.28.0 // indirect
102101
gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 // indirect
103102
rsc.io/qr v0.2.0 // indirect
104103
sigs.k8s.io/yaml v1.4.0 // indirect
105104
)
106105

107-
go 1.23.7
106+
go 1.24
108107

109-
toolchain go1.24.2
108+
toolchain go1.24.5

go.sum

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/
7878
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
7979
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
8080
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
81-
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
82-
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
81+
github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
82+
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
8383
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8484
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
8585
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
@@ -116,6 +116,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
116116
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
117117
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
118118
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
119+
github.com/lmittmann/tint v1.1.2 h1:2CQzrL6rslrsyjqLDwD11bZ5OpLBPU+g3G/r5LSfS8w=
120+
github.com/lmittmann/tint v1.1.2/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE=
119121
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
120122
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
121123
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
@@ -150,8 +152,6 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N
150152
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
151153
github.com/olekukonko/ts v0.0.0-20171002115256-78ecb04241c0 h1:LiZB1h0GIcudcDci2bxbqI6DXV8bF8POAnArqvRrIyw=
152154
github.com/olekukonko/ts v0.0.0-20171002115256-78ecb04241c0/go.mod h1:F/7q8/HZz+TXjlsoZQQKVYvXTZaFH4QRa3y+j1p7MS0=
153-
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=
154-
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
155155
github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
156156
github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
157157
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -161,8 +161,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
161161
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
162162
github.com/pquerna/otp v1.5.0 h1:NMMR+WrmaqXU4EzdGJEE1aUUI0AMRzsp96fFFWNPwxs=
163163
github.com/pquerna/otp v1.5.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
164-
github.com/reubenmiller/go-c8y v0.37.6 h1:4OLwu9PHLw9sPNMfggQtGuzVh1+gk6U/ZCrIooFUr7g=
165-
github.com/reubenmiller/go-c8y v0.37.6/go.mod h1:63lPvPX6B8xf5GT9PvRrXgM0u5uU5tgZiQRAIfYQDQY=
164+
github.com/reubenmiller/go-c8y v0.37.7-0.20250823091328-e9f46442afa8 h1:NA5pJOaCxdwcM/19JxERbU4Uo8qmVVhBpHiwXwteSD0=
165+
github.com/reubenmiller/go-c8y v0.37.7-0.20250823091328-e9f46442afa8/go.mod h1:u2pwiVXmZr7X687S8h8gUocpFx7jbhm2Oppmn96xB80=
166166
github.com/reubenmiller/gojsonq/v2 v2.0.0-20221119213524-0fd921ac20a3 h1:v8Q77ObTxkm0Wj9iAjcc0VMLxqEzKIdAnaTNPzSiw8Q=
167167
github.com/reubenmiller/gojsonq/v2 v2.0.0-20221119213524-0fd921ac20a3/go.mod h1:QidmUT4ebNVwyjKXAQgx9VFHxpOxBKWs32EEXaXnEfE=
168168
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
@@ -222,24 +222,20 @@ github.com/yuin/goldmark-emoji v1.0.5 h1:EMVWyCGPlXJfUXBXpuMu+ii3TIaxbVBnEX9uaDC
222222
github.com/yuin/goldmark-emoji v1.0.5/go.mod h1:tTkZEbwu5wkPmgTcitqddVxY9osFZiavD+r4AzQrh1U=
223223
go.mozilla.org/pkcs7 v0.9.0 h1:yM4/HS9dYv7ri2biPtxt8ikvB37a980dg69/pKmS+eI=
224224
go.mozilla.org/pkcs7 v0.9.0/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk=
225-
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
226-
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
227225
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
228226
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
229-
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
230-
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
231227
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
232228
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
233-
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
234-
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
229+
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
230+
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
235231
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4=
236232
golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
237233
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
238234
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
239235
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
240236
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
241-
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
242-
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
237+
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
238+
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
243239
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
244240
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
245241
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -252,18 +248,18 @@ golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBc
252248
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
253249
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
254250
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
255-
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
256-
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
251+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
252+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
257253
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
258254
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
259-
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
260-
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
255+
golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4=
256+
golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw=
261257
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
262258
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
263259
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
264260
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
265-
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
266-
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
261+
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
262+
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
267263
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
268264
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
269265
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=

0 commit comments

Comments
 (0)