Skip to content

Commit e31aa81

Browse files
authored
Merge pull request #31 from wangle201210/feat/excel
添加excel解析
2 parents 05987a2 + e9d2569 commit e31aa81

File tree

9 files changed

+83
-35
lines changed

9 files changed

+83
-35
lines changed

server/api/rag/v1/indexer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
type IndexerReq struct {
99
g.Meta `path:"/v1/indexer" method:"post" mime:"multipart/form-data" tags:"rag"`
10-
File *ghttp.UploadFile `p:"file" type:"file" dc:"如果是本地文件,怎上传文件"`
10+
File *ghttp.UploadFile `p:"file" type:"file" dc:"如果是本地文件,则直接上传文件"`
1111
URL string `p:"url" dc:"如果是网络文件则直接输入url即可"`
1212
KnowledgeName string `p:"knowledge_name" dc:"知识库名称" v:"required"`
1313
}

server/core/common/consts.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ const (
1313
Title1 = "h1"
1414
Title2 = "h2"
1515
Title3 = "h3"
16+
17+
XlsxRow = "_row"
1618
)
1719

1820
var (

server/core/indexer/indexer.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,23 +66,6 @@ func newIndexer(ctx context.Context, conf *config.Config) (idr indexer.Indexer,
6666
return idr, nil
6767
}
6868

69-
func getMdContentWithTitle(doc *schema.Document) string {
70-
if doc.MetaData == nil {
71-
return doc.Content
72-
}
73-
title := ""
74-
list := []string{"h1", "h2", "h3", "h4", "h5", "h6"}
75-
for _, v := range list {
76-
if d, e := doc.MetaData[v].(string); e && len(d) > 0 {
77-
title += fmt.Sprintf("%s:%s ", v, d)
78-
}
79-
}
80-
if len(title) == 0 {
81-
return doc.Content
82-
}
83-
return title + "\n" + doc.Content
84-
}
85-
8669
func getExtData(doc *schema.Document) map[string]any {
8770
if doc.MetaData == nil {
8871
return nil

server/core/indexer/merge.go

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package indexer
22

33
import (
44
"context"
5+
"fmt"
56
"strings"
67

8+
"github.com/bytedance/sonic"
79
"github.com/cloudwego/eino-ext/components/document/loader/file"
810
"github.com/cloudwego/eino/schema"
911
"github.com/google/uuid"
@@ -12,15 +14,23 @@ import (
1214

1315
// docAddIDAndMerge component initialization function of node 'Lambda1' in graph 't'
1416
func docAddIDAndMerge(ctx context.Context, docs []*schema.Document) (output []*schema.Document, err error) {
17+
if len(docs) == 0 {
18+
return docs, nil
19+
}
1520
for _, doc := range docs {
16-
if doc.ID == "" {
17-
doc.ID = uuid.New().String()
18-
}
21+
doc.ID = uuid.New().String() // 覆盖之前的id
1922
}
20-
// 不是md文档不处理
21-
if len(docs) == 0 || docs[0].MetaData[file.MetaKeyExtension] != ".md" {
23+
switch docs[0].MetaData[file.MetaKeyExtension] {
24+
case ".md":
25+
return mergeMD(ctx, docs)
26+
case ".xlsx":
27+
return mergeXLSX(ctx, docs)
28+
default:
2229
return docs, nil
2330
}
31+
}
32+
33+
func mergeMD(ctx context.Context, docs []*schema.Document) (output []*schema.Document, err error) {
2434
ndocs := make([]*schema.Document, 0, len(docs))
2535
var nd *schema.Document
2636
maxLen := 512
@@ -63,6 +73,14 @@ func docAddIDAndMerge(ctx context.Context, docs []*schema.Document) (output []*s
6373
return ndocs, nil
6474
}
6575

76+
func mergeXLSX(ctx context.Context, docs []*schema.Document) (output []*schema.Document, err error) {
77+
for _, doc := range docs {
78+
marshal, _ := sonic.Marshal(doc.MetaData[common.XlsxRow])
79+
doc.Content = string(marshal)
80+
}
81+
return docs, nil
82+
}
83+
6684
func mergeTitle(orgDoc, addDoc *schema.Document, key string) {
6785
// 相等就不管了
6886
if orgDoc.MetaData[key] == addDoc.MetaData[key] {
@@ -79,3 +97,20 @@ func mergeTitle(orgDoc, addDoc *schema.Document, key string) {
7997
orgDoc.MetaData[key] = strings.Join(title, ",")
8098
}
8199
}
100+
101+
func getMdContentWithTitle(doc *schema.Document) string {
102+
if doc.MetaData == nil {
103+
return doc.Content
104+
}
105+
title := ""
106+
list := []string{"h1", "h2", "h3", "h4", "h5", "h6"}
107+
for _, v := range list {
108+
if d, e := doc.MetaData[v].(string); e && len(d) > 0 {
109+
title += fmt.Sprintf("%s:%s ", v, d)
110+
}
111+
}
112+
if len(title) == 0 {
113+
return doc.Content
114+
}
115+
return title + "\n" + doc.Content
116+
}

server/core/indexer/parser.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55

66
"github.com/cloudwego/eino-ext/components/document/parser/html"
77
"github.com/cloudwego/eino-ext/components/document/parser/pdf"
8+
"github.com/cloudwego/eino-ext/components/document/parser/xlsx"
9+
810
"github.com/cloudwego/eino/components/document/parser"
911
"github.com/wangle201210/go-rag/server/core/common"
1012
)
@@ -18,6 +20,7 @@ func newParser(ctx context.Context) (p parser.Parser, err error) {
1820
if err != nil {
1921
return nil, err
2022
}
23+
xlsxParser, err := xlsx.NewXlsxParser(ctx, nil)
2124

2225
pdfParser, err := pdf.NewPDFParser(ctx, &pdf.Config{})
2326
if err != nil {
@@ -30,6 +33,7 @@ func newParser(ctx context.Context) (p parser.Parser, err error) {
3033
Parsers: map[string]parser.Parser{
3134
".html": htmlParser,
3235
".pdf": pdfParser,
36+
".xlsx": xlsxParser,
3337
},
3438
// 设置默认解析器,用于处理未知格式
3539
FallbackParser: textParser,

server/core/rag_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/cloudwego/eino/schema"
1010
"github.com/elastic/go-elasticsearch/v8"
11+
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
1112
"github.com/gogf/gf/v2/frame/g"
1213
"github.com/gogf/gf/v2/os/gctx"
1314
"github.com/wangle201210/go-rag/server/core/config"
@@ -43,7 +44,8 @@ func TestIndex(t *testing.T) {
4344
_init()
4445
ctx := context.Background()
4546
uriList := []string{
46-
"./test_file/readme.md",
47+
"./test_file/test.xlsx",
48+
// "./test_file/readme.md",
4749
// "./test_file/readme2.md",
4850
// "./test_file/readme.html",
4951
// "./test_file/test.pdf",

server/core/test_file/test.xlsx

10.5 KB
Binary file not shown.

server/go.mod

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ require (
77
github.com/bytedance/sonic v1.13.2
88
github.com/cenkalti/backoff/v4 v4.3.0
99
github.com/cloudwego/eino v0.3.31
10-
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250424061409-ccd60fbc7c1c
10+
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250519091007-282cc7eb18d3
1111
github.com/cloudwego/eino-ext/components/document/loader/url v0.0.0-20250610035057-2c4e7c8488a5
1212
github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250424061409-ccd60fbc7c1c
1313
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250424061409-ccd60fbc7c1c
14+
github.com/cloudwego/eino-ext/components/document/parser/xlsx v0.0.0-20250926124823-eb0cd6b2bbb9
1415
github.com/cloudwego/eino-ext/components/document/transformer/splitter/markdown v0.0.0-20250610035057-2c4e7c8488a5
1516
github.com/cloudwego/eino-ext/components/document/transformer/splitter/recursive v0.0.0-20250424061409-ccd60fbc7c1c
1617
github.com/cloudwego/eino-ext/components/embedding/openai v0.0.0-20250424061409-ccd60fbc7c1c
@@ -75,23 +76,29 @@ require (
7576
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
7677
github.com/perimeterx/marshmallow v1.1.5 // indirect
7778
github.com/pkg/errors v0.9.1 // indirect
79+
github.com/richardlehane/mscfb v1.0.4 // indirect
80+
github.com/richardlehane/msoleps v1.0.4 // indirect
7881
github.com/rivo/uniseg v0.4.7 // indirect
7982
github.com/sirupsen/logrus v1.9.3 // indirect
8083
github.com/slongfield/pyfmt v0.0.0-20220222012616-ea85ff4c361f // indirect
8184
github.com/tidwall/gjson v1.18.0 // indirect
8285
github.com/tidwall/match v1.1.1 // indirect
8386
github.com/tidwall/pretty v1.2.0 // indirect
8487
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
88+
github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d // indirect
89+
github.com/xuri/excelize/v2 v2.9.0 // indirect
90+
github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 // indirect
8591
github.com/yargevad/filepathx v1.0.0 // indirect
8692
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
8793
go.opentelemetry.io/otel v1.32.0 // indirect
8894
go.opentelemetry.io/otel/metric v1.32.0 // indirect
8995
go.opentelemetry.io/otel/sdk v1.32.0 // indirect
9096
go.opentelemetry.io/otel/trace v1.32.0 // indirect
9197
golang.org/x/arch v0.15.0 // indirect
98+
golang.org/x/crypto v0.39.0 // indirect
9299
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect
93-
golang.org/x/net v0.40.0 // indirect
100+
golang.org/x/net v0.41.0 // indirect
94101
golang.org/x/sys v0.33.0 // indirect
95-
golang.org/x/text v0.25.0 // indirect
102+
golang.org/x/text v0.26.0 // indirect
96103
gopkg.in/yaml.v3 v3.0.1 // indirect
97104
)

server/go.sum

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@ github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCy
2929
github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
3030
github.com/cloudwego/eino v0.3.31 h1:CByfu37j7YjYp+T/aS2oCffPCOY986F3Jbb6a6BfO4Y=
3131
github.com/cloudwego/eino v0.3.31/go.mod h1:wUjz990apdsaOraOXdh6CdhVXq8DJsOvLsVlxNTcNfY=
32-
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250424061409-ccd60fbc7c1c h1:mMJtZczl2Cs8Cou+xzsrbT+I49seDhigISPeB6cQtX8=
33-
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250424061409-ccd60fbc7c1c/go.mod h1:I4vbBCIMMKeF436Lc+L3DSPQ3f1nmiHD0JS+LhMYCdQ=
32+
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250519091007-282cc7eb18d3 h1:ykb5Nz6WZR6U3CgffUIxdPWi8lLttvhOeA3gYqbXOpY=
33+
github.com/cloudwego/eino-ext/components/document/loader/file v0.0.0-20250519091007-282cc7eb18d3/go.mod h1:I4vbBCIMMKeF436Lc+L3DSPQ3f1nmiHD0JS+LhMYCdQ=
3434
github.com/cloudwego/eino-ext/components/document/loader/url v0.0.0-20250610035057-2c4e7c8488a5 h1:NpYdmDdhadL4rvx13aLIrCa5HtFFz1xgm1/S5lwbX8E=
3535
github.com/cloudwego/eino-ext/components/document/loader/url v0.0.0-20250610035057-2c4e7c8488a5/go.mod h1:qnTfPHmDIMJSF6/tbmcKUmVgEfuBrFoTfVgfFHxNZ84=
3636
github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250424061409-ccd60fbc7c1c h1:0Fn0GR1jM9WO4xaY8cwjj25F+T5tS4Jpo2bO1s9aDf8=
3737
github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250424061409-ccd60fbc7c1c/go.mod h1:w6f/1eEScd32tenRKwcYIJKqZ+3cArFOia1QxFsQmVE=
3838
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250424061409-ccd60fbc7c1c h1:BBdsRDuIf7aSkUSUbrh2ojzIxCBxStPC05ofqjenR2E=
3939
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250424061409-ccd60fbc7c1c/go.mod h1:Vpoaj8exHtu8EbRaAZTFRT7UaKslXd5nx7Z0EEVDIvY=
40+
github.com/cloudwego/eino-ext/components/document/parser/xlsx v0.0.0-20250926124823-eb0cd6b2bbb9 h1:QzOxR+UmvN39+xaik6ao3JoFQvwtphek0iDSlksIJc8=
41+
github.com/cloudwego/eino-ext/components/document/parser/xlsx v0.0.0-20250926124823-eb0cd6b2bbb9/go.mod h1:GeAsXHIfR7bg1THxH4OQNT9bqbBlqv8kUeKbFnOr7cs=
4042
github.com/cloudwego/eino-ext/components/document/transformer/splitter/markdown v0.0.0-20250610035057-2c4e7c8488a5 h1:i1EMukyRVqdEQOnQHNJ2I8H6GMBCGxCHA0GjqNE03Q4=
4143
github.com/cloudwego/eino-ext/components/document/transformer/splitter/markdown v0.0.0-20250610035057-2c4e7c8488a5/go.mod h1:qZxYTU/Snj6bvoyOe4ZKhb1ZgLUiuYcKbClTl15rPRI=
4244
github.com/cloudwego/eino-ext/components/document/transformer/splitter/recursive v0.0.0-20250424061409-ccd60fbc7c1c h1:u6iPDaZkgSrlHm0cDm2zTIEF8ODS/2inRRmfeI2Sebs=
@@ -191,6 +193,11 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
191193
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
192194
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
193195
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
196+
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
197+
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
198+
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
199+
github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00=
200+
github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
194201
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
195202
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
196203
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -234,6 +241,12 @@ github.com/wangle201210/chat-history v0.0.0-20250402104704-5eec15d5419e h1:pdG2L
234241
github.com/wangle201210/chat-history v0.0.0-20250402104704-5eec15d5419e/go.mod h1:MzB/53ZNftLNedu73UwySUHUFFCYZNJ3WmBrukalTrU=
235242
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
236243
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
244+
github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d h1:llb0neMWDQe87IzJLS4Ci7psK/lVsjIS2otl+1WyRyY=
245+
github.com/xuri/efp v0.0.0-20240408161823-9ad904a10d6d/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
246+
github.com/xuri/excelize/v2 v2.9.0 h1:1tgOaEq92IOEumR1/JfYS/eR0KHOCsRv/rYXXh6YJQE=
247+
github.com/xuri/excelize/v2 v2.9.0/go.mod h1:uqey4QBZ9gdMeWApPLdhm9x+9o2lq4iVmjiLfBS5hdE=
248+
github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7 h1:hPVCafDV85blFTabnqKgNhDCkJX25eik94Si9cTER4A=
249+
github.com/xuri/nfp v0.0.0-20240318013403-ab9948c2c4a7/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
237250
github.com/yargevad/filepathx v1.0.0 h1:SYcT+N3tYGi+NvazubCNlvgIPbzAk7i7y2dwg3I5FYc=
238251
github.com/yargevad/filepathx v1.0.0/go.mod h1:BprfX/gpYNJHJfc35GjRRpVcwWXS89gGulUIU5tK3tA=
239252
github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
@@ -254,19 +267,21 @@ golang.org/x/arch v0.15.0/go.mod h1:JmwW7aLIoRUKgaTzhkiEFxvcEiQGyOg9BMonBJUS7EE=
254267
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
255268
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
256269
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
257-
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
258-
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
270+
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
271+
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
259272
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw=
260273
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM=
274+
golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
275+
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
261276
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
262277
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
263278
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
264279
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
265280
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
266281
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
267282
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
268-
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
269-
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
283+
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
284+
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
270285
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
271286
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
272287
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -294,8 +309,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
294309
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
295310
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
296311
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
297-
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
298-
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
312+
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
313+
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
299314
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
300315
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
301316
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=

0 commit comments

Comments
 (0)