Skip to content

Commit e6ba4c8

Browse files
authored
Merge pull request #18 from trendmicro/update_to_latest_version_v1.6.0
update to latest version: v1.6.0
2 parents 71459b7 + 15ea730 commit e6ba4c8

File tree

17 files changed

+333
-278
lines changed

17 files changed

+333
-278
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# CHANGELOG
22

3+
## 1.6.0 - 2025-06-30
4+
5+
* Add active content detection support via `SetActiveContentEnable` function
6+
37
## 1.5.1 - 2025-03-03
48

59
* Support new region me-central-1
610
* Fix CVE-2023-45288
711

812
## 1.5.0 - 2024-12-16
13+
914
* Add `ScanReader` for scanning a well-implemented `AmaasClientReader`
1015
* Add example code `scan-s3obj` for scanning an S3 object which is an example of using `ScanReader`
1116

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,20 @@ You can enable verbose scan result by calling the `SetVerboseEnable` function:
192192
client.SetVerboseEnable()
193193
```
194194

195+
### Enable Active Content Detection
196+
197+
Enables active content detection for scanning operations. This feature allows the scanner to detect potentially malicious active content within files, specifically:
198+
199+
- **PDF scripts**: Detects embedded JavaScript and other scripting content in PDF files
200+
- **Office macros**: Detects VBA macros and other executable content in Microsoft Office documents
201+
202+
When active content is detected, the scan result will include a type field with values of either `macro` or `script` to indicate the type of active content found.
203+
204+
```go
205+
client.SetActiveContentEnable()
206+
```
207+
208+
195209
### Disable Digest Calculation
196210

197211
You can disable digest calculation by calling the `SetDigestDisable` function:
@@ -420,6 +434,9 @@ Specify to enable SPN feedback
420434
`-verbose`
421435
Specify to enable verbose scan result
422436
437+
`-active-content`
438+
Specify to enable active content detection
439+
423440
`-tag <string>`
424441
Specify the tags to be used for scanning, separated by commas
425442
@@ -464,6 +481,9 @@ Specify to enable SPN feedback
464481
`-verbose`
465482
Specify to enable verbose scan result
466483
484+
`-active-content`
485+
Specify to enable active content detection
486+
467487
`-tag <string>`
468488
Specify the tags to be used for scanning, separated by commas
469489

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.5.1
1+
1.6.0

examples/client/client.go

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,34 @@ package main
33
import (
44
"flag"
55
"log"
6-
"os"
76
"strings"
87

98
amaasclient "github.com/trendmicro/tm-v1-fs-golang-sdk"
109
)
1110

1211
var (
13-
addr = flag.String("addr", "", "the address to connect to")
14-
apiKey = flag.String("apikey", "", "API key for service authentication")
15-
fileName = flag.String("filename", os.Args[0], "file to scan")
16-
tls = flag.Bool("tls", false, "enable/disable TLS")
17-
region = flag.String("region", "", "the region to connect to")
18-
pml = flag.Bool("pml", false, "enable/disable predictive machine learning detection")
19-
feedback = flag.Bool("feedback", false, "enable/disable SPN feedback")
20-
verbose = flag.Bool("verbose", false, "enable/disable verbose scan result")
21-
tag = flag.String("tag", "", "tags to be used for scanning")
22-
digest = flag.Bool("digest", true, "enable/disable digest calculation")
23-
caCert = flag.String("ca_cert", "", "CA certificate for self hosted AMaaS server")
12+
addr = flag.String("addr", "", "the address to connect to")
13+
apiKey = flag.String("apikey", "", "API key for service authentication")
14+
filenameFlag = flag.String("filename", "", "file to scan (optional, can also be specified as the last argument)")
15+
tls = flag.Bool("tls", false, "enable/disable TLS")
16+
region = flag.String("region", "", "the region to connect to")
17+
pml = flag.Bool("pml", false, "enable/disable predictive machine learning detection")
18+
feedback = flag.Bool("feedback", false, "enable/disable SPN feedback")
19+
verbose = flag.Bool("verbose", false, "enable/disable verbose scan result")
20+
activeContent = flag.Bool("active-content", false, "enable/disable active content detection")
21+
tag = flag.String("tag", "", "tags to be used for scanning")
22+
digest = flag.Bool("digest", true, "enable/disable digest calculation")
23+
caCert = flag.String("ca_cert", "", "CA certificate for self hosted AMaaS server")
2424
)
2525

2626
func main() {
2727
flag.Parse()
2828

29+
fileName := getFileName()
30+
if fileName == "" {
31+
log.Fatal("Please specify a file to scan using either -filename flag or as the last argument")
32+
}
33+
2934
var client *amaasclient.AmaasClient
3035
var err error
3136

@@ -57,6 +62,10 @@ func main() {
5762
client.SetVerboseEnable()
5863
}
5964

65+
if *activeContent {
66+
client.SetActiveContentEnable()
67+
}
68+
6069
if !*digest {
6170
client.SetDigestDisable()
6271
}
@@ -66,7 +75,7 @@ func main() {
6675
tagsArray = strings.Split(*tag, ",")
6776
}
6877

69-
result, err := client.ScanFile(*fileName, tagsArray)
78+
result, err := client.ScanFile(fileName, tagsArray)
7079
if err != nil {
7180
log.Fatal(err.Error())
7281
}
@@ -75,3 +84,19 @@ func main() {
7584

7685
client.Destroy()
7786
}
87+
88+
func getFileName() string {
89+
var fileName string
90+
91+
args := flag.Args()
92+
93+
if len(args) > 0 {
94+
fileName = args[len(args)-1]
95+
}
96+
97+
if *filenameFlag != "" {
98+
fileName = *filenameFlag
99+
}
100+
101+
return fileName
102+
}

examples/scan-s3obj/go.mod

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
module github.com/trendmicro/tm-v1-fs-golang-sdk/examples/scan-s3obj
22

3-
go 1.23
3+
go 1.23.0
4+
5+
toolchain go1.24.2
6+
7+
replace github.com/trendmicro/tm-v1-fs-golang-sdk => ../../
48

59
require (
610
github.com/aws/aws-sdk-go-v2 v1.32.5 // indirect
@@ -19,18 +23,17 @@ require (
1923
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 // indirect
2024
github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 // indirect
2125
github.com/aws/smithy-go v1.22.1 // indirect
22-
github.com/golang/protobuf v1.5.4 // indirect
2326
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
24-
golang.org/x/net v0.33.0 // indirect
25-
golang.org/x/sys v0.28.0 // indirect
26-
golang.org/x/text v0.21.0 // indirect
27-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
28-
google.golang.org/grpc v1.62.1 // indirect
29-
google.golang.org/protobuf v1.33.0 // indirect
27+
golang.org/x/net v0.38.0 // indirect
28+
golang.org/x/sys v0.31.0 // indirect
29+
golang.org/x/text v0.23.0 // indirect
30+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
31+
google.golang.org/grpc v1.73.0 // indirect
32+
google.golang.org/protobuf v1.36.6 // indirect
3033
)
3134

3235
require (
33-
github.com/trendmicro/tm-v1-fs-golang-sdk v0.0.0-20241119105152-8e5832d37e21
36+
github.com/trendmicro/tm-v1-fs-golang-sdk v0.0.0
3437
github.com/aws/aws-sdk-go-v2/config v1.28.5
3538
github.com/aws/aws-sdk-go-v2/service/s3 v1.67.1
3639
)

examples/scan-s3obj/go.sum

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
github.com/trendmicro/tm-v1-fs-golang-sdk v0.0.0-20241119105152-8e5832d37e21 h1:30XGBlE8B4nrYGFPNxz8Q+tIPQPb95zKIHqmVM5jh8w=
2-
github.com/trendmicro/tm-v1-fs-golang-sdk v0.0.0-20241119105152-8e5832d37e21/go.mod h1:P/bveu/shq7hy5xRt2h6L1H6yR2FGqaNIJ7lm+yJLKU=
31
github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo=
42
github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U=
53
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8=
@@ -38,29 +36,47 @@ github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
3836
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
3937
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4038
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
41-
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
42-
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
39+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
40+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
41+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
42+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
43+
github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8=
44+
github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
4345
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
4446
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
45-
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
46-
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
47+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
48+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
49+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
50+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
4751
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4852
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4953
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
5054
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
55+
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
56+
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
57+
go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
58+
go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
59+
go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
60+
go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
61+
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
62+
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
63+
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
64+
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
65+
go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
66+
go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
5167
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
5268
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
53-
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
54-
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
55-
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
56-
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
57-
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
58-
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
59-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s=
60-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
61-
google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
62-
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
63-
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
64-
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
69+
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
70+
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
71+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
72+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
73+
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
74+
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
75+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
76+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
77+
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
78+
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
79+
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
80+
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
6581
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
6682
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

examples/scan-s3obj/scan-s3obj.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ func main() {
3535
var pml bool
3636
var feedback bool
3737
var verbose bool
38+
var activeContent bool
3839
var tag string
3940
var digest bool
4041

@@ -49,6 +50,7 @@ func main() {
4950
flag.BoolVar(&pml, "pml", false, "enable predictive machine learning detection")
5051
flag.BoolVar(&feedback, "feedback", false, "enable SPN feedback")
5152
flag.BoolVar(&verbose, "verbose", false, "enable verbose scan result")
53+
flag.BoolVar(&activeContent, "active-content", false, "enable/disable active content detection")
5254
flag.StringVar(&tag, "tag", "", "tags to be used for scanning. separated by comma.")
5355
flag.StringVar(&caCert, "ca_cert", "", "CA certificate for self hosted AMaaS server")
5456
flag.BoolVar(&digest, "digest", false, "enable digest calculation. it might increase network traffic for cloud file.")
@@ -86,6 +88,10 @@ func main() {
8688
ac.SetVerboseEnable()
8789
}
8890

91+
if activeContent {
92+
ac.SetActiveContentEnable()
93+
}
94+
8995
if !digest {
9096
// disable digest calculation to reduce network traffic if file is on cloud
9197
ac.SetDigestDisable()

examples/scanfiles/scanfiles.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func main() {
5454
var pml bool
5555
var feedback bool
5656
var verbose bool
57+
var activeContent bool
5758
var tag string
5859
var digest bool
5960

@@ -68,6 +69,7 @@ func main() {
6869
flag.BoolVar(&pml, "pml", false, "enable/disable predictive machine learning detection")
6970
flag.BoolVar(&feedback, "feedback", false, "enable/disable SPN feedback")
7071
flag.BoolVar(&verbose, "verbose", false, "enable/disable verbose scan result")
72+
flag.BoolVar(&activeContent, "active-content", false, "enable/disable active content detection")
7173
flag.StringVar(&tag, "tag", "", "tags to be used for scanning")
7274
flag.StringVar(&caCert, "ca_cert", "", "CA certificate for self hosted AMaaS server")
7375
flag.BoolVar(&digest, "digest", true, "enable/disable verbose scan result")
@@ -114,6 +116,10 @@ func main() {
114116
ac.SetVerboseEnable()
115117
}
116118

119+
if activeContent {
120+
ac.SetActiveContentEnable()
121+
}
122+
117123
if !digest {
118124
ac.SetDigestDisable()
119125
}

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
module github.com/trendmicro/tm-v1-fs-golang-sdk
22

3-
go 1.19
3+
go 1.23.0
44

55
require (
6-
github.com/golang-jwt/jwt v3.2.2+incompatible
6+
github.com/golang-jwt/jwt/v5 v5.2.2
77
github.com/stretchr/testify v1.8.1
88
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
9-
golang.org/x/net v0.33.0
10-
google.golang.org/grpc v1.62.1
11-
google.golang.org/protobuf v1.33.0
9+
golang.org/x/net v0.38.0
10+
google.golang.org/grpc v1.73.0
11+
google.golang.org/protobuf v1.36.6
1212
)
1313

1414
require (
1515
github.com/davecgh/go-spew v1.1.1 // indirect
16-
github.com/golang/protobuf v1.5.4 // indirect
1716
github.com/pmezard/go-difflib v1.0.0 // indirect
18-
golang.org/x/sys v0.28.0 // indirect
19-
golang.org/x/text v0.21.0 // indirect
20-
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
17+
golang.org/x/sys v0.31.0 // indirect
18+
golang.org/x/text v0.23.0 // indirect
19+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
2120
gopkg.in/yaml.v3 v3.0.1 // indirect
21+
2222
)

0 commit comments

Comments
 (0)