From d8fb4ad79d05a7fdae294b70ac2432d4ccb30c7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 08:10:30 +0800 Subject: [PATCH 001/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.8 (#327) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index fbdbd9d75..ed4862f1b 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/htest v0.0.3 github.com/trim21/pkg v0.0.3 github.com/vektra/mockery/v2 v2.23.2 - go.etcd.io/etcd/client/v3 v3.5.7 + go.etcd.io/etcd/client/v3 v3.5.8 go.uber.org/fx v1.19.2 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.8.0 @@ -103,8 +103,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.7 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.7 // indirect + go.etcd.io/etcd/api/v3 v3.5.8 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.8 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.16.1 // indirect go.uber.org/multierr v1.8.0 // indirect diff --git a/go.sum b/go.sum index e983f69c9..5a87e5fd0 100644 --- a/go.sum +++ b/go.sum @@ -661,12 +661,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.7 h1:sbcmosSVesNrWOJ58ZQFitHMdncusIifYcrBfwrlJSY= -go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA= -go.etcd.io/etcd/client/pkg/v3 v3.5.7 h1:y3kf5Gbp4e4q7egZdn5T7W9TSHUvkClN6u+Rq9mEOmg= -go.etcd.io/etcd/client/pkg/v3 v3.5.7/go.mod h1:o0Abi1MK86iad3YrWhgUsbGx1pmTS+hrORWc2CamuhY= -go.etcd.io/etcd/client/v3 v3.5.7 h1:u/OhpiuCgYY8awOHlhIhmGIGpxfBU/GZBUP3m/3/Iz4= -go.etcd.io/etcd/client/v3 v3.5.7/go.mod h1:sOWmj9DZUMyAngS7QQwCyAXXAL6WhgTOPLNS/NabQgw= +go.etcd.io/etcd/api/v3 v3.5.8 h1:Zf44zJszoU7zRV0X/nStPenegNXoFDWcB/MwrJbA+L4= +go.etcd.io/etcd/api/v3 v3.5.8/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k= +go.etcd.io/etcd/client/pkg/v3 v3.5.8 h1:tPp9YRn/UBFAHdhOQUII9eUs7aOK35eulpMhX4YBd+M= +go.etcd.io/etcd/client/pkg/v3 v3.5.8/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4= +go.etcd.io/etcd/client/v3 v3.5.8 h1:B6ngTKZSWWowHEoaucOKHQR/AtZKaoHLiUpWxOLG4l4= +go.etcd.io/etcd/client/v3 v3.5.8/go.mod h1:idZYIPVkttBJBiRigkB5EM0MmEyx8jcl18zCV3F5noc= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= From a0fd0b2acbd728ce253a7b40e5f5c3e8e5ab63b2 Mon Sep 17 00:00:00 2001 From: Hugh Liu Date: Mon, 24 Apr 2023 14:15:52 +1000 Subject: [PATCH 002/888] feat(collection): Add POST method to create a subject collection (#325) --- ctrl/update_subject_collection.go | 8 +- internal/collections/domain.go | 6 + .../collections/domain/collection/subject.go | 7 + internal/collections/infra/mysql_repo.go | 131 ++++++++-- internal/collections/infra/mysql_repo_test.go | 246 ++++++++++++++++-- internal/mocks/CollectionRepo.go | 47 ++++ internal/mocks/IndexRepo.go | 2 +- internal/mocks/SearchClient.go | 2 +- .../subject_collection_modify_payload.yaml | 44 ++++ openapi/v0.yaml | 89 ++++--- web/handler/user/patch_subject_collection.go | 37 ++- .../user/patch_subject_collection_test.go | 67 +++++ web/handler/user/post_subject_collection.go | 47 ++++ .../user/post_subject_collection_test.go | 243 +++++++++++++++++ web/routes.go | 1 + 15 files changed, 862 insertions(+), 115 deletions(-) create mode 100644 openapi/components/subject_collection_modify_payload.yaml create mode 100644 web/handler/user/post_subject_collection.go create mode 100644 web/handler/user/post_subject_collection_test.go diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index 28b5e7cc9..94ce608b8 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -48,9 +48,14 @@ func (ctl Ctrl) UpdateSubjectCollection( u auth.Auth, subjectID model.SubjectID, req UpdateCollectionRequest, + allowCreate bool, ) error { ctl.log.Info("try to update collection", zap.Uint32("subject_id", subjectID), log.User(u.ID)) - err := ctl.collection.UpdateSubjectCollection(ctx, u.ID, subjectID, time.Now(), req.IP, + met := ctl.collection.UpdateSubjectCollection + if allowCreate { + met = ctl.collection.UpdateOrCreateSubjectCollection + } + err := met(ctx, u.ID, subjectID, time.Now(), req.IP, func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { if req.Comment.Set { s.ShadowBan(ctl.dam.NeedReview(req.Comment.Value)) @@ -91,7 +96,6 @@ func (ctl Ctrl) UpdateSubjectCollection( return nil, e } } - return s, nil }, ) diff --git a/internal/collections/domain.go b/internal/collections/domain.go index 98d5c815a..ad13be9d1 100644 --- a/internal/collections/domain.go +++ b/internal/collections/domain.go @@ -58,6 +58,12 @@ type Repo interface { update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), ) error + UpdateOrCreateSubjectCollection( + ctx context.Context, userID model.UserID, subjectID model.SubjectID, + at time.Time, ip string, + update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), + ) error + UpdateEpisodeCollection( ctx context.Context, userID model.UserID, subjectID model.SubjectID, diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 120ed75b6..8317e5f31 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -67,6 +67,13 @@ func NewSubjectCollection( }, nil } +func NewEmptySubjectCollection(subject model.SubjectID, user model.UserID) *Subject { + return &Subject{ + subject: subject, + user: user, + } +} + type Subject struct { subject model.SubjectID user model.UserID diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index cbe334c75..97a1e718b 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -57,13 +57,17 @@ type mysqlRepo struct { func (r mysqlRepo) getSubjectCollection( ctx context.Context, user model.UserID, subject model.SubjectID, -) (*collection.Subject, error) { +) (*dao.SubjectCollection, error) { s, err := r.q.SubjectCollection.WithContext(ctx). Where(r.q.SubjectCollection.UserID.Eq(user), r.q.SubjectCollection.SubjectID.Eq(subject)).Take() if err != nil { return nil, gerr.WrapGormError(err) } + return s, nil +} + +func (r mysqlRepo) convertToSubjectCollection(s *dao.SubjectCollection) (*collection.Subject, error) { return collection.NewSubjectCollection( s.SubjectID, s.UserID, @@ -92,33 +96,67 @@ func (r mysqlRepo) UpdateSubjectCollection( } return err } - original := *s - s, err = update(ctx, s) + return r.updateOrCreateSubjectCollection(ctx, userID, subjectID, at, ip, update, s) +} + +func (r mysqlRepo) UpdateOrCreateSubjectCollection( + ctx context.Context, + userID model.UserID, + subjectID model.SubjectID, + at time.Time, + ip string, + update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), +) error { + s, err := r.getSubjectCollection(ctx, userID, subjectID) + if err != nil { + if !errors.Is(err, gerr.ErrNotFound) { + return err + } + s = nil + } + return r.updateOrCreateSubjectCollection(ctx, userID, subjectID, at, ip, update, s) +} + +func (r mysqlRepo) updateOrCreateSubjectCollection( + ctx context.Context, + userID model.UserID, + subjectID model.SubjectID, + at time.Time, + ip string, + update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), + obj *dao.SubjectCollection, +) error { + created := obj == nil + if created { + obj = &dao.SubjectCollection{ + SubjectID: subjectID, + UserID: userID, + } + } + collectionSubject, err := r.convertToSubjectCollection(obj) if err != nil { return errgo.Trace(err) } - t := r.q.SubjectCollection - var updater = []field.AssignExpr{ - t.UpdatedTime.Value(uint32(at.Unix())), t.Comment.Value(utiltype.HTMLEscapedString(s.Comment())), - t.HasComment.Value(s.Comment() != ""), t.Tag.Value(strings.Join(s.Tags(), " ")), - t.EpStatus.Value(s.Eps()), t.VolStatus.Value(s.Vols()), t.Rate.Value(s.Rate()), - t.Private.Value(uint8(s.Privacy())), t.Type.Value(uint8(s.TypeID())), + original := *collectionSubject + + // Update subject collection + s, err := update(ctx, collectionSubject) + if err != nil { + return errgo.Trace(err) } - if s.TypeID() != original.TypeID() { - u, e := r.subjectCollectionUpdater(s.TypeID(), at) - if e != nil { - return errgo.Trace(e) - } - updater = append(updater, u) + if err = r.updateSubjectCollection(obj, &original, s, at, ip, created); err != nil { + return errgo.Trace(err) } - if ip != "" { - updater = append(updater, t.LastUpdateIP.Value(ip)) + T := r.q.SubjectCollection + if created { + err = T.WithContext(ctx).Create(obj) + } else { + err = T.WithContext(ctx).Save(obj) } - _, err = t.WithContext(ctx).Where(t.SubjectID.Eq(subjectID), t.UserID.Eq(userID)).UpdateSimple(updater...) if err != nil { return errgo.Trace(err) } @@ -127,6 +165,43 @@ func (r mysqlRepo) UpdateSubjectCollection( return nil } +// 根据新旧 collection.Subject 状态 +// 更新 dao.SubjectCollection. +func (r mysqlRepo) updateSubjectCollection( + obj *dao.SubjectCollection, + original *collection.Subject, + s *collection.Subject, + at time.Time, + ip string, + isNew bool, +) error { + obj.UpdatedTime = uint32(at.Unix()) + obj.Comment = utiltype.HTMLEscapedString(s.Comment()) + obj.HasComment = s.Comment() != "" + obj.Tag = strings.Join(s.Tags(), " ") + obj.EpStatus = s.Eps() + obj.VolStatus = s.Vols() + obj.Rate = s.Rate() + obj.Private = uint8(s.Privacy()) + obj.Type = uint8(s.TypeID()) + + if s.TypeID() != original.TypeID() { + err := r.updateCollectionTime(obj, s.TypeID(), at) + if err != nil { + return errgo.Trace(err) + } + } + + // Update IP + if ip != "" { + obj.LastUpdateIP = ip + if isNew { + obj.CreateIP = ip + } + } + return nil +} + func (r mysqlRepo) WithQuery(query *query.Query) collections.Repo { return mysqlRepo{q: query, log: r.log} } @@ -363,23 +438,25 @@ func (r mysqlRepo) updateSubjectTags(ctx context.Context, subjectID model.Subjec return errgo.Wrap(err, "failed to update subject field") } -func (r mysqlRepo) subjectCollectionUpdater(t collection.SubjectCollection, at time.Time) (field.AssignExpr, error) { +func (r mysqlRepo) updateCollectionTime(obj *dao.SubjectCollection, + t collection.SubjectCollection, at time.Time) error { switch t { case collection.SubjectCollectionAll: - return nil, errgo.Wrap(gerr.ErrInput, "can't set collection type to SubjectCollectionAll") + return errgo.Wrap(gerr.ErrInput, "can't set collection type to SubjectCollectionAll") case collection.SubjectCollectionWish: - return r.q.SubjectCollection.WishTime.Value(uint32(at.Unix())), nil + obj.WishTime = uint32(at.Unix()) case collection.SubjectCollectionDone: - return r.q.SubjectCollection.DoneTime.Value(uint32(at.Unix())), nil + obj.DoneTime = uint32(at.Unix()) case collection.SubjectCollectionDoing: - return r.q.SubjectCollection.DoingTime.Value(uint32(at.Unix())), nil + obj.DoingTime = uint32(at.Unix()) case collection.SubjectCollectionDropped: - return r.q.SubjectCollection.DroppedTime.Value(uint32(at.Unix())), nil + obj.DroppedTime = uint32(at.Unix()) case collection.SubjectCollectionOnHold: - return r.q.SubjectCollection.OnHoldTime.Value(uint32(at.Unix())), nil + obj.OnHoldTime = uint32(at.Unix()) + default: + return errgo.Wrap(gerr.ErrInput, fmt.Sprintln("invalid subject collection type", t)) } - - return nil, errgo.Wrap(gerr.ErrInput, fmt.Sprintln("invalid subject collection type", t)) + return nil } func (r mysqlRepo) UpdateEpisodeCollection( diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index c52e97f65..854c716b4 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -46,8 +46,8 @@ func TestMysqlRepo_GetCollection(t *testing.T) { t.Parallel() test.RequireEnv(t, test.EnvMysql) - const id model.UserID = 382951 - const subjectID model.SubjectID = 888998 + const id model.UserID = 30000 + const subjectID model.SubjectID = 10000 repo, q := getRepo(t) @@ -74,22 +74,27 @@ func TestMysqlRepo_CountSubjectCollections(t *testing.T) { t.Parallel() test.RequireEnv(t, test.EnvMysql) - const id model.UserID = 382952 + const id model.UserID = 31000 // parallel problem repo, q := getRepo(t) test.RunAndCleanup(t, func() { - _, err := q.SubjectCollection.WithContext(context.Background()).Where(q.SubjectCollection.UserID.Eq(id)).Delete() + _, err := q.SubjectCollection. + WithContext(context.Background()). + Where(q.SubjectCollection.UserID.Eq(id)). + Delete() require.NoError(t, err) }) for i := 0; i < 5; i++ { - err := q.SubjectCollection.WithContext(context.Background()).Create(&dao.SubjectCollection{ - UserID: id, - SubjectID: model.SubjectID(i + 100), - SubjectType: model.SubjectTypeAnime, - UpdatedTime: uint32(time.Now().Unix()), - }) + err := q.SubjectCollection. + WithContext(context.Background()). + Create(&dao.SubjectCollection{ + UserID: id, + SubjectID: model.SubjectID(i + 100), + SubjectType: model.SubjectTypeAnime, + UpdatedTime: uint32(time.Now().Unix()), + }) require.NoError(t, err) } @@ -103,26 +108,82 @@ func TestMysqlRepo_ListSubjectCollection(t *testing.T) { t.Parallel() test.RequireEnv(t, test.EnvMysql) - const id model.UserID = 382951 + const uid model.UserID = 32000 - repo, _ := getRepo(t) + repo, q := getRepo(t) - data, err := repo.ListSubjectCollection(context.Background(), id, - model.SubjectTypeGame, collection.SubjectCollectionAll, true, 5, 0) + var err error + test.RunAndCleanup(t, func() { + _, err = q.SubjectCollection. + WithContext(context.Background()). + Where(q.SubjectCollection.UserID.Eq(uid)). + Delete() + require.NoError(t, err) + }) + + data, err := repo.ListSubjectCollection(context.Background(), uid, + model.SubjectTypeAll, collection.SubjectCollectionAll, true, 5, 0) require.NoError(t, err) - require.Len(t, data, 5) + require.Len(t, data, 0) + + for i := 0; i < 5; i++ { + err = q.SubjectCollection. + WithContext(context.Background()). + Create(&dao.SubjectCollection{ + UserID: uid, + SubjectID: model.SubjectID(100 + i), + SubjectType: model.SubjectTypeAnime, + UpdatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + } + + for i := 0; i < 2; i++ { + err = q.SubjectCollection. + WithContext(context.Background()). + Create(&dao.SubjectCollection{ + UserID: uid, + SubjectID: model.SubjectID(200 + i), + SubjectType: model.SubjectTypeGame, + UpdatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + } + + getList := func(subjectType model.SubjectType) []collection.UserSubjectCollection { + data, err = repo.ListSubjectCollection(context.Background(), uid, + subjectType, collection.SubjectCollectionAll, true, 10, 0) + require.NoError(t, err) + return data + } + require.Len(t, getList(model.SubjectTypeAll), 7) + require.Len(t, getList(model.SubjectTypeGame), 2) + require.Len(t, getList(model.SubjectTypeAnime), 5) + require.Len(t, getList(model.SubjectTypeBook), 0) } func TestMysqlRepo_GetEpisodeCollection(t *testing.T) { t.Parallel() test.RequireEnv(t, test.EnvMysql) - const userID model.UserID = 382951 - const subjectID model.SubjectID = 372487 + const uid model.UserID = 33000 + const sid model.SubjectID = 11000 + + repo, q := getRepo(t) + table := q.SubjectCollection + + test.RunAndCleanup(t, func() { + _, err := table.WithContext(context.TODO()).Where(field.Or(table.SubjectID.Eq(sid), table.UserID.Eq(uid))).Delete() + require.NoError(t, err) + }) + + now := time.Now() - repo, _ := getRepo(t) + _, err := repo.UpdateEpisodeCollection(context.Background(), + uid, sid, []model.EpisodeID{1, 2}, collection.EpisodeCollectionDone, now) + require.NoError(t, err) - ep, err := repo.GetSubjectEpisodesCollection(context.Background(), userID, subjectID) + ep, err := repo.GetSubjectEpisodesCollection(context.Background(), uid, sid) require.NoError(t, err) require.NotZero(t, len(ep)) @@ -134,12 +195,89 @@ func TestMysqlRepo_GetEpisodeCollection(t *testing.T) { } } +func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + const uid model.UserID = 34000 + const sid model.SubjectID = 12000 + + repo, q := getRepo(t) + table := q.SubjectCollection + + test.RunAndCleanup(t, func() { + _, err := table.WithContext(context.TODO()).Where(field.Or(table.SubjectID.Eq(sid), table.UserID.Eq(uid))).Delete() + require.NoError(t, err) + }) + + err := table.WithContext(context.Background()).Create( + &dao.SubjectCollection{ + UserID: uid, SubjectID: sid + 1, Rate: 8, Type: uint8(collection.SubjectCollectionDoing), + }, + &dao.SubjectCollection{ + UserID: uid + 1, SubjectID: sid, Rate: 8, Type: uint8(collection.SubjectCollectionDoing), + }, + ) + require.NoError(t, err) + + now := time.Now() + + // DB 里没有数据 + _, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.Error(t, err) + + // 创建 + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + return s, nil + }) + require.NoError(t, err) + + // DB 里有数据 + _, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + + // 更新 + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + require.NoError(t, s.UpdateComment("c")) + require.NoError(t, s.UpdateRate(1)) + s.UpdateType(collection.SubjectCollectionDropped) + return s, nil + }) + require.NoError(t, err) + + r, err := table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + + require.EqualValues(t, now.Unix(), r.UpdatedTime) + require.True(t, r.HasComment) + require.Equal(t, "c", string(r.Comment)) + require.Equal(t, uint8(1), r.Rate) + require.EqualValues(t, now.Unix(), r.DroppedTime) + require.Zero(t, r.WishTime) + require.Zero(t, r.DoingTime) + require.Zero(t, r.DoneTime) + require.Zero(t, r.OnHoldTime) + + // 确认不会影响到其他用户或 subject + r, err = table.WithContext(context.Background()).Where(table.SubjectID.Eq(sid+1), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + + require.EqualValues(t, 8, r.Rate) + + r, err = table.WithContext(context.Background()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid+1)).Take() + require.NoError(t, err) + + require.EqualValues(t, 8, r.Rate) +} + func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() - const uid model.UserID = 40000 - const sid model.SubjectID = 1000 + const uid model.UserID = 35000 + const sid model.SubjectID = 13000 repo, q := getRepo(t) table := q.SubjectCollection @@ -197,12 +335,70 @@ func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { require.EqualValues(t, 8, r.Rate) } +func TestMysqlRepo_UpdateSubjectCollectionType(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + const uid model.UserID = 36000 + const sid model.SubjectID = 14000 + + repo, q := getRepo(t) + table := q.SubjectCollection + + test.RunAndCleanup(t, func() { + _, err := table.WithContext(context.TODO()).Where(field.Or(table.SubjectID.Eq(sid), table.UserID.Eq(uid))).Delete() + require.NoError(t, err) + }) + + err := table.WithContext(context.Background()).Create( + &dao.SubjectCollection{ + UserID: uid, SubjectID: sid, Rate: 8, Type: uint8(collection.SubjectCollectionDoing), + }, + ) + require.NoError(t, err) + + now := time.Now() + + err = repo.UpdateSubjectCollection(context.Background(), uid, sid, now, "", + func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + s.UpdateType(collection.SubjectCollectionDropped) + return s, nil + }) + require.NoError(t, err) + + r, err := table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + + require.EqualValues(t, uint32(now.Unix()), r.DroppedTime) + require.Zero(t, r.WishTime) + require.Zero(t, r.DoingTime) + require.Zero(t, r.DoneTime) + require.Zero(t, r.OnHoldTime) + + t2 := now.Add(time.Duration(10) * time.Second) + + err = repo.UpdateSubjectCollection(context.Background(), uid, sid, t2, "", + func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + s.UpdateType(collection.SubjectCollectionDoing) + return s, nil + }) + require.NoError(t, err) + + r, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + + require.EqualValues(t, uint32(now.Unix()), r.DroppedTime) + require.EqualValues(t, uint32(t2.Unix()), r.DoingTime) + require.Zero(t, r.WishTime) + require.Zero(t, r.DoneTime) + require.Zero(t, r.OnHoldTime) +} func TestMysqlRepo_UpdateEpisodeCollection(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() - const uid model.UserID = 40010 - const sid model.SubjectID = 1010 + const uid model.UserID = 37000 + const sid model.SubjectID = 15000 repo, q := getRepo(t) table := q.EpCollection @@ -260,8 +456,8 @@ func TestMysqlRepo_UpdateEpisodeCollection_create_ep_status(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() - const uid model.UserID = 40010 - const sid model.SubjectID = 1011 + const uid model.UserID = 38000 + const sid model.SubjectID = 16000 repo, q := getRepo(t) table := q.EpCollection diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index 50862d713..a2eb17bdd 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -313,6 +313,53 @@ func (_c *CollectionRepo_UpdateEpisodeCollection_Call) RunAndReturn(run func(con return _c } +// UpdateOrCreateSubjectCollection provides a mock function with given fields: ctx, userID, subjectID, at, ip, update +func (_m *CollectionRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { + ret := _m.Called(ctx, userID, subjectID, at, ip, update) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { + r0 = rf(ctx, userID, subjectID, at, ip, update) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// CollectionRepo_UpdateOrCreateSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateOrCreateSubjectCollection' +type CollectionRepo_UpdateOrCreateSubjectCollection_Call struct { + *mock.Call +} + +// UpdateOrCreateSubjectCollection is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - subjectID uint32 +// - at time.Time +// - ip string +// - update func(context.Context , *collection.Subject)(*collection.Subject , error) +func (_e *CollectionRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { + return &CollectionRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subjectID, at, ip, update)} +} + +func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(uint32), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) + }) + return _c +} + +func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Return(_a0 error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Return(run) + return _c +} + // UpdateSubjectCollection provides a mock function with given fields: ctx, userID, subjectID, at, ip, update func (_m *CollectionRepo) UpdateSubjectCollection(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { ret := _m.Called(ctx, userID, subjectID, at, ip, update) diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index 8090e01da..52136b5ee 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.20.0. DO NOT EDIT. package mocks diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index bc7466ddc..ad309ba4d 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.20.0. DO NOT EDIT. package mocks diff --git a/openapi/components/subject_collection_modify_payload.yaml b/openapi/components/subject_collection_modify_payload.yaml new file mode 100644 index 000000000..03f4e271c --- /dev/null +++ b/openapi/components/subject_collection_modify_payload.yaml @@ -0,0 +1,44 @@ +title: UserSubjectCollectionModifyPayload +type: object +description: 所有的字段均可选 +properties: + type: + description: 修改条目收藏类型 + allOf: + - $ref: "./subject_collection_type.yaml" + + rate: + description: 评分,`0` 表示删除评分 + type: integer + maximum: 10 + minimum: 0 + exclusiveMaximum: false + exclusiveMinimum: false + + ep_status: + description: "只能用于修改书籍条目进度" + type: integer + minimum: 0 + exclusiveMinimum: false + + vol_status: + description: "只能用于修改书籍条目进度" + type: integer + minimum: 0 + exclusiveMinimum: false + + comment: + description: "评价" + type: string + + private: + description: "仅自己可见" + type: boolean + + tags: + title: 标签 + description: 不传或者 `null` 都会被忽略,传 `[]` 则会删除所有 tag。 + type: array + items: + type: string + description: 不能包含空格 diff --git a/openapi/v0.yaml b/openapi/v0.yaml index d47a018fd..bdf32f6e7 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -875,6 +875,47 @@ paths: security: - OptionalHTTPBearer: [] "/v0/users/-/collections/{subject_id}": + post: + tags: + - 收藏 + summary: 新增或修改用户单个收藏 + description: | + 修改条目收藏状态, 如果不存在则创建,如果存在则修改 + + 由于直接修改剧集条目的完成度可能会引起意料之外效果,只能用于修改书籍类条目的完成度。 + + 方法的所有请求体字段均可选 + operationId: postUserCollection + parameters: + - $ref: "#/components/parameters/path_subject_id" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/UserSubjectCollectionModifyPayload" + responses: + "204": + description: Successful Response + "400": + description: Validation Error + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "401": + description: Unauthorized + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 用户不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - OptionalHTTPBearer: [] patch: tags: - 收藏 @@ -892,51 +933,7 @@ paths: content: application/json: schema: - # SubjectEpisodeCollectionPatch - type: object - description: 所有的字段均可选 - properties: - type: - description: 修改条目收藏类型 - allOf: - - $ref: "#/components/schemas/SubjectCollectionType" - - rate: - description: 评分,`0` 表示删除评分 - type: integer - maximum: 10 - minimum: 0 - exclusiveMaximum: false - exclusiveMinimum: false - - ep_status: - description: "只能用于修改书籍条目进度" - type: integer - minimum: 0 - exclusiveMinimum: false - - vol_status: - description: "只能用于修改书籍条目进度" - type: integer - minimum: 0 - exclusiveMinimum: false - - comment: - description: "评价" - type: string - - private: - description: "仅自己可见" - type: boolean - - tags: - title: 标签 - description: 不传或者 `null` 都会被忽略,传 `[]` 则会删除所有 tag。 - type: array - items: - type: string - description: 不能包含空格 - + "$ref": "#/components/schemas/UserSubjectCollectionModifyPayload" responses: "204": description: Successful Response @@ -2663,6 +2660,8 @@ components: $ref: "./components/subject_type.yaml" UserSubjectCollection: $ref: "./components/subject_collection.yaml" + UserSubjectCollectionModifyPayload: + $ref: "./components/subject_collection_modify_payload.yaml" UserEpisodeCollection: $ref: "./components/get-user-episodes-collection.yaml" v0_RelatedSubject: diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index b47e4bd59..6a532c8f0 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -46,13 +46,33 @@ func (h User) PatchSubjectCollection(c echo.Context) error { return err } - return h.patchSubjectCollection(c, subjectID, r) + return h.patchSubjectCollection(c, subjectID, r, false) } func (h User) patchSubjectCollection( c echo.Context, subjectID model.SubjectID, r req.SubjectEpisodeCollectionPatch, + allowCreate bool, // 如果不存在 record 是否允许创建 +) error { + if err := h.updateOrCreateSubjectCollection(c, subjectID, r, allowCreate); err != nil { + switch { + case errors.Is(err, gerr.ErrSubjectNotCollected): + return res.NotFound("subject not collected") + case errors.Is(err, gerr.ErrSubjectNotFound): + return res.NotFound("subject not found") + } + return errgo.Wrap(err, "ctrl.UpdateSubjectCollection") + } + + return c.NoContent(http.StatusNoContent) +} + +func (h User) updateOrCreateSubjectCollection( + c echo.Context, + subjectID model.SubjectID, + r req.SubjectEpisodeCollectionPatch, + allowCreate bool, // 如果不存在 record 是否允许创建 ) error { u := accessor.GetFromCtx(c) @@ -70,7 +90,7 @@ func (h User) patchSubjectCollection( } } - err = h.ctrl.UpdateSubjectCollection(c.Request().Context(), u.Auth, subjectID, ctrl.UpdateCollectionRequest{ + return h.ctrl.UpdateSubjectCollection(c.Request().Context(), u.Auth, subjectID, ctrl.UpdateCollectionRequest{ IP: u.IP, UID: u.ID, VolStatus: r.VolStatus, @@ -80,16 +100,5 @@ func (h User) patchSubjectCollection( Comment: r.Comment, Rate: r.Rate, Private: r.Private, - }) - if err != nil { - switch { - case errors.Is(err, gerr.ErrSubjectNotCollected): - return res.NotFound("subject not collected") - case errors.Is(err, gerr.ErrSubjectNotFound): - return res.NotFound("subject not found") - } - return errgo.Wrap(err, "ctrl.UpdateSubjectCollection") - } - - return c.NoContent(http.StatusNoContent) + }, allowCreate) } diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 1a382266f..588ea5d6e 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -29,6 +29,7 @@ import ( "github.com/trim21/htest" "github.com/bangumi/server/config" + "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/auth" "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/mocks" @@ -85,6 +86,72 @@ func TestUser_PatchSubjectCollection(t *testing.T) { require.EqualValues(t, 8, s.Rate()) } +func TestUser_PatchToNonExistsSubjectCollection(t *testing.T) { + t.Parallel() + const sid model.SubjectID = 8 + const uid model.UserID = 1 + + a := mocks.NewAuthService(t) + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) + + tl := mocks.NewTimeLineService(t) + + c := mocks.NewCollectionRepo(t) + c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + Return(gerr.ErrSubjectNotCollected) + + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) + require.NoError(t, err) + + app := test.GetWebApp(t, test.Mock{CollectionRepo: c, AuthService: a, Dam: &d, TimeLineSrv: tl}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "comment": "1 test_content 2", + "type": 1, + "private": true, + "rate": 8, + "tags": []string{"q", "vv"}, + }). + Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusNotFound) +} + +func TestUser_PatchSubjectCollection_badID(t *testing.T) { + t.Parallel() + + a := mocks.NewAuthService(t) + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) + + tl := mocks.NewTimeLineService(t) + c := mocks.NewCollectionRepo(t) + + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) + require.NoError(t, err) + + app := test.GetWebApp(t, test.Mock{CollectionRepo: c, AuthService: a, Dam: &d, TimeLineSrv: tl}) + + badURLs := []string{ + "/v0/users/-/collections/abc", + "/v0/users/-/collections/123_", + "/v0/users/-/collections/s123", + "/v0/users/-/collections/_123", + "/v0/users/-/collections/_abc", + "/v0/users/-/collections/_", + } + + for _, url := range badURLs { + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "comment": "1 test_content 2", + }). + Patch(url). + ExpectCode(http.StatusBadRequest) + } +} + func TestUser_PatchSubjectCollection_bad(t *testing.T) { t.Parallel() const uid model.UserID = 1 diff --git a/web/handler/user/post_subject_collection.go b/web/handler/user/post_subject_collection.go new file mode 100644 index 000000000..bfee0f485 --- /dev/null +++ b/web/handler/user/post_subject_collection.go @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user + +import ( + "net/http" + + "github.com/labstack/echo/v4" + + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h User) PostSubjectCollection(c echo.Context) error { + subjectID, err := req.ParseID(c.Param("subject_id")) + if err != nil { + return err + } + + var r req.SubjectEpisodeCollectionPatch + if err = c.Echo().JSONSerializer.Deserialize(c, &r); err != nil { + return res.JSONError(c, err) + } + + if err = r.Validate(); err != nil { + return err + } + + // 与 PatchSubjectCollection 一致 + // 但允许创建,如果不存在 + if err := h.updateOrCreateSubjectCollection(c, subjectID, r, true); err != nil { + return err + } + return c.NoContent(http.StatusAccepted) +} diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go new file mode 100644 index 000000000..86ddb8eb3 --- /dev/null +++ b/web/handler/user/post_subject_collection_test.go @@ -0,0 +1,243 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user_test + +import ( + "context" + "fmt" + "net/http" + "strings" + "testing" + "time" + + "github.com/labstack/echo/v4" + "github.com/samber/lo" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + "github.com/trim21/htest" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/internal/auth" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/mocks" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/dam" + "github.com/bangumi/server/internal/pkg/test" +) + +func TestUser_PostSubjectCollection(t *testing.T) { + t.Parallel() + const sid model.SubjectID = 8 + const uid model.UserID = 1 + + var s = &collection.Subject{} + + a := mocks.NewAuthService(t) + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) + + tl := mocks.NewTimeLineService(t) + tl.EXPECT(). + ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + Return(nil) + + c := mocks.NewCollectionRepo(t) + c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + Run(func(ctx context.Context, userID uint32, + subjectID uint32, at time.Time, ip string, + update func(context.Context, *collection.Subject) (*collection.Subject, error)) { + require.Equal(t, "0.0.0.0", ip) + s = lo.Must(update(context.Background(), s)) + }). + Return(nil) + + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) + require.NoError(t, err) + + app := test.GetWebApp(t, test.Mock{CollectionRepo: c, AuthService: a, Dam: &d, TimeLineSrv: tl}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "comment": "1 test_content 2", + "type": 1, + "private": true, + "rate": 8, + "tags": []string{"q", "vv"}, + }). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusAccepted) + + require.Equal(t, collection.CollectPrivacySelf, s.Privacy()) + require.Equal(t, "1 test_content 2", s.Comment()) + require.EqualValues(t, []string{"q", "vv"}, s.Tags()) + require.EqualValues(t, 8, s.Rate()) +} + +func TestUser_PostSubjectCollectionPartialData(t *testing.T) { + t.Parallel() + const sid model.SubjectID = 8 + const uid model.UserID = 1 + + var s = &collection.Subject{} + + a := mocks.NewAuthService(t) + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) + + tl := mocks.NewTimeLineService(t) + tl.EXPECT(). + ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + Return(nil) + + c := mocks.NewCollectionRepo(t) + c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + Run(func(ctx context.Context, userID uint32, + subjectID uint32, at time.Time, ip string, + update func(context.Context, *collection.Subject) (*collection.Subject, error)) { + require.Equal(t, "0.0.0.0", ip) + s = lo.Must(update(context.Background(), s)) + }). + Return(nil) + + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) + require.NoError(t, err) + + app := test.GetWebApp(t, test.Mock{CollectionRepo: c, AuthService: a, Dam: &d, TimeLineSrv: tl}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "type": 3, + "comment": "1 test_content 2", + }). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusAccepted) + + require.Equal(t, "1 test_content 2", s.Comment()) + require.EqualValues(t, []string(nil), s.Tags()) + require.Equal(t, collection.SubjectCollectionDoing, s.TypeID()) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "type": 2, + }). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusAccepted) + + require.Equal(t, collection.SubjectCollectionDone, s.TypeID()) + require.Equal(t, "1 test_content 2", s.Comment()) + require.EqualValues(t, []string(nil), s.Tags()) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "tags": []string{"q", "vv"}, + }). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusAccepted) + + require.EqualValues(t, []string{"q", "vv"}, s.Tags()) +} + +func TestUser_PostSubjectCollection_badID(t *testing.T) { + t.Parallel() + + a := mocks.NewAuthService(t) + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) + + tl := mocks.NewTimeLineService(t) + c := mocks.NewCollectionRepo(t) + + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) + require.NoError(t, err) + + app := test.GetWebApp(t, test.Mock{CollectionRepo: c, AuthService: a, Dam: &d, TimeLineSrv: tl}) + + badURLs := []string{ + "/v0/users/-/collections/abc", + "/v0/users/-/collections/123_", + "/v0/users/-/collections/s123", + "/v0/users/-/collections/_123", + "/v0/users/-/collections/_abc", + "/v0/users/-/collections/_", + } + + for _, url := range badURLs { + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(map[string]any{ + "comment": "1 test_content 2", + }). + Post(url). + ExpectCode(http.StatusBadRequest) + } +} + +func TestUser_PostSubjectCollection_bad(t *testing.T) { + t.Parallel() + const uid model.UserID = 1 + const sid model.SubjectID = 8 + + a := &mocks.AuthService{} + a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) + + t.Run("bad rate", func(t *testing.T) { + t.Parallel() + + app := test.GetWebApp(t, test.Mock{AuthService: a}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(echo.Map{"rate": 11}). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusBadRequest) + }) + + t.Run("bad type", func(t *testing.T) { + t.Parallel() + + app := test.GetWebApp(t, test.Mock{AuthService: a}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(echo.Map{"type": 0}). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusBadRequest) + }) + + t.Run("bad type", func(t *testing.T) { + t.Parallel() + + app := test.GetWebApp(t, test.Mock{AuthService: a}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(echo.Map{"tags": "vv qq"}). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusBadRequest) + }) + + t.Run("too long comment", func(t *testing.T) { + t.Parallel() + + app := test.GetWebApp(t, test.Mock{AuthService: a}) + + htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer t"). + BodyJSON(echo.Map{"comment": strings.Repeat("vv qq", 200)}). + Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). + ExpectCode(http.StatusBadRequest) + }) +} diff --git a/web/routes.go b/web/routes.go index cc81cacc3..dc071617c 100644 --- a/web/routes.go +++ b/web/routes.go @@ -82,6 +82,7 @@ func AddRouters( v0.PUT("/users/-/collections/-/episodes/:episode_id", userHandler.PutEpisodeCollection, req.JSON, mw.NeedLogin) v0.GET("/users/-/collections/:subject_id/episodes", userHandler.GetSubjectEpisodeCollection, mw.NeedLogin) v0.PATCH("/users/-/collections/:subject_id", userHandler.PatchSubjectCollection, req.JSON, mw.NeedLogin) + v0.POST("/users/-/collections/:subject_id", userHandler.PostSubjectCollection, req.JSON, mw.NeedLogin) v0.PATCH("/users/-/collections/:subject_id/episodes", userHandler.PatchEpisodeCollectionBatch, req.JSON, mw.NeedLogin) From fbd1a4ac6945812dec56ecd6c9ea885765734d03 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 26 Apr 2023 14:00:20 +0800 Subject: [PATCH 003/888] build: replace minio go sdk with aws sdk --- .golangci.yaml | 1 + canal/event.go | 6 +++--- canal/on_user.go | 35 +++++++++++++++++++++++++---------- go.mod | 13 ++----------- go.sum | 38 ++++++++++++++++---------------------- internal/pkg/driver/s3.go | 29 +++++++++++++++++------------ 6 files changed, 64 insertions(+), 58 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index 8cbb0107d..e5dd38816 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -286,6 +286,7 @@ linters: - ifshort - scopelint - golint + - revive fast: false diff --git a/canal/event.go b/canal/event.go index b20abed8b..7af69f9a7 100644 --- a/canal/event.go +++ b/canal/event.go @@ -19,7 +19,7 @@ import ( "encoding/json" "sync/atomic" - "github.com/minio/minio-go/v7" + "github.com/aws/aws-sdk-go/service/s3" "github.com/redis/go-redis/v9" "github.com/trim21/errgo" "go.uber.org/zap" @@ -38,7 +38,7 @@ func newEventHandler( redis *redis.Client, stream Stream, search search.Client, - s3 *minio.Client, + s3 *s3.S3, ) *eventHandler { return &eventHandler{ redis: redis, @@ -58,7 +58,7 @@ type eventHandler struct { log *zap.Logger search search.Client stream Stream - s3 *minio.Client // optional, check nil before use + s3 *s3.S3 // optional, check nil before use redis *redis.Client } diff --git a/canal/on_user.go b/canal/on_user.go index a4eeba523..057f4b364 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -21,7 +21,8 @@ import ( "fmt" "strings" - "github.com/minio/minio-go/v7" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" @@ -90,16 +91,30 @@ func (e *eventHandler) clearImageCache(avatar string) { e.log.Debug("clear image for prefix", zap.String("avatar", avatar), zap.String("prefix", p)) - files := e.s3.ListObjects(context.Background(), e.config.S3ImageResizeBucket, minio.ListObjectsOptions{ - Prefix: p, - Recursive: true, - }) + err := e.s3.ListObjectsV2PagesWithContext(context.Background(), + &s3.ListObjectsV2Input{Bucket: &e.config.S3ImageResizeBucket, Prefix: &p}, + func(output *s3.ListObjectsV2Output, b bool) bool { + _, err := e.s3.DeleteObjects(&s3.DeleteObjectsInput{ + Bucket: &e.config.S3ImageResizeBucket, + Delete: &s3.Delete{ + Objects: lo.Map(output.Contents, func(item *s3.Object, index int) *s3.ObjectIdentifier { + return &s3.ObjectIdentifier{ + Key: item.Key, + } + }), + }, + }) + + if err != nil { + e.log.Error("failed to clear s3 cached image", zap.Error(err)) + } + + return true + }, + ) - for err := range e.s3.RemoveObjects( - context.Background(), e.config.S3ImageResizeBucket, files, - minio.RemoveObjectsOptions{}, - ) { - e.log.Error("failed to clear s3 cached image", zap.String("name", err.ObjectName), zap.Error(err.Err)) + if err != nil { + e.log.Error("failed to clear s3 cached image", zap.Error(err)) } } diff --git a/go.mod b/go.mod index ed4862f1b..f3293c830 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.3 + github.com/aws/aws-sdk-go v1.44.250 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 @@ -17,7 +18,6 @@ require ( github.com/labstack/echo/v4 v4.10.2 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.24.0 - github.com/minio/minio-go/v7 v7.0.51 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.14.0 github.com/redis/go-redis/v9 v9.0.3 @@ -55,35 +55,28 @@ require ( github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/dustin/go-humanize v1.0.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/google/uuid v1.3.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/iancoleman/strcase v0.2.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/copier v0.3.5 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joho/godotenv v1.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/labstack/gommon v0.4.0 // indirect github.com/leodido/go-urn v1.2.2 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/minio/md5-simd v1.1.2 // indirect - github.com/minio/sha256-simd v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -91,9 +84,7 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/rs/xid v1.4.0 // indirect github.com/rs/zerolog v1.29.0 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect diff --git a/go.sum b/go.sum index 5a87e5fd0..edfb9b35d 100644 --- a/go.sum +++ b/go.sum @@ -66,6 +66,8 @@ github.com/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH1 github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.44.250 h1:IuGUO2Hafv/b0yYKI5UPLQShYDx50BCIQhab/H1sX2M= +github.com/aws/aws-sdk-go v1.44.250/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -119,8 +121,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -248,8 +248,6 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= @@ -354,6 +352,10 @@ github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -365,7 +367,6 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= @@ -380,10 +381,6 @@ github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHU github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -439,12 +436,6 @@ github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04 github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= -github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.51 h1:eSewrwc23TqUDEH8aw8Bwp4f+JDdozRrPWcKR7DZhmY= -github.com/minio/minio-go/v7 v7.0.51/go.mod h1:IbbodHyjUAguneyucUaahv+VMNs/EOTV9du7A7/Z3HU= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -457,11 +448,9 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -557,7 +546,6 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -582,8 +570,6 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -658,6 +644,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= @@ -754,6 +741,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -802,6 +790,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -825,6 +815,7 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -889,15 +880,16 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.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-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -908,6 +900,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -973,6 +966,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/pkg/driver/s3.go b/internal/pkg/driver/s3.go index 8c25e65f3..97499fe68 100644 --- a/internal/pkg/driver/s3.go +++ b/internal/pkg/driver/s3.go @@ -15,25 +15,30 @@ package driver import ( - "github.com/minio/minio-go/v7" - "github.com/minio/minio-go/v7/pkg/credentials" - "github.com/trim21/errgo" + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/samber/lo" "github.com/bangumi/server/config" ) -func NewS3(c config.AppConfig) (*minio.Client, error) { +func NewS3(c config.AppConfig) (*s3.S3, error) { if c.S3EntryPoint == "" { return nil, nil //nolint:nilnil } - // Initialize minio client object. - minioClient, err := minio.New(c.S3EntryPoint, &minio.Options{ - Creds: credentials.NewStaticV4(c.S3AccessKey, c.S3SecretKey, ""), - }) - if err != nil { - return nil, errgo.Wrap(err, "s3: failed to connect to s3") - } + cred := credentials.NewStaticCredentials(c.S3AccessKey, c.S3SecretKey, "") + s := lo.Must(session.NewSession(&aws.Config{ + Credentials: cred, + Endpoint: &c.S3EntryPoint, + Region: lo.ToPtr("us-east-1"), + DisableSSL: lo.ToPtr(true), + S3ForcePathStyle: lo.ToPtr(true), + })) + + svc := s3.New(s) - return minioClient, nil + return svc, nil } From 7ecbab5468553ab82be70e804ce8276061ef2597 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:35:46 +0800 Subject: [PATCH 004/888] build(deps): update module github.com/avast/retry-go/v4 to v4.3.4 (#328) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f3293c830..1dcbab513 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/bangumi/server go 1.20 require ( - github.com/avast/retry-go/v4 v4.3.3 + github.com/avast/retry-go/v4 v4.3.4 github.com/aws/aws-sdk-go v1.44.250 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 diff --git a/go.sum b/go.sum index edfb9b35d..059399eb5 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH19w= -github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= +github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= +github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.250 h1:IuGUO2Hafv/b0yYKI5UPLQShYDx50BCIQhab/H1sX2M= From 4613b280dc3e7ad55d17f462e61128c080472dd4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:36:12 +0800 Subject: [PATCH 005/888] build(deps): update module github.com/trim21/htest to v0.0.4 (#329) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1dcbab513..ead4830b2 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/trim21/errgo v0.0.2 github.com/trim21/go-phpserialize v0.0.18 github.com/trim21/go-redis-prometheus v0.0.0 - github.com/trim21/htest v0.0.3 + github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 github.com/vektra/mockery/v2 v2.23.2 go.etcd.io/etcd/client/v3 v3.5.8 diff --git a/go.sum b/go.sum index 059399eb5..bbc814c4d 100644 --- a/go.sum +++ b/go.sum @@ -618,8 +618,8 @@ github.com/trim21/go-phpserialize v0.0.18 h1:rEGoaQA6j9kXuYcPx+SFwL+2epyCjNtCfhU github.com/trim21/go-phpserialize v0.0.18/go.mod h1:LQI8ZDQRM7YToxzXCaHwV+vl98A1nddrd7yi9OZOkWQ= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= -github.com/trim21/htest v0.0.3 h1:1y3qw/vdeNyTlV5kZ/xCFLqo94eyC2mKmItaf60NaHA= -github.com/trim21/htest v0.0.3/go.mod h1:c1SxijYYVv4b8XUoT02xgZhaEJtfqduubO9OEPRIPEg= +github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= +github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/trim21/pkg v0.0.3 h1:uAqfoFmmYiIMOSretKj8/tvrQs3KG57020Ff0cx8UtE= github.com/trim21/pkg v0.0.3/go.mod h1:JrRIFidkCLeuU5j0vBP5ZN0NOp2JavagHZNr4D3AH6Q= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= From 720d042e6a6fae593bad15df42354c34aede527e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:39:54 +0800 Subject: [PATCH 006/888] build(deps): update dependency prettier to ^2.8.8 (#332) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f384fb605..bf14d6975 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^2.8.7" + "prettier": "^2.8.8" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -1493,9 +1493,9 @@ } }, "node_modules/prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -3141,9 +3141,9 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "prettier": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", - "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, "process-nextick-args": { diff --git a/package.json b/package.json index 1d79cda32..b8735bcf4 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^2.8.7" + "prettier": "^2.8.8" }, "nodemonConfig": { "restartable": "rs", From 40acd6c33ac23bd68d0123603f5bb5e6677ade6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:42:18 +0800 Subject: [PATCH 007/888] build(deps): update module github.com/prometheus/client_golang to v1.15.0 (#330) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 42 ++++++++++++------------------------------ 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/go.mod b/go.mod index ead4830b2..88257f7cb 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.24.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/client_golang v1.15.0 github.com/redis/go-redis/v9 v9.0.3 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.39 @@ -59,7 +59,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/iancoleman/strcase v0.2.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect @@ -75,15 +75,15 @@ require ( github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.37.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect github.com/rs/zerolog v1.29.0 // indirect github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect diff --git a/go.sum b/go.sum index bbc814c4d..49d4dc21b 100644 --- a/go.sum +++ b/go.sum @@ -83,7 +83,6 @@ github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chigopher/pathlib v0.12.0 h1:1GM7fN/IwXXmOHbd1jkMqHD2wUhYqUvafgxTwmLT/q8= @@ -150,11 +149,9 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -215,8 +212,8 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -366,8 +363,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -387,7 +382,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -430,8 +425,9 @@ github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= @@ -451,7 +447,6 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -507,10 +502,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= +github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -524,20 +517,16 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.0.3 h1:+7mmR26M0IvyLxGZUHxu4GiBkJkVDid0Un+j4ScYu4k= @@ -783,11 +772,9 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -803,8 +790,6 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -867,17 +852,14 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1084,8 +1066,8 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= From 4fdadb87099aa8e06b38f003dfd740e672a6e911 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:43:00 +0800 Subject: [PATCH 008/888] build(deps): update module gorm.io/driver/mysql to v1.5.0 (#331) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 88257f7cb..bbd53f542 100644 --- a/go.mod +++ b/go.mod @@ -40,9 +40,9 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.4.7 + gorm.io/driver/mysql v1.5.0 gorm.io/gen v0.3.21 - gorm.io/gorm v1.24.6 + gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 gorm.io/plugin/dbresolver v1.4.1 ) diff --git a/go.sum b/go.sum index 49d4dc21b..a36d5e7e8 100644 --- a/go.sum +++ b/go.sum @@ -1096,8 +1096,8 @@ gorm.io/datatypes v1.0.7 h1:8NhJN4+annFjwV1WufDhFiPjdUvV1lSGUdg1UCjQIWY= gorm.io/datatypes v1.0.7/go.mod h1:l9qkCuy0CdzDEop9HKUdcnC9gHC2sRlaFtHkTzsZRqg= gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.4.7 h1:rY46lkCspzGHn7+IYsNpSfEv9tA+SU4SkkB+GFX125Y= -gorm.io/driver/mysql v1.4.7/go.mod h1:SxzItlnT1cb6e1e4ZRpgJN2VYtcqJgqnHxWr4wsP8oc= +gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM= +gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo= gorm.io/driver/postgres v1.3.4/go.mod h1:y0vEuInFKJtijuSGu9e5bs5hzzSzPK+LancpKpvbRBw= gorm.io/driver/postgres v1.4.1 h1:DutsKq2LK2Ag65q/+VygWth0/L4GAVOp+sCtg6WzZjs= gorm.io/driver/sqlite v1.1.6/go.mod h1:W8LmC/6UvVbHKah0+QOC7Ja66EaZXHwUTjgXY8YNWX8= @@ -1113,8 +1113,8 @@ gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.6/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.24.6 h1:wy98aq9oFEetsc4CAbKD2SoBCdMzsbSIvSUUFJuHi5s= -gorm.io/gorm v1.24.6/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 h1:9qNbmu21nNThCNnF5i2R3kw2aL27U8ZwbzccNjOmW0g= +gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.0 h1:Lp4z3rxREufSdxn4qmkK3TLDltrM10FLTHiuqwDPvXw= gorm.io/hints v1.1.0/go.mod h1:lKQ0JjySsPBj3uslFzY3JhYDtqEwzm+G1hv8rWujB6Y= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= From 12ad00fc0ae1c0af40aa80f2bde74a69c17dfd5a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:43:12 +0800 Subject: [PATCH 009/888] build(deps): update module github.com/go-redis/redismock/v9 to v9.0.3 (#333) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bbd53f542..814ba6124 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.12.0 - github.com/go-redis/redismock/v9 v9.0.2 + github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.0 github.com/ilyakaznacheev/cleanenv v1.4.2 diff --git a/go.sum b/go.sum index a36d5e7e8..2cec4a84b 100644 --- a/go.sum +++ b/go.sum @@ -159,8 +159,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.12.0 h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI= github.com/go-playground/validator/v10 v10.12.0/go.mod h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA= -github.com/go-redis/redismock/v9 v9.0.2 h1:1X51FovN18M9GXBdbi5xWiXoFPXAijdLdvA7VrYjoVA= -github.com/go-redis/redismock/v9 v9.0.2/go.mod h1:Ojrqw2Kut8BB8HZlXwNgfwhp5xvtVQTjgbIdIMi980g= +github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= +github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= From d579e57b4615eb3818af09fd4f2172aa13aec968 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:43:24 +0800 Subject: [PATCH 010/888] build(deps): update module github.com/go-sql-driver/mysql to v1.7.1 (#334) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 814ba6124..cbc167a93 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/go-playground/validator/v10 v10.12.0 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 - github.com/go-sql-driver/mysql v1.7.0 + github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.4.2 github.com/jarcoal/httpmock v1.3.0 github.com/labstack/echo/v4 v4.10.2 diff --git a/go.sum b/go.sum index 2cec4a84b..8e276c45d 100644 --- a/go.sum +++ b/go.sum @@ -165,8 +165,9 @@ github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPr github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= +github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= From ec0a493f7a780055ed4069bd0b3b626a22a5f2ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:47:33 +0800 Subject: [PATCH 011/888] build(deps): update module gorm.io/gorm to v1.25.0 (#335) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index cbc167a93..7afbcf95d 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.0 gorm.io/gen v0.3.21 - gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 + gorm.io/gorm v1.25.0 gorm.io/plugin/dbresolver v1.4.1 ) diff --git a/go.sum b/go.sum index 8e276c45d..74321840a 100644 --- a/go.sum +++ b/go.sum @@ -1114,8 +1114,9 @@ gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.6/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 h1:9qNbmu21nNThCNnF5i2R3kw2aL27U8ZwbzccNjOmW0g= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU= +gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.0 h1:Lp4z3rxREufSdxn4qmkK3TLDltrM10FLTHiuqwDPvXw= gorm.io/hints v1.1.0/go.mod h1:lKQ0JjySsPBj3uslFzY3JhYDtqEwzm+G1hv8rWujB6Y= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= From 783fa24382bb421f76f061ee58fa9850b06591ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:58:09 +0800 Subject: [PATCH 012/888] build(deps): update module github.com/vektra/mockery/v2 to v2.26.1 (#337) --- Taskfile.yaml | 1 - etc/mock.task.yaml | 2 +- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- internal/mocks/AuthRepo.go | 2 +- internal/mocks/AuthService.go | 2 +- internal/mocks/CharacterRepo.go | 2 +- internal/mocks/CollectionRepo.go | 2 +- internal/mocks/EpisodeRepo.go | 2 +- internal/mocks/IndexRepo.go | 2 +- internal/mocks/NotificationRepo.go | 2 +- internal/mocks/PersonRepo.go | 2 +- internal/mocks/PersonService.go | 2 +- internal/mocks/PrivateMessageRepo.go | 2 +- internal/mocks/RedisCache.go | 2 +- internal/mocks/RevisionRepo.go | 2 +- internal/mocks/SearchClient.go | 2 +- internal/mocks/SessionManager.go | 2 +- internal/mocks/SessionRepo.go | 2 +- internal/mocks/SubjectCachedRepo.go | 2 +- internal/mocks/SubjectRepo.go | 2 +- internal/mocks/TimeLineService.go | 2 +- internal/mocks/UserRepo.go | 2 +- 23 files changed, 33 insertions(+), 34 deletions(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index 3c1f34a52..c8add619e 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -15,7 +15,6 @@ tasks: cmds: - go install google.golang.org/protobuf/cmd/protoc-gen-go - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc - - go install github.com/vektra/mockery/v2 - echo "please install buf by yourself https://docs.buf.build/installation" build: diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index cf7c598de..1ea6b4822 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -26,7 +26,7 @@ tasks: base-mock: cmds: - - cmd: mockery --dir {{.SRC_DIR}} --filename '{{.MOCK_STRUCT|default .INTERFACE}}.go' --name '{{.INTERFACE | default "Manager"}}' --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter + - cmd: go run github.com/vektra/mockery/v2 --dir {{.SRC_DIR}} --filename '{{.MOCK_STRUCT|default .INTERFACE}}.go' --name '{{.INTERFACE | default "Manager"}}' --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter session-repo: sources: diff --git a/go.mod b/go.mod index 7afbcf95d..8888878e7 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - github.com/vektra/mockery/v2 v2.23.2 + github.com/vektra/mockery/v2 v2.26.1 go.etcd.io/etcd/client/v3 v3.5.8 go.uber.org/fx v1.19.2 go.uber.org/zap v1.24.0 @@ -51,7 +51,7 @@ require ( github.com/andybalholm/brotli v1.0.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chigopher/pathlib v0.12.0 // indirect + github.com/chigopher/pathlib v0.13.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -100,13 +100,13 @@ require ( go.uber.org/dig v1.16.1 // indirect go.uber.org/multierr v1.8.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/mod v0.8.0 // indirect + golang.org/x/mod v0.9.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/sys v0.7.0 // indirect golang.org/x/term v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.6.0 // indirect + golang.org/x/tools v0.7.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 74321840a..6559915d7 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chigopher/pathlib v0.12.0 h1:1GM7fN/IwXXmOHbd1jkMqHD2wUhYqUvafgxTwmLT/q8= -github.com/chigopher/pathlib v0.12.0/go.mod h1:EJ5UtJ/sK8Nt6q3VWN+EwZLZ3g0afJiG8NegYiQQ/gQ= +github.com/chigopher/pathlib v0.13.0 h1:9AYqYGR+JaYJtZfTSsC+Wvz7CBd2jcZFb4fva7Z4r+4= +github.com/chigopher/pathlib v0.13.0/go.mod h1:EJ5UtJ/sK8Nt6q3VWN+EwZLZ3g0afJiG8NegYiQQ/gQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -137,7 +137,7 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= @@ -622,8 +622,8 @@ github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/vektra/mockery/v2 v2.23.2 h1:SEqsPdKBQUuDVNumY/z15UVEHLZIahFLQpE73nKdQv4= -github.com/vektra/mockery/v2 v2.23.2/go.mod h1:Zh3Kv1ckKs6FokhlVLcCu6UTyzfS3M8mpROz1lBNp+w= +github.com/vektra/mockery/v2 v2.26.1 h1:Y8mlLkWHWjuUpsJBwhFb1LeG1ZnWFvo+prsIuiABJ88= +github.com/vektra/mockery/v2 v2.26.1/go.mod h1:BOVUIv65DB6wuTYzoPtyMoBYce3n2C1IcsOdWu6Rpu4= github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= @@ -732,8 +732,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -950,8 +950,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index 4e4790758..f0f1c5324 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index 586861410..000da682a 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/CharacterRepo.go b/internal/mocks/CharacterRepo.go index fadd66d79..ec82ea8c8 100644 --- a/internal/mocks/CharacterRepo.go +++ b/internal/mocks/CharacterRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index a2eb17bdd..3b395ffc2 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/EpisodeRepo.go b/internal/mocks/EpisodeRepo.go index d07424611..4c3cfbd2d 100644 --- a/internal/mocks/EpisodeRepo.go +++ b/internal/mocks/EpisodeRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index 52136b5ee..f168292db 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.20.0. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/NotificationRepo.go b/internal/mocks/NotificationRepo.go index 342a39f36..adb7b81be 100644 --- a/internal/mocks/NotificationRepo.go +++ b/internal/mocks/NotificationRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/PersonRepo.go b/internal/mocks/PersonRepo.go index 917e89437..03c9007ac 100644 --- a/internal/mocks/PersonRepo.go +++ b/internal/mocks/PersonRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/PersonService.go b/internal/mocks/PersonService.go index 800f72495..ba5db3966 100644 --- a/internal/mocks/PersonService.go +++ b/internal/mocks/PersonService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/PrivateMessageRepo.go b/internal/mocks/PrivateMessageRepo.go index 7a7639231..7ddefc036 100644 --- a/internal/mocks/PrivateMessageRepo.go +++ b/internal/mocks/PrivateMessageRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/RedisCache.go b/internal/mocks/RedisCache.go index caba679d3..46261e5ec 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/RedisCache.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/RevisionRepo.go b/internal/mocks/RevisionRepo.go index 82abe5074..a402a6482 100644 --- a/internal/mocks/RevisionRepo.go +++ b/internal/mocks/RevisionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index ad309ba4d..0c7e0c1e2 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.20.0. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/SessionManager.go b/internal/mocks/SessionManager.go index 0ea6a4d93..f62c23f84 100644 --- a/internal/mocks/SessionManager.go +++ b/internal/mocks/SessionManager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/SessionRepo.go b/internal/mocks/SessionRepo.go index 9c30fc0f4..6fc21deea 100644 --- a/internal/mocks/SessionRepo.go +++ b/internal/mocks/SessionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index 0127aaf85..48af75bfd 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index b45868d29..df8da4e21 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index 27594da9a..ab59f19f2 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index 6730cf5e7..37c84e479 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.23.1. DO NOT EDIT. +// Code generated by mockery v2.26.1. DO NOT EDIT. package mocks From 67a9d67c3886f1a09f98ddf5a4868ec6f9838c5b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 15:39:23 +0800 Subject: [PATCH 013/888] build(deps): update module gorm.io/gen to v0.3.22 (#336) --- cmd/gen/gorm/main.go | 89 ++++++++------ dal/dao/chii_characters.gen.go | 2 +- dal/dao/chii_crt_cast_index.gen.go | 4 +- dal/dao/chii_crt_subject_index.gen.go | 4 +- dal/dao/chii_episodes.gen.go | 2 +- dal/dao/chii_index.gen.go | 16 +-- dal/dao/chii_index_collects.gen.go | 4 +- dal/dao/chii_index_related.gen.go | 6 +- dal/dao/chii_members.gen.go | 2 +- dal/dao/chii_notify.gen.go | 2 +- dal/dao/chii_os_web_sessions.gen.go | 10 +- dal/dao/chii_person_cs_index.gen.go | 4 +- dal/dao/chii_persons.gen.go | 8 +- dal/dao/chii_rev_history.gen.go | 4 +- dal/dao/chii_subject_fields.gen.go | 8 +- dal/dao/chii_subject_interests.gen.go | 2 +- dal/dao/chii_subject_relations.gen.go | 10 +- dal/dao/chii_subject_revisions.gen.go | 2 +- dal/dao/chii_subjects.gen.go | 12 +- dal/query/chii_characters.gen.go | 5 + dal/query/chii_crt_cast_index.gen.go | 15 +++ dal/query/chii_crt_subject_index.gen.go | 10 ++ dal/query/chii_episodes.gen.go | 5 + dal/query/chii_index_related.gen.go | 5 + dal/query/chii_members.gen.go | 5 + dal/query/chii_person_cs_index.gen.go | 10 ++ dal/query/chii_persons.gen.go | 5 + dal/query/chii_subject_relations.gen.go | 5 + dal/query/chii_subject_revisions.gen.go | 5 + dal/query/chii_subjects.gen.go | 5 + dal/query/gen.go | 8 +- go.mod | 12 +- go.sum | 153 ++++-------------------- 33 files changed, 214 insertions(+), 225 deletions(-) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index cfe7d0c18..76bf90b8b 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -28,6 +28,7 @@ import ( "gorm.io/gen" "gorm.io/gen/field" + "gorm.io/gorm" "github.com/bangumi/server/config" "github.com/bangumi/server/dal" @@ -56,19 +57,20 @@ const createdTime = "CreatedTime" // generate code. func main() { - // specify the output directory (default: "./query") - // ### if you want to query without context constrain, set mode gen.WithoutContext ### - const dalBase = "./dal" g := gen.NewGenerator(gen.Config{ - OutPath: "./dal/query", - OutFile: "./dal/query/gen.go", - ModelPkgPath: "./dal/dao", + OutPath: "./dal/query/", + OutFile: "./gen.go", + ModelPkgPath: "./dao/", + + WithUnitTest: false, // if you want the nullable field generation property to be pointer type, set FieldNullable true - FieldNullable: false, + FieldNullable: false, + FieldCoverable: false, + FieldSignable: false, + FieldWithIndexTag: false, // if you want to generate type tags from database, set FieldWithTypeTag true FieldWithTypeTag: true, - // if you need unit tests for query code, set WithUnitTest true - // WithUnitTest: true, + Mode: 0, }) g.WithImportPkgPath( @@ -97,34 +99,53 @@ func main() { } g.UseDB(db) - dataMap := map[string]func(detailType string) (dataType string){ + dataMap := map[string]func(detailType gorm.ColumnType) (dataType string){ // bool mapping - "tinyint": func(detailType string) (dataType string) { - if strings.HasPrefix(detailType, "tinyint(1)") { + "tinyint": func(t gorm.ColumnType) (dataType string) { + dt, ok := t.ColumnType() + if !ok { + panic("failed to get column type") + } + if strings.HasPrefix(dt, "tinyint(1)") { return "bool" } - if strings.HasSuffix(detailType, "unsigned") { + if strings.HasSuffix(dt, "unsigned") { return "uint8" } return "int8" }, - "smallint": func(detailType string) (dataType string) { - if strings.HasSuffix(detailType, "unsigned") { + "smallint": func(t gorm.ColumnType) (dataType string) { + dt, ok := t.ColumnType() + if !ok { + panic("failed to get column type") + } + + if strings.HasSuffix(dt, "unsigned") { return "uint16" } return "int16" }, - "mediumint": func(detailType string) (dataType string) { - if strings.HasSuffix(detailType, "unsigned") { + "mediumint": func(t gorm.ColumnType) (dataType string) { + dt, ok := t.ColumnType() + if !ok { + panic("failed to get column type") + } + + if strings.HasSuffix(dt, "unsigned") { return "uint32" } return "int32" }, - "int": func(detailType string) (dataType string) { - if strings.HasSuffix(detailType, "unsigned") { + "int": func(t gorm.ColumnType) (dataType string) { + dt, ok := t.ColumnType() + if !ok { + panic("failed to get column type") + } + + if strings.HasSuffix(dt, "unsigned") { return "uint32" } return "int32" @@ -145,7 +166,7 @@ func main() { gen.FieldType("password_crypt", "[]byte"), gen.FieldType("groupid", "uint8"), gen.FieldRelate(field.HasOne, "Fields", modelField, &field.RelateConfig{ - GORMTag: "foreignKey:uid;references:uid", + GORMTag: field.GormTag{"foreignKey": "uid", "references": "uid"}, })) g.ApplyBasic(modelMember) @@ -233,7 +254,7 @@ func main() { gen.FieldType("prsn_writer", "bool"), gen.FieldType("prsn_redirect", personIDTypeString), gen.FieldRelate(field.HasOne, "Fields", modelPersonField, &field.RelateConfig{ - GORMTag: "foreignKey:prsn_id;polymorphic:Owner;polymorphicValue:prsn", + GORMTag: field.GormTag{"foreignKey": "prsn_id", "polymorphic": "Owner", "polymorphicValue": "prsn"}, }), ) g.ApplyBasic(modelPerson) @@ -245,7 +266,7 @@ func main() { gen.FieldType("crt_id", characterIDTypeString), gen.FieldType("crt_redirect", characterIDTypeString), gen.FieldRelate(field.HasOne, "Fields", modelPersonField, &field.RelateConfig{ - GORMTag: "foreignKey:crt_id;polymorphic:Owner;polymorphicValue:crt", + GORMTag: field.GormTag{"foreignKey": "crt_id", "polymorphic": "Owner", "polymorphicValue": "crt"}, }), ) @@ -278,7 +299,7 @@ func main() { gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldType("subject_airtime", "uint8"), gen.FieldRelate(field.HasOne, "Fields", modelSubjectFields, &field.RelateConfig{ - GORMTag: "foreignKey:subject_id;references:field_sid", + GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "field_sid"}, }), ) g.ApplyBasic(modelSubject) @@ -290,7 +311,7 @@ func main() { gen.FieldType("ep_type", episodeTypeTypeString), gen.FieldType("ep_subject_id", subjectIDTypeString), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:ep_subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "ep_subject_id", "references": "subject_id"}, }), )) @@ -312,7 +333,7 @@ func main() { gen.FieldType("rlt_subject_type_id", subjectTypeIDTypeString), gen.FieldType("rlt_related_subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:rlt_related_subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "rlt_related_subject_id", "references": "subject_id"}, }), )) @@ -323,7 +344,7 @@ func main() { gen.FieldType("rev_creator", userIDTypeString), gen.FieldType("rev_subject_id", subjectIDTypeString), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:rev_subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "rev_subject_id", "references": "subject_id"}, }), )) @@ -334,13 +355,13 @@ func main() { gen.FieldType("prsn_id", personIDTypeString), gen.FieldType("subject_id", subjectIDTypeString), gen.FieldRelate(field.HasOne, "Character", modelCharacter, &field.RelateConfig{ - GORMTag: "foreignKey:crt_id;references:crt_id", + GORMTag: field.GormTag{"foreignKey": "crt_id", "references": "crt_id"}, }), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, }), gen.FieldRelate(field.HasOne, "Person", modelPerson, &field.RelateConfig{ - GORMTag: "foreignKey:prsn_id;references:prsn_id", + GORMTag: field.GormTag{"foreignKey": "prsn_id", "references": "prsn_id"}, }), )) @@ -351,10 +372,10 @@ func main() { gen.FieldType("subject_id", subjectIDTypeString), gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Character", modelCharacter, &field.RelateConfig{ - GORMTag: "foreignKey:crt_id;references:crt_id", + GORMTag: field.GormTag{"foreignKey": "crt_id", "references": "crt_id"}, }), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, }), ), ) @@ -365,10 +386,10 @@ func main() { gen.FieldType("subject_id", subjectIDTypeString), gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:subject_id;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, }), gen.FieldRelate(field.HasOne, "Person", modelPerson, &field.RelateConfig{ - GORMTag: "foreignKey:prsn_id;references:prsn_id", + GORMTag: field.GormTag{"foreignKey": "prsn_id", "references": "prsn_id"}, }), ), ) @@ -377,7 +398,7 @@ func main() { gen.FieldTrimPrefix("idx_rlt_"), gen.FieldType("idx_rlt_type", "uint8"), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: "foreignKey:idx_rlt_sid;references:subject_id", + GORMTag: field.GormTag{"foreignKey": "idx_rlt_sid", "references": "subject_id"}, }), // 变量重命名 gen.FieldRename("idx_rlt_rid", "IndexID"), diff --git a/dal/dao/chii_characters.gen.go b/dal/dao/chii_characters.gen.go index a80eb2797..e06df5500 100644 --- a/dal/dao/chii_characters.gen.go +++ b/dal/dao/chii_characters.gen.go @@ -10,7 +10,7 @@ const TableNameCharacter = "chii_characters" type Character struct { ID uint32 `gorm:"column:crt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` Name string `gorm:"column:crt_name;type:varchar(255);not null"` - Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null"` // 角色,机体,组织。。 + Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null;comment:角色,机体,组织。。"` // 角色,机体,组织。。 Infobox string `gorm:"column:crt_infobox;type:mediumtext;not null"` Summary string `gorm:"column:crt_summary;type:mediumtext;not null"` Img string `gorm:"column:crt_img;type:varchar(255);not null"` diff --git a/dal/dao/chii_crt_cast_index.gen.go b/dal/dao/chii_crt_cast_index.gen.go index d1fe1a38b..3e3beeace 100644 --- a/dal/dao/chii_crt_cast_index.gen.go +++ b/dal/dao/chii_crt_cast_index.gen.go @@ -11,8 +11,8 @@ type Cast struct { CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey"` PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey"` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` - SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(3) unsigned;not null"` // 根据人物归类查询角色,动画,书籍,游戏 - Summary string `gorm:"column:summary;type:varchar(255);not null"` // 幼年,男乱马,女乱马,变身形态,少女形态。。 + SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(3) unsigned;not null;comment:根据人物归类查询角色,动画,书籍,游戏"` // 根据人物归类查询角色,动画,书籍,游戏 + Summary string `gorm:"column:summary;type:varchar(255);not null;comment:幼年,男乱马,女乱马,变身形态,少女形态。。"` // 幼年,男乱马,女乱马,变身形态,少女形态。。 Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` Person Person `gorm:"foreignKey:prsn_id;references:prsn_id" json:"person"` diff --git a/dal/dao/chii_crt_subject_index.gen.go b/dal/dao/chii_crt_subject_index.gen.go index 4e89c9190..ebf8e4f18 100644 --- a/dal/dao/chii_crt_subject_index.gen.go +++ b/dal/dao/chii_crt_subject_index.gen.go @@ -11,8 +11,8 @@ type CharacterSubjects struct { CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey"` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null"` - CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null"` // 主角,配角 - CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null"` // 可选,角色出场的的章节 + CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角"` // 主角,配角 + CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节"` // 可选,角色出场的的章节 CrtOrder uint8 `gorm:"column:crt_order;type:tinyint(3) unsigned;not null"` Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` diff --git a/dal/dao/chii_episodes.gen.go b/dal/dao/chii_episodes.gen.go index e525fbd78..d9b4035e5 100644 --- a/dal/dao/chii_episodes.gen.go +++ b/dal/dao/chii_episodes.gen.go @@ -12,7 +12,7 @@ type Episode struct { SubjectID uint32 `gorm:"column:ep_subject_id;type:mediumint(8) unsigned;not null"` Sort float32 `gorm:"column:ep_sort;type:float unsigned;not null"` Type uint8 `gorm:"column:ep_type;type:tinyint(1) unsigned;not null"` - Disc uint8 `gorm:"column:ep_disc;type:tinyint(3) unsigned;not null"` // 碟片数 + Disc uint8 `gorm:"column:ep_disc;type:tinyint(3) unsigned;not null;comment:碟片数"` // 碟片数 Name string `gorm:"column:ep_name;type:varchar(80);not null"` NameCn string `gorm:"column:ep_name_cn;type:varchar(80);not null"` Rate int8 `gorm:"column:ep_rate;type:tinyint(3);not null"` diff --git a/dal/dao/chii_index.gen.go b/dal/dao/chii_index.gen.go index 457224780..ebb54bcdd 100644 --- a/dal/dao/chii_index.gen.go +++ b/dal/dao/chii_index.gen.go @@ -8,17 +8,17 @@ const TableNameIndex = "chii_index" // Index mapped from table type Index struct { - ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true"` // 自动id + ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id"` // 自动id Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null"` - Title string `gorm:"column:idx_title;type:varchar(80);not null"` // 标题 - Desc string `gorm:"column:idx_desc;type:mediumtext;not null"` // 简介 - ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null"` // 回复数 - SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null"` // 内含条目总数 - CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null"` // 收藏数 + Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题"` // 标题 + Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介"` // 简介 + ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数"` // 回复数 + SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数"` // 内含条目总数 + CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数"` // 收藏数 Stats string `gorm:"column:idx_stats;type:mediumtext;not null"` - CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null"` // 创建时间 + CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间"` // 创建时间 UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null"` - CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null"` // 创建人UID + CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID"` // 创建人UID Ban bool `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null"` } diff --git a/dal/dao/chii_index_collects.gen.go b/dal/dao/chii_index_collects.gen.go index 8f9fa2213..1b7e7113c 100644 --- a/dal/dao/chii_index_collects.gen.go +++ b/dal/dao/chii_index_collects.gen.go @@ -9,8 +9,8 @@ const TableNameIndexCollect = "chii_index_collects" // IndexCollect mapped from table type IndexCollect struct { CltID uint32 `gorm:"column:idx_clt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - IndexID uint32 `gorm:"column:idx_clt_mid;type:mediumint(8) unsigned;not null"` // 目录ID - UserID uint32 `gorm:"column:idx_clt_uid;type:mediumint(8) unsigned;not null"` // 用户UID + IndexID uint32 `gorm:"column:idx_clt_mid;type:mediumint(8) unsigned;not null;comment:目录ID"` // 目录ID + UserID uint32 `gorm:"column:idx_clt_uid;type:mediumint(8) unsigned;not null;comment:用户UID"` // 用户UID CreatedTime uint32 `gorm:"column:idx_clt_dateline;type:int(10) unsigned;not null"` } diff --git a/dal/dao/chii_index_related.gen.go b/dal/dao/chii_index_related.gen.go index aa680ed02..627c59753 100644 --- a/dal/dao/chii_index_related.gen.go +++ b/dal/dao/chii_index_related.gen.go @@ -10,9 +10,9 @@ const TableNameIndexSubject = "chii_index_related" type IndexSubject struct { ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null"` - IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null"` // 关联目录 - SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null"` // 关联条目类型 - SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null"` // 关联条目ID + IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null;comment:关联目录"` // 关联目录 + SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型"` // 关联条目类型 + SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID"` // 关联条目ID Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null"` Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null"` CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null"` diff --git a/dal/dao/chii_members.gen.go b/dal/dao/chii_members.gen.go index 49123a172..ae9df195b 100644 --- a/dal/dao/chii_members.gen.go +++ b/dal/dao/chii_members.gen.go @@ -25,7 +25,7 @@ type Member struct { Timeformat bool `gorm:"column:timeformat;type:tinyint(1);not null"` Timeoffset string `gorm:"column:timeoffset;type:char(4);not null"` Newpm bool `gorm:"column:newpm;type:tinyint(1);not null"` - NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null"` // 新提醒 + NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null;comment:新提醒"` // 新提醒 Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null"` PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null"` Email string `gorm:"column:email;type:char(50);not null"` diff --git a/dal/dao/chii_notify.gen.go b/dal/dao/chii_notify.gen.go index d41065d39..6e145f395 100644 --- a/dal/dao/chii_notify.gen.go +++ b/dal/dao/chii_notify.gen.go @@ -13,7 +13,7 @@ type Notification struct { SenderID uint32 `gorm:"column:nt_from_uid;type:mediumint(8) unsigned;not null"` Status uint8 `gorm:"column:nt_status;type:tinyint(1) unsigned;not null;default:1"` Type uint8 `gorm:"column:nt_type;type:tinyint(3) unsigned;not null"` - FieldID uint32 `gorm:"column:nt_mid;type:mediumint(8) unsigned;not null"` // ID in notify_field + FieldID uint32 `gorm:"column:nt_mid;type:mediumint(8) unsigned;not null;comment:ID in notify_field"` // ID in notify_field RelatedID uint32 `gorm:"column:nt_related_id;type:int(10) unsigned;not null"` CreatedTime uint32 `gorm:"column:nt_dateline;type:int(10) unsigned;not null"` } diff --git a/dal/dao/chii_os_web_sessions.gen.go b/dal/dao/chii_os_web_sessions.gen.go index 5770a5aff..5a72d2fea 100644 --- a/dal/dao/chii_os_web_sessions.gen.go +++ b/dal/dao/chii_os_web_sessions.gen.go @@ -8,11 +8,11 @@ const TableNameWebSession = "chii_os_web_sessions" // WebSession mapped from table type WebSession struct { - Key string `gorm:"column:key;type:char(64);primaryKey"` // session key - UserID uint32 `gorm:"column:user_id;type:int(10) unsigned;not null"` // uint32 user id - Value []byte `gorm:"column:value;type:mediumblob;not null"` // json encoded session data - CreatedAt int64 `gorm:"column:created_at;type:bigint(20);not null"` // int64 unix timestamp, when session is created - ExpiredAt int64 `gorm:"column:expired_at;type:bigint(20);not null"` // int64 unix timestamp, when session is expired + Key string `gorm:"column:key;type:char(64);primaryKey;comment:session key"` // session key + UserID uint32 `gorm:"column:user_id;type:int(10) unsigned;not null;comment:uint32 user id"` // uint32 user id + Value []byte `gorm:"column:value;type:mediumblob;not null;comment:json encoded session data"` // json encoded session data + CreatedAt int64 `gorm:"column:created_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is created"` // int64 unix timestamp, when session is created + ExpiredAt int64 `gorm:"column:expired_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is expired"` // int64 unix timestamp, when session is expired } // TableName WebSession's table name diff --git a/dal/dao/chii_person_cs_index.gen.go b/dal/dao/chii_person_cs_index.gen.go index 7aa50d35c..3ed64b25a 100644 --- a/dal/dao/chii_person_cs_index.gen.go +++ b/dal/dao/chii_person_cs_index.gen.go @@ -10,11 +10,11 @@ const TableNamePersonSubjects = "chii_person_cs_index" type PersonSubjects struct { PrsnType string `gorm:"column:prsn_type;type:enum('prsn','crt');primaryKey"` PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey"` - PrsnPosition uint16 `gorm:"column:prsn_position;type:smallint(5) unsigned;primaryKey"` // 监督,原案,脚本,.. + PrsnPosition uint16 `gorm:"column:prsn_position;type:smallint(5) unsigned;primaryKey;comment:监督,原案,脚本,.."` // 监督,原案,脚本,.. SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null"` Summary string `gorm:"column:summary;type:mediumtext;not null"` - PrsnAppearEps string `gorm:"column:prsn_appear_eps;type:mediumtext;not null"` // 可选,人物参与的章节 + PrsnAppearEps string `gorm:"column:prsn_appear_eps;type:mediumtext;not null;comment:可选,人物参与的章节"` // 可选,人物参与的章节 Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` Person Person `gorm:"foreignKey:prsn_id;references:prsn_id" json:"person"` } diff --git a/dal/dao/chii_persons.gen.go b/dal/dao/chii_persons.gen.go index 34d039fe6..7aee6067f 100644 --- a/dal/dao/chii_persons.gen.go +++ b/dal/dao/chii_persons.gen.go @@ -10,15 +10,15 @@ const TableNamePerson = "chii_persons" type Person struct { ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` Name string `gorm:"column:prsn_name;type:varchar(255);not null"` - Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null"` // 个人,公司,组合 + Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null;comment:个人,公司,组合"` // 个人,公司,组合 Infobox string `gorm:"column:prsn_infobox;type:mediumtext;not null"` Producer bool `gorm:"column:prsn_producer;type:tinyint(1);not null"` Mangaka bool `gorm:"column:prsn_mangaka;type:tinyint(1);not null"` Artist bool `gorm:"column:prsn_artist;type:tinyint(1);not null"` Seiyu bool `gorm:"column:prsn_seiyu;type:tinyint(1);not null"` - Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null"` // 作家 - Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null"` // 绘师 - Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null"` // 演员 + Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null;comment:作家"` // 作家 + Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null;comment:绘师"` // 绘师 + Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null;comment:演员"` // 演员 Summary string `gorm:"column:prsn_summary;type:mediumtext;not null"` Img string `gorm:"column:prsn_img;type:varchar(255);not null"` ImgAnidb string `gorm:"column:prsn_img_anidb;type:varchar(255);not null"` // Deprecated diff --git a/dal/dao/chii_rev_history.gen.go b/dal/dao/chii_rev_history.gen.go index 25c3789d0..ed60f532d 100644 --- a/dal/dao/chii_rev_history.gen.go +++ b/dal/dao/chii_rev_history.gen.go @@ -9,8 +9,8 @@ const TableNameRevisionHistory = "chii_rev_history" // RevisionHistory mapped from table type RevisionHistory struct { ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null"` // 条目,角色,人物 - Mid uint32 `gorm:"column:rev_mid;type:mediumint(8) unsigned;not null"` // 对应条目,人物的ID + Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;comment:条目,角色,人物"` // 条目,角色,人物 + Mid uint32 `gorm:"column:rev_mid;type:mediumint(8) unsigned;not null;comment:对应条目,人物的ID"` // 对应条目,人物的ID TextID uint32 `gorm:"column:rev_text_id;type:mediumint(9) unsigned;not null"` CreatedTime uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null"` CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null"` diff --git a/dal/dao/chii_subject_fields.gen.go b/dal/dao/chii_subject_fields.gen.go index eb5e4aa51..3131f1502 100644 --- a/dal/dao/chii_subject_fields.gen.go +++ b/dal/dao/chii_subject_fields.gen.go @@ -27,10 +27,10 @@ type SubjectField struct { Rate10 uint32 `gorm:"column:field_rate_10;type:mediumint(8) unsigned;not null"` Airtime uint8 `gorm:"column:field_airtime;type:tinyint(1) unsigned;not null"` Rank uint32 `gorm:"column:field_rank;type:int(10) unsigned;not null"` - Year int32 `gorm:"column:field_year;type:year(4);not null"` // 放送年份 - Mon int8 `gorm:"column:field_mon;type:tinyint(2);not null"` // 放送月份 - WeekDay int8 `gorm:"column:field_week_day;type:tinyint(1);not null"` // 放送日(星期X) - Date time.Time `gorm:"column:field_date;type:date;not null"` // 放送日期 + Year int32 `gorm:"column:field_year;type:year(4);not null;comment:放送年份"` // 放送年份 + Mon int8 `gorm:"column:field_mon;type:tinyint(2);not null;comment:放送月份"` // 放送月份 + WeekDay int8 `gorm:"column:field_week_day;type:tinyint(1);not null;comment:放送日(星期X)"` // 放送日(星期X) + Date time.Time `gorm:"column:field_date;type:date;not null;comment:放送日期"` // 放送日期 Redirect uint32 `gorm:"column:field_redirect;type:mediumint(8) unsigned;not null"` } diff --git a/dal/dao/chii_subject_interests.gen.go b/dal/dao/chii_subject_interests.gen.go index 1cfda7b01..68e29aa19 100644 --- a/dal/dao/chii_subject_interests.gen.go +++ b/dal/dao/chii_subject_interests.gen.go @@ -22,7 +22,7 @@ type SubjectCollection struct { Comment utiltype.HTMLEscapedString `gorm:"column:interest_comment;type:mediumtext;not null"` Tag string `gorm:"column:interest_tag;type:mediumtext;not null"` EpStatus uint32 `gorm:"column:interest_ep_status;type:mediumint(8) unsigned;not null"` - VolStatus uint32 `gorm:"column:interest_vol_status;type:mediumint(8) unsigned;not null"` // 卷数 + VolStatus uint32 `gorm:"column:interest_vol_status;type:mediumint(8) unsigned;not null;comment:卷数"` // 卷数 WishTime uint32 `gorm:"column:interest_wish_dateline;type:int(10) unsigned;not null"` DoingTime uint32 `gorm:"column:interest_doing_dateline;type:int(10) unsigned;not null"` DoneTime uint32 `gorm:"column:interest_collect_dateline;type:int(10) unsigned;not null"` diff --git a/dal/dao/chii_subject_relations.gen.go b/dal/dao/chii_subject_relations.gen.go index 1bcff0d54..b92a9fa01 100644 --- a/dal/dao/chii_subject_relations.gen.go +++ b/dal/dao/chii_subject_relations.gen.go @@ -8,13 +8,13 @@ const TableNameSubjectRelation = "chii_subject_relations" // SubjectRelation mapped from table type SubjectRelation struct { - SubjectID uint32 `gorm:"column:rlt_subject_id;type:mediumint(8) unsigned;primaryKey"` // 关联主 ID + SubjectID uint32 `gorm:"column:rlt_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联主 ID"` // 关联主 ID SubjectTypeID uint8 `gorm:"column:rlt_subject_type_id;type:tinyint(3) unsigned;not null"` - RelationType uint16 `gorm:"column:rlt_relation_type;type:smallint(5) unsigned;not null"` // 关联类型 - RelatedSubjectID uint32 `gorm:"column:rlt_related_subject_id;type:mediumint(8) unsigned;primaryKey"` // 关联目标 ID - RelatedSubjectTypeID uint8 `gorm:"column:rlt_related_subject_type_id;type:tinyint(3) unsigned;not null"` // 关联目标类型 + RelationType uint16 `gorm:"column:rlt_relation_type;type:smallint(5) unsigned;not null;comment:关联类型"` // 关联类型 + RelatedSubjectID uint32 `gorm:"column:rlt_related_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联目标 ID"` // 关联目标 ID + RelatedSubjectTypeID uint8 `gorm:"column:rlt_related_subject_type_id;type:tinyint(3) unsigned;not null;comment:关联目标类型"` // 关联目标类型 ViceVersa bool `gorm:"column:rlt_vice_versa;type:tinyint(1) unsigned;primaryKey"` - Order uint8 `gorm:"column:rlt_order;type:tinyint(3) unsigned;not null"` // 关联排序 + Order uint8 `gorm:"column:rlt_order;type:tinyint(3) unsigned;not null;comment:关联排序"` // 关联排序 Subject Subject `gorm:"foreignKey:rlt_related_subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_subject_revisions.gen.go b/dal/dao/chii_subject_revisions.gen.go index afe38bd5c..1f20b33d7 100644 --- a/dal/dao/chii_subject_revisions.gen.go +++ b/dal/dao/chii_subject_revisions.gen.go @@ -9,7 +9,7 @@ const TableNameSubjectRevision = "chii_subject_revisions" // SubjectRevision mapped from table type SubjectRevision struct { ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1"` // 修订类型 + Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1;comment:修订类型"` // 修订类型 SubjectID uint32 `gorm:"column:rev_subject_id;type:mediumint(8) unsigned;not null"` TypeID uint16 `gorm:"column:rev_type_id;type:smallint(6) unsigned;not null"` CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null"` diff --git a/dal/dao/chii_subjects.gen.go b/dal/dao/chii_subjects.gen.go index bf3c9baa5..be5c2f240 100644 --- a/dal/dao/chii_subjects.gen.go +++ b/dal/dao/chii_subjects.gen.go @@ -12,21 +12,21 @@ type Subject struct { TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null"` Name string `gorm:"column:subject_name;type:varchar(80);not null"` NameCN string `gorm:"column:subject_name_cn;type:varchar(80);not null"` - UID string `gorm:"column:subject_uid;type:varchar(20);not null"` // isbn / imdb + UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb"` // isbn / imdb Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null"` Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null"` Image string `gorm:"column:subject_image;type:varchar(255);not null"` Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null"` Infobox string `gorm:"column:field_infobox;type:mediumtext;not null"` - Summary string `gorm:"column:field_summary;type:mediumtext;not null"` // summary - Field5 string `gorm:"column:field_5;type:mediumtext;not null"` // author summary - Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null"` // 卷数 + Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary"` // summary + Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary"` // author summary + Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数"` // 卷数 Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null"` Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null"` Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null"` Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null"` - OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null"` // 搁置人数 - Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null"` // 抛弃人数 + OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数"` // 搁置人数 + Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数"` // 抛弃人数 Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null"` SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null"` IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null"` diff --git a/dal/query/chii_characters.gen.go b/dal/query/chii_characters.gen.go index ef1338677..e30a1a70c 100644 --- a/dal/query/chii_characters.gen.go +++ b/dal/query/chii_characters.gen.go @@ -185,6 +185,11 @@ func (a characterHasOneFields) WithContext(ctx context.Context) *characterHasOne return &a } +func (a characterHasOneFields) Session(session *gorm.Session) *characterHasOneFields { + a.db = a.db.Session(session) + return &a +} + func (a characterHasOneFields) Model(m *dao.Character) *characterHasOneFieldsTx { return &characterHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_crt_cast_index.gen.go b/dal/query/chii_crt_cast_index.gen.go index dc4ca58a2..a12f81f57 100644 --- a/dal/query/chii_crt_cast_index.gen.go +++ b/dal/query/chii_crt_cast_index.gen.go @@ -174,6 +174,11 @@ func (a castHasOneCharacter) WithContext(ctx context.Context) *castHasOneCharact return &a } +func (a castHasOneCharacter) Session(session *gorm.Session) *castHasOneCharacter { + a.db = a.db.Session(session) + return &a +} + func (a castHasOneCharacter) Model(m *dao.Cast) *castHasOneCharacterTx { return &castHasOneCharacterTx{a.db.Model(m).Association(a.Name())} } @@ -244,6 +249,11 @@ func (a castHasOneSubject) WithContext(ctx context.Context) *castHasOneSubject { return &a } +func (a castHasOneSubject) Session(session *gorm.Session) *castHasOneSubject { + a.db = a.db.Session(session) + return &a +} + func (a castHasOneSubject) Model(m *dao.Cast) *castHasOneSubjectTx { return &castHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } @@ -314,6 +324,11 @@ func (a castHasOnePerson) WithContext(ctx context.Context) *castHasOnePerson { return &a } +func (a castHasOnePerson) Session(session *gorm.Session) *castHasOnePerson { + a.db = a.db.Session(session) + return &a +} + func (a castHasOnePerson) Model(m *dao.Cast) *castHasOnePersonTx { return &castHasOnePersonTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index 5a63a9dc7..a71341a25 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -167,6 +167,11 @@ func (a characterSubjectsHasOneCharacter) WithContext(ctx context.Context) *char return &a } +func (a characterSubjectsHasOneCharacter) Session(session *gorm.Session) *characterSubjectsHasOneCharacter { + a.db = a.db.Session(session) + return &a +} + func (a characterSubjectsHasOneCharacter) Model(m *dao.CharacterSubjects) *characterSubjectsHasOneCharacterTx { return &characterSubjectsHasOneCharacterTx{a.db.Model(m).Association(a.Name())} } @@ -237,6 +242,11 @@ func (a characterSubjectsHasOneSubject) WithContext(ctx context.Context) *charac return &a } +func (a characterSubjectsHasOneSubject) Session(session *gorm.Session) *characterSubjectsHasOneSubject { + a.db = a.db.Session(session) + return &a +} + func (a characterSubjectsHasOneSubject) Model(m *dao.CharacterSubjects) *characterSubjectsHasOneSubjectTx { return &characterSubjectsHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_episodes.gen.go b/dal/query/chii_episodes.gen.go index aec6d589c..30da00afc 100644 --- a/dal/query/chii_episodes.gen.go +++ b/dal/query/chii_episodes.gen.go @@ -200,6 +200,11 @@ func (a episodeBelongsToSubject) WithContext(ctx context.Context) *episodeBelong return &a } +func (a episodeBelongsToSubject) Session(session *gorm.Session) *episodeBelongsToSubject { + a.db = a.db.Session(session) + return &a +} + func (a episodeBelongsToSubject) Model(m *dao.Episode) *episodeBelongsToSubjectTx { return &episodeBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_index_related.gen.go b/dal/query/chii_index_related.gen.go index 088ba04f2..66a515ffa 100644 --- a/dal/query/chii_index_related.gen.go +++ b/dal/query/chii_index_related.gen.go @@ -162,6 +162,11 @@ func (a indexSubjectBelongsToSubject) WithContext(ctx context.Context) *indexSub return &a } +func (a indexSubjectBelongsToSubject) Session(session *gorm.Session) *indexSubjectBelongsToSubject { + a.db = a.db.Session(session) + return &a +} + func (a indexSubjectBelongsToSubject) Model(m *dao.IndexSubject) *indexSubjectBelongsToSubjectTx { return &indexSubjectBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index 417b3a295..b98944cae 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -187,6 +187,11 @@ func (a memberHasOneFields) WithContext(ctx context.Context) *memberHasOneFields return &a } +func (a memberHasOneFields) Session(session *gorm.Session) *memberHasOneFields { + a.db = a.db.Session(session) + return &a +} + func (a memberHasOneFields) Model(m *dao.Member) *memberHasOneFieldsTx { return &memberHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_person_cs_index.gen.go b/dal/query/chii_person_cs_index.gen.go index 778c1811c..79795f417 100644 --- a/dal/query/chii_person_cs_index.gen.go +++ b/dal/query/chii_person_cs_index.gen.go @@ -171,6 +171,11 @@ func (a personSubjectsHasOneSubject) WithContext(ctx context.Context) *personSub return &a } +func (a personSubjectsHasOneSubject) Session(session *gorm.Session) *personSubjectsHasOneSubject { + a.db = a.db.Session(session) + return &a +} + func (a personSubjectsHasOneSubject) Model(m *dao.PersonSubjects) *personSubjectsHasOneSubjectTx { return &personSubjectsHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } @@ -241,6 +246,11 @@ func (a personSubjectsHasOnePerson) WithContext(ctx context.Context) *personSubj return &a } +func (a personSubjectsHasOnePerson) Session(session *gorm.Session) *personSubjectsHasOnePerson { + a.db = a.db.Session(session) + return &a +} + func (a personSubjectsHasOnePerson) Model(m *dao.PersonSubjects) *personSubjectsHasOnePersonTx { return &personSubjectsHasOnePersonTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_persons.gen.go b/dal/query/chii_persons.gen.go index 083c175b6..501aae12f 100644 --- a/dal/query/chii_persons.gen.go +++ b/dal/query/chii_persons.gen.go @@ -211,6 +211,11 @@ func (a personHasOneFields) WithContext(ctx context.Context) *personHasOneFields return &a } +func (a personHasOneFields) Session(session *gorm.Session) *personHasOneFields { + a.db = a.db.Session(session) + return &a +} + func (a personHasOneFields) Model(m *dao.Person) *personHasOneFieldsTx { return &personHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_subject_relations.gen.go b/dal/query/chii_subject_relations.gen.go index 3668403dd..9f5813e37 100644 --- a/dal/query/chii_subject_relations.gen.go +++ b/dal/query/chii_subject_relations.gen.go @@ -158,6 +158,11 @@ func (a subjectRelationHasOneSubject) WithContext(ctx context.Context) *subjectR return &a } +func (a subjectRelationHasOneSubject) Session(session *gorm.Session) *subjectRelationHasOneSubject { + a.db = a.db.Session(session) + return &a +} + func (a subjectRelationHasOneSubject) Model(m *dao.SubjectRelation) *subjectRelationHasOneSubjectTx { return &subjectRelationHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_subject_revisions.gen.go b/dal/query/chii_subject_revisions.gen.go index 9b07a96bb..9e0aa5a60 100644 --- a/dal/query/chii_subject_revisions.gen.go +++ b/dal/query/chii_subject_revisions.gen.go @@ -186,6 +186,11 @@ func (a subjectRevisionBelongsToSubject) WithContext(ctx context.Context) *subje return &a } +func (a subjectRevisionBelongsToSubject) Session(session *gorm.Session) *subjectRevisionBelongsToSubject { + a.db = a.db.Session(session) + return &a +} + func (a subjectRevisionBelongsToSubject) Model(m *dao.SubjectRevision) *subjectRevisionBelongsToSubjectTx { return &subjectRevisionBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/chii_subjects.gen.go b/dal/query/chii_subjects.gen.go index 4076cbb44..bf9c71402 100644 --- a/dal/query/chii_subjects.gen.go +++ b/dal/query/chii_subjects.gen.go @@ -219,6 +219,11 @@ func (a subjectHasOneFields) WithContext(ctx context.Context) *subjectHasOneFiel return &a } +func (a subjectHasOneFields) Session(session *gorm.Session) *subjectHasOneFields { + a.db = a.db.Session(session) + return &a +} + func (a subjectHasOneFields) Model(m *dao.Subject) *subjectHasOneFieldsTx { return &subjectHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } diff --git a/dal/query/gen.go b/dal/query/gen.go index eb46eb9af..7d1e11c49 100644 --- a/dal/query/gen.go +++ b/dal/query/gen.go @@ -217,10 +217,14 @@ func (q *Query) Transaction(fc func(tx *Query) error, opts ...*sql.TxOptions) er } func (q *Query) Begin(opts ...*sql.TxOptions) *QueryTx { - return &QueryTx{q.clone(q.db.Begin(opts...))} + tx := q.db.Begin(opts...) + return &QueryTx{Query: q.clone(tx), Error: tx.Error} } -type QueryTx struct{ *Query } +type QueryTx struct { + *Query + Error error +} func (q *QueryTx) Commit() error { return q.db.Commit().Error diff --git a/go.mod b/go.mod index 8888878e7..6ddb8eb79 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.0 - gorm.io/gen v0.3.21 + gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 gorm.io/gorm v1.25.0 gorm.io/plugin/dbresolver v1.4.1 ) @@ -78,7 +78,7 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/pierrec/lz4/v4 v4.1.15 // indirect + github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect @@ -100,17 +100,17 @@ require ( go.uber.org/dig v1.16.1 // indirect go.uber.org/multierr v1.8.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/mod v0.9.0 // indirect + golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/sys v0.7.0 // indirect golang.org/x/term v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.7.0 // indirect + golang.org/x/tools v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gorm.io/datatypes v1.0.7 // indirect - gorm.io/hints v1.1.0 // indirect + gorm.io/datatypes v1.2.0 // indirect + gorm.io/hints v1.1.1 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index 6559915d7..7985f73e0 100644 --- a/go.sum +++ b/go.sum @@ -36,15 +36,11 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= -github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= @@ -95,15 +91,12 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27wIbmOGUs7RIbVgPEjb31ehTVniDwPGXyMxm5U= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -113,12 +106,9 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU= -github.com/denisenkom/go-mssqldb v0.12.2 h1:1OcPn5GBIobjWNd+8yjfHNIaFX14B1pWI3F9HZy5KXw= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= @@ -148,7 +138,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= @@ -170,7 +159,6 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -181,10 +169,7 @@ github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keL github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= -github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+wXQnTPR4KqTKDgJukSZ6amVRtWMPEjE6sQoK8= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -291,61 +276,15 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= -github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= -github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= -github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= -github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= -github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= -github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= -github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.11.0/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= -github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys= -github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= -github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= -github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= -github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= -github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= -github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A= -github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= -github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.2.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= -github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= -github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= -github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= -github.com/jackc/pgtype v1.10.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= -github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w= -github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= -github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= -github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= -github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= -github.com/jackc/pgx/v4 v4.15.0/go.mod h1:D/zyOyXiaM1TmVWnOM18p0xdDtdakRBa0RsVGI3U3bw= -github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E= -github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= github.com/jarcoal/httpmock v1.3.0 h1:2RJ8GP0IIaWwcC9Fp2BmVi8Kog3v2Hn7VXM3fTd+nuc= github.com/jarcoal/httpmock v1.3.0/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -378,14 +317,12 @@ github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHU github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M= @@ -394,10 +331,6 @@ github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8 github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/leodido/go-urn v1.2.2 h1:7z68G0FCGvDk646jz1AelTYNYWrTNm0bEcFAo147wt4= github.com/leodido/go-urn v1.2.2/go.mod h1:kUaIbLZWttglzwNuG0pgsh5vuV6u2YcGBYz1hIPjtOQ= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= @@ -406,32 +339,26 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -448,7 +375,6 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -484,9 +410,9 @@ github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -535,10 +461,7 @@ github.com/redis/go-redis/v9 v9.0.3/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDO github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= -github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -548,16 +471,12 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/kafka-go v0.4.39 h1:75smaomhvkYRwtuOwqLsdhgCG30B82NsbdkdDfFbvrw= github.com/segmentio/kafka-go v0.4.39/go.mod h1:T0MLgygYvmqmBvC+s8aCcbVNfJN4znVne5j0Pzowp/Q= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -584,7 +503,6 @@ github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3 github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -635,7 +553,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd/api/v3 v3.5.8 h1:Zf44zJszoU7zRV0X/nStPenegNXoFDWcB/MwrJbA+L4= @@ -653,9 +570,7 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -666,11 +581,9 @@ go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= @@ -678,18 +591,13 @@ go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= @@ -732,8 +640,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -773,7 +681,6 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -812,9 +719,7 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -822,16 +727,13 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -869,7 +771,6 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.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-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -902,14 +803,12 @@ golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -950,10 +849,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1073,7 +970,6 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -1093,32 +989,25 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/datatypes v1.0.7 h1:8NhJN4+annFjwV1WufDhFiPjdUvV1lSGUdg1UCjQIWY= -gorm.io/datatypes v1.0.7/go.mod h1:l9qkCuy0CdzDEop9HKUdcnC9gHC2sRlaFtHkTzsZRqg= -gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= +gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= +gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM= gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo= -gorm.io/driver/postgres v1.3.4/go.mod h1:y0vEuInFKJtijuSGu9e5bs5hzzSzPK+LancpKpvbRBw= -gorm.io/driver/postgres v1.4.1 h1:DutsKq2LK2Ag65q/+VygWth0/L4GAVOp+sCtg6WzZjs= -gorm.io/driver/sqlite v1.1.6/go.mod h1:W8LmC/6UvVbHKah0+QOC7Ja66EaZXHwUTjgXY8YNWX8= -gorm.io/driver/sqlite v1.3.1/go.mod h1:wJx0hJspfycZ6myN38x1O/AqLtNS6c5o9TndewFbELg= -gorm.io/driver/sqlite v1.4.1 h1:ThZ3dRIbTbWGvaMHSVjgf0sb6SRJMNRyQAwfLo25+cM= -gorm.io/driver/sqlserver v1.3.1/go.mod h1:w25Vrx2BG+CJNUu/xKbFhaKlGxT/nzRkhWCCoptX8tQ= -gorm.io/driver/sqlserver v1.4.0 h1:3fjbsNkr/YqocSBW5CP16Lq6+APjRrWMzu7NbkXr9QU= -gorm.io/gen v0.3.21 h1:t8329wT4tW1ZZWOm7vn4LV6OIrz8a5zCg+p78ezt+rA= -gorm.io/gen v0.3.21/go.mod h1:aWgvoKdG9f8Des4TegSa0N5a+gwhGsFo0JJMaLwokvk= -gorm.io/gorm v1.21.15/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -gorm.io/gorm v1.22.2/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0= -gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.23.6/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= +gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= +gorm.io/driver/sqlite v1.4.2/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= +gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU= +gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= +gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 h1:1zJnNjxhhF2xcfdBnEVa1FDLKLxiqj+0q4nRtJO5G0Q= +gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7/go.mod h1:dQcELeF/7Kf82M6AQF+O/rKT5r1sjv49TlGz0cerPn4= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= +gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/hints v1.1.0 h1:Lp4z3rxREufSdxn4qmkK3TLDltrM10FLTHiuqwDPvXw= -gorm.io/hints v1.1.0/go.mod h1:lKQ0JjySsPBj3uslFzY3JhYDtqEwzm+G1hv8rWujB6Y= +gorm.io/hints v1.1.1 h1:NPampLxQujY+277452rt4yqtg6JmzNZ1jA2olk0eFXw= +gorm.io/hints v1.1.1/go.mod h1:zdwzfFqvBWGbpuKiAhLFOSGSpeD3/VsRgkXR9Y7Z3cs= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From eca26716e281162db33abb078a482c21ecf4a3ae Mon Sep 17 00:00:00 2001 From: Ronnie Wang Date: Sat, 29 Apr 2023 08:27:49 +0800 Subject: [PATCH 014/888] fix: wish collections are not allowed to have rate (#339) --- ctrl/update_subject_collection.go | 4 ++-- .../collections/domain/collection/subject.go | 11 ++++++++--- internal/collections/infra/mysql_repo_test.go | 17 +++++++++++++++-- .../user/patch_subject_collection_test.go | 2 +- .../user/post_subject_collection_test.go | 2 +- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index 94ce608b8..49f813673 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -91,8 +91,8 @@ func (ctl Ctrl) UpdateSubjectCollection( s.UpdateType(req.Type.Value) } - if req.Rate.Set { - if e := s.UpdateRate(req.Rate.Value); e != nil { + if req.Rate.Set && req.Type.Set { + if e := s.UpdateRate(req.Rate.Value, req.Type.Value); e != nil { return nil, e } } diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 8317e5f31..b8f6d1445 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -144,12 +144,17 @@ func (s *Subject) UpdateType(r SubjectCollection) { s.typeID = r } -func (s *Subject) UpdateRate(r uint8) error { - if r > 11 { +func (s *Subject) UpdateRate(r uint8, state SubjectCollection) error { + if r > 10 { return errgo.Wrap(gerr.ErrInput, "rate overflow") } - s.rate = r + if state == SubjectCollectionWish { + s.rate = 0 + } else { + s.rate = r + } + return nil } diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index 854c716b4..3db3684ad 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -241,7 +241,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) - require.NoError(t, s.UpdateRate(1)) + require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) s.UpdateType(collection.SubjectCollectionDropped) return s, nil }) @@ -260,6 +260,19 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.Zero(t, r.DoneTime) require.Zero(t, r.OnHoldTime) + // When update to wish state + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionWish)) + s.UpdateType(collection.SubjectCollectionWish) + return s, nil + }) + require.NoError(t, err) + + r, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + require.NoError(t, err) + require.Equal(t, uint8(0), r.Rate) + // 确认不会影响到其他用户或 subject r, err = table.WithContext(context.Background()).Where(table.SubjectID.Eq(sid+1), table.UserID.Eq(uid)).Take() require.NoError(t, err) @@ -305,7 +318,7 @@ func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { err = repo.UpdateSubjectCollection(context.Background(), uid, sid, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) - require.NoError(t, s.UpdateRate(1)) + require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) s.UpdateType(collection.SubjectCollectionDropped) return s, nil }) diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 588ea5d6e..967e1b718 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -72,7 +72,7 @@ func TestUser_PatchSubjectCollection(t *testing.T) { Header(echo.HeaderAuthorization, "Bearer t"). BodyJSON(map[string]any{ "comment": "1 test_content 2", - "type": 1, + "type": 2, "private": true, "rate": 8, "tags": []string{"q", "vv"}, diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index 86ddb8eb3..06ecb0e71 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -71,7 +71,7 @@ func TestUser_PostSubjectCollection(t *testing.T) { Header(echo.HeaderAuthorization, "Bearer t"). BodyJSON(map[string]any{ "comment": "1 test_content 2", - "type": 1, + "type": 2, "private": true, "rate": 8, "tags": []string{"q", "vv"}, From 524b9392e3ff868a8db322e26bcafde5e10f3649 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 08:07:57 +0800 Subject: [PATCH 015/888] build(deps): update module github.com/go-playground/validator/v10 to v10.13.0 (#342) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 6ddb8eb79..ef2268f45 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.12.0 + github.com/go-playground/validator/v10 v10.13.0 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 @@ -71,7 +71,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/labstack/gommon v0.4.0 // indirect - github.com/leodido/go-urn v1.2.2 // indirect + github.com/leodido/go-urn v1.2.3 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect diff --git a/go.sum b/go.sum index 7985f73e0..00ec3f729 100644 --- a/go.sum +++ b/go.sum @@ -146,8 +146,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.12.0 h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI= -github.com/go-playground/validator/v10 v10.12.0/go.mod h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA= +github.com/go-playground/validator/v10 v10.13.0 h1:cFRQdfaSMCOSfGCCLB20MHvuoHb/s5G8L5pu2ppK5AQ= +github.com/go-playground/validator/v10 v10.13.0/go.mod h1:dwu7+CG8/CtBiJFZDz4e+5Upb6OLw04gtBYw0mcG/z4= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= @@ -329,8 +329,8 @@ github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= -github.com/leodido/go-urn v1.2.2 h1:7z68G0FCGvDk646jz1AelTYNYWrTNm0bEcFAo147wt4= -github.com/leodido/go-urn v1.2.2/go.mod h1:kUaIbLZWttglzwNuG0pgsh5vuV6u2YcGBYz1hIPjtOQ= +github.com/leodido/go-urn v1.2.3 h1:6BE2vPT0lqoz3fmOesHZiaiFh7889ssCo2GMvLCfiuA= +github.com/leodido/go-urn v1.2.3/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= @@ -466,7 +466,6 @@ github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/rwtodd/Go.Sed v0.0.0-20210816025313-55464686f9ef/go.mod h1:8AEUvGVi2uQ5b24BIhcr0GCcpd/RNAFWaN2CJFrWIIQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= From 27f02e5a30a8b256cf7810aac4bbdb3deaed075e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 08:52:50 +0800 Subject: [PATCH 016/888] build(deps): update module github.com/aws/aws-sdk-go to v1.44.253 (#341) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ef2268f45..fadaa0d85 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.4 - github.com/aws/aws-sdk-go v1.44.250 + github.com/aws/aws-sdk-go v1.44.253 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 00ec3f729..6caa2f366 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbK github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.250 h1:IuGUO2Hafv/b0yYKI5UPLQShYDx50BCIQhab/H1sX2M= -github.com/aws/aws-sdk-go v1.44.250/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.253 h1:iqDd0okcH4ShfFexz2zzf4VmeDFf6NOMm07pHnEb8iY= +github.com/aws/aws-sdk-go v1.44.253/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 0cf8c589e466638742615fe25e8e730a616ffd38 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 3 May 2023 18:49:54 +0800 Subject: [PATCH 017/888] bump: 0.32.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf14d6975..31f5f7501 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.32.8", + "version": "0.32.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.32.8", + "version": "0.32.9", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index b8735bcf4..33d3a7271 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.32.8", + "version": "0.32.9", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 4c8b340f6c4094666241c0fde3bf2e33e238f20e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 3 May 2023 18:52:07 +0800 Subject: [PATCH 018/888] bump: 0.33.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31f5f7501..e6c779a20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.32.9", + "version": "0.33.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.32.9", + "version": "0.33.0", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index 33d3a7271..a168edb7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.32.9", + "version": "0.33.0", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 5c177e415f6b50827019ae9017725d51caea7882 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 3 May 2023 20:13:27 +0800 Subject: [PATCH 019/888] fix: index/indexSubject table has soft delete (#344) --- cmd/gen/gorm/main.go | 14 +++++++++++++ dal/dao/chii_index.gen.go | 28 ++++++++++++++----------- dal/dao/chii_index_related.gen.go | 23 ++++++++++++-------- dal/query/chii_index.gen.go | 8 +++---- dal/query/chii_index_related.gen.go | 6 +++++- go.mod | 1 + go.sum | 7 +++++++ internal/index/mysql_repository.go | 13 ++++-------- internal/index/mysql_repository_test.go | 8 ------- internal/model/index.go | 1 - openapi/v0.yaml | 2 ++ web/handler/index/index.go | 1 - web/res/index.go | 5 +++-- 13 files changed, 70 insertions(+), 47 deletions(-) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 76bf90b8b..731a12024 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -76,6 +76,7 @@ func main() { g.WithImportPkgPath( "github.com/bangumi/server/internal/model", "github.com/bangumi/server/dal/utiltype", + "gorm.io/plugin/soft_delete", ) g.WithJSONTagNameStrategy(func(_ string) string { return "" @@ -221,6 +222,13 @@ func main() { gen.FieldRename("idx_replies", "ReplyCount"), gen.FieldRename("idx_collects", "CollectCount"), gen.FieldRename("idx_subject_total", "SubjectCount"), + + gen.FieldType("idx_ban", "soft_delete.DeletedAt"), + gen.FieldRename("idx_ban", "Deleted"), + gen.FieldGORMTag("idx_ban", func(tag field.GormTag) field.GormTag { + tag["softDelete"] = "flag" + return tag + }), )) g.ApplyBasic(g.GenerateModelAs("chii_index_collects", "IndexCollect", @@ -405,6 +413,12 @@ func main() { gen.FieldRename("idx_rlt_sid", "SubjectID"), gen.FieldRename("idx_rlt_type", "SubjectType"), gen.FieldRename("idx_rlt_dateline", "CreatedTime"), + gen.FieldType("idx_rlt_ban", "soft_delete.DeletedAt"), + gen.FieldRename("idx_rlt_ban", "Deleted"), + gen.FieldGORMTag("idx_rlt_ban", func(tag field.GormTag) field.GormTag { + tag["softDelete"] = "flag" + return tag + }), )) g.ApplyBasic(g.GenerateModelAs("chii_rev_text", "RevisionText", diff --git a/dal/dao/chii_index.gen.go b/dal/dao/chii_index.gen.go index ebb54bcdd..97daf8a77 100644 --- a/dal/dao/chii_index.gen.go +++ b/dal/dao/chii_index.gen.go @@ -4,22 +4,26 @@ package dao +import ( + "gorm.io/plugin/soft_delete" +) + const TableNameIndex = "chii_index" // Index mapped from table type Index struct { - ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id"` // 自动id - Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null"` - Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题"` // 标题 - Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介"` // 简介 - ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数"` // 回复数 - SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数"` // 内含条目总数 - CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数"` // 收藏数 - Stats string `gorm:"column:idx_stats;type:mediumtext;not null"` - CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间"` // 创建时间 - UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null"` - CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID"` // 创建人UID - Ban bool `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id"` // 自动id + Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null"` + Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题"` // 标题 + Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介"` // 简介 + ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数"` // 回复数 + SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数"` // 内含条目总数 + CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数"` // 收藏数 + Stats string `gorm:"column:idx_stats;type:mediumtext;not null"` + CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间"` // 创建时间 + UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null"` + CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID"` // 创建人UID + Deleted soft_delete.DeletedAt `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null;softDelete:flag"` } // TableName Index's table name diff --git a/dal/dao/chii_index_related.gen.go b/dal/dao/chii_index_related.gen.go index 627c59753..eda7ee19c 100644 --- a/dal/dao/chii_index_related.gen.go +++ b/dal/dao/chii_index_related.gen.go @@ -4,19 +4,24 @@ package dao +import ( + "gorm.io/plugin/soft_delete" +) + const TableNameIndexSubject = "chii_index_related" // IndexSubject mapped from table type IndexSubject struct { - ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null"` - IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null;comment:关联目录"` // 关联目录 - SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型"` // 关联条目类型 - SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID"` // 关联条目ID - Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null"` - Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null"` - CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null"` - Subject Subject `gorm:"foreignKey:idx_rlt_sid;references:subject_id" json:"subject"` + ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` + Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null"` + IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null;comment:关联目录"` // 关联目录 + SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型"` // 关联条目类型 + SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID"` // 关联条目ID + Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null"` + Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null"` + CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null"` + Deleted soft_delete.DeletedAt `gorm:"column:idx_rlt_ban;type:tinyint(1) unsigned;not null;softDelete:flag"` + Subject Subject `gorm:"foreignKey:idx_rlt_sid;references:subject_id" json:"subject"` } // TableName IndexSubject's table name diff --git a/dal/query/chii_index.gen.go b/dal/query/chii_index.gen.go index 6745d1fab..760aad9ab 100644 --- a/dal/query/chii_index.gen.go +++ b/dal/query/chii_index.gen.go @@ -38,7 +38,7 @@ func newIndex(db *gorm.DB, opts ...gen.DOOption) index { _index.CreatedTime = field.NewInt32(tableName, "idx_dateline") _index.UpdatedTime = field.NewUint32(tableName, "idx_lasttouch") _index.CreatorID = field.NewUint32(tableName, "idx_uid") - _index.Ban = field.NewBool(tableName, "idx_ban") + _index.Deleted = field.NewField(tableName, "idx_ban") _index.fillFieldMap() @@ -60,7 +60,7 @@ type index struct { CreatedTime field.Int32 // 创建时间 UpdatedTime field.Uint32 CreatorID field.Uint32 // 创建人UID - Ban field.Bool + Deleted field.Field fieldMap map[string]field.Expr } @@ -88,7 +88,7 @@ func (i *index) updateTableName(table string) *index { i.CreatedTime = field.NewInt32(table, "idx_dateline") i.UpdatedTime = field.NewUint32(table, "idx_lasttouch") i.CreatorID = field.NewUint32(table, "idx_uid") - i.Ban = field.NewBool(table, "idx_ban") + i.Deleted = field.NewField(table, "idx_ban") i.fillFieldMap() @@ -123,7 +123,7 @@ func (i *index) fillFieldMap() { i.fieldMap["idx_dateline"] = i.CreatedTime i.fieldMap["idx_lasttouch"] = i.UpdatedTime i.fieldMap["idx_uid"] = i.CreatorID - i.fieldMap["idx_ban"] = i.Ban + i.fieldMap["idx_ban"] = i.Deleted } func (i index) clone(db *gorm.DB) index { diff --git a/dal/query/chii_index_related.gen.go b/dal/query/chii_index_related.gen.go index 66a515ffa..92057431a 100644 --- a/dal/query/chii_index_related.gen.go +++ b/dal/query/chii_index_related.gen.go @@ -35,6 +35,7 @@ func newIndexSubject(db *gorm.DB, opts ...gen.DOOption) indexSubject { _indexSubject.Order = field.NewUint32(tableName, "idx_rlt_order") _indexSubject.Comment = field.NewString(tableName, "idx_rlt_comment") _indexSubject.CreatedTime = field.NewUint32(tableName, "idx_rlt_dateline") + _indexSubject.Deleted = field.NewField(tableName, "idx_rlt_ban") _indexSubject.Subject = indexSubjectBelongsToSubject{ db: db.Session(&gorm.Session{}), @@ -63,6 +64,7 @@ type indexSubject struct { Order field.Uint32 Comment field.String CreatedTime field.Uint32 + Deleted field.Field Subject indexSubjectBelongsToSubject fieldMap map[string]field.Expr @@ -88,6 +90,7 @@ func (i *indexSubject) updateTableName(table string) *indexSubject { i.Order = field.NewUint32(table, "idx_rlt_order") i.Comment = field.NewString(table, "idx_rlt_comment") i.CreatedTime = field.NewUint32(table, "idx_rlt_dateline") + i.Deleted = field.NewField(table, "idx_rlt_ban") i.fillFieldMap() @@ -112,7 +115,7 @@ func (i *indexSubject) GetFieldByName(fieldName string) (field.OrderExpr, bool) } func (i *indexSubject) fillFieldMap() { - i.fieldMap = make(map[string]field.Expr, 9) + i.fieldMap = make(map[string]field.Expr, 10) i.fieldMap["idx_rlt_id"] = i.ID i.fieldMap["idx_rlt_cat"] = i.Cat i.fieldMap["idx_rlt_rid"] = i.IndexID @@ -121,6 +124,7 @@ func (i *indexSubject) fillFieldMap() { i.fieldMap["idx_rlt_order"] = i.Order i.fieldMap["idx_rlt_comment"] = i.Comment i.fieldMap["idx_rlt_dateline"] = i.CreatedTime + i.fieldMap["idx_rlt_ban"] = i.Deleted } diff --git a/go.mod b/go.mod index fadaa0d85..3f7dfce80 100644 --- a/go.mod +++ b/go.mod @@ -44,6 +44,7 @@ require ( gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 gorm.io/gorm v1.25.0 gorm.io/plugin/dbresolver v1.4.1 + gorm.io/plugin/soft_delete v1.2.1 ) require ( diff --git a/go.sum b/go.sum index 6caa2f366..04c5bbf11 100644 --- a/go.sum +++ b/go.sum @@ -285,6 +285,7 @@ github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -350,6 +351,7 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -994,11 +996,14 @@ gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10 gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM= gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= +gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.4.2/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 h1:1zJnNjxhhF2xcfdBnEVa1FDLKLxiqj+0q4nRtJO5G0Q= gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7/go.mod h1:dQcELeF/7Kf82M6AQF+O/rKT5r1sjv49TlGz0cerPn4= +gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= @@ -1009,6 +1014,8 @@ gorm.io/hints v1.1.1 h1:NPampLxQujY+277452rt4yqtg6JmzNZ1jA2olk0eFXw= gorm.io/hints v1.1.1/go.mod h1:zdwzfFqvBWGbpuKiAhLFOSGSpeD3/VsRgkXR9Y7Z3cs= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc= +gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= +gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index bf618b38d..22eddcb45 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -53,8 +53,7 @@ func (r mysqlRepo) isNsfw(ctx context.Context, id model.IndexID) (bool, error) { } func (r mysqlRepo) Get(ctx context.Context, id model.IndexID) (model.Index, error) { - i, err := r.q.Index.WithContext(ctx). - Where(r.q.Index.ID.Eq(id), r.q.Index.Ban.Is(false)).Take() + i, err := r.q.Index.WithContext(ctx).Where(r.q.Index.ID.Eq(id)).Take() if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return model.Index{}, gerr.ErrNotFound @@ -97,7 +96,8 @@ func (r mysqlRepo) Delete(ctx context.Context, id model.IndexID) error { if err = r.WrapResult(result, err, "failed to delete index"); err != nil { return err } - result, err = tx.IndexSubject.WithContext(ctx).Where(tx.IndexSubject.IndexID.Eq(id)).Delete() + result, err = tx.IndexSubject.WithContext(ctx). + Where(tx.IndexSubject.IndexID.Eq(id)).Delete() return r.WrapResult(result, err, "failed to delete subjects in the index") }) } @@ -221,10 +221,7 @@ func (r mysqlRepo) updateIndexSubject( ) error { result, err := r.q.IndexSubject.WithContext(ctx). Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.SubjectID.Eq(subjectID)). - Updates(dao.IndexSubject{ - Order: sort, - Comment: comment, - }) + UpdateColumnSimple(r.q.IndexSubject.Order.Value(sort), r.q.IndexSubject.Comment.Value(comment)) return r.WrapResult(result, err, "failed to update index subject") } @@ -335,7 +332,6 @@ func daoToModel(index *dao.Index) *model.Index { Total: index.SubjectCount, Comments: index.ReplyCount, Collects: index.CollectCount, - Ban: index.Ban, NSFW: false, // check nsfw outSubjectIDe of this function CreatedAt: time.Unix(int64(index.CreatedTime), 0), UpdatedAt: time.Unix(int64(index.UpdatedTime), 0), @@ -349,7 +345,6 @@ func modelToDAO(index *model.Index) *dao.Index { Title: index.Title, Desc: index.Description, CreatorID: index.CreatorID, - Ban: index.Ban, CreatedTime: int32(index.CreatedAt.Unix()), UpdatedTime: uint32(index.UpdatedAt.Unix()), } diff --git a/internal/index/mysql_repository_test.go b/internal/index/mysql_repository_test.go index c87a29f44..2aef0a569 100644 --- a/internal/index/mysql_repository_test.go +++ b/internal/index/mysql_repository_test.go @@ -83,7 +83,6 @@ func TestMysqlRepo_NewIndex(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } err := repo.New(context.Background(), index) @@ -118,7 +117,6 @@ func TestMysqlRepo_UpdateIndex(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } err := repo.New(ctx, index) @@ -151,7 +149,6 @@ func TestMysqlRepo_DeleteIndex(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } _ = repo.New(context.Background(), index) @@ -184,7 +181,6 @@ func TestMysqlRepo_DeleteIndex2(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } @@ -237,7 +233,6 @@ func TestMysqlRepo_AddOrUpdateIndexSubject(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } @@ -288,7 +283,6 @@ func TestMysqlRepo_DeleteIndexSubject(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } @@ -374,7 +368,6 @@ func TestMysqlRepo_UpdateSubjectInfo(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } ctx := context.Background() @@ -415,7 +408,6 @@ func TestMysqlRepo_AddExists(t *testing.T) { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } ctx := context.Background() diff --git a/internal/model/index.go b/internal/model/index.go index 7642c2f65..a562a0463 100644 --- a/internal/model/index.go +++ b/internal/model/index.go @@ -26,6 +26,5 @@ type Index struct { ID IndexID Comments uint32 Collects uint32 - Ban bool NSFW bool } diff --git a/openapi/v0.yaml b/openapi/v0.yaml index bdf32f6e7..dc2e6e584 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -2167,7 +2167,9 @@ components: "$ref": "#/components/schemas/Creator" ban: title: Ban + deprecated: true type: boolean + description: deprecated, always false. nsfw: title: 目录是否包括 nsfw 条目 type: boolean diff --git a/web/handler/index/index.go b/web/handler/index/index.go index 8bfc2fdf3..5f381df61 100644 --- a/web/handler/index/index.go +++ b/web/handler/index/index.go @@ -178,7 +178,6 @@ func (h Handler) NewIndex(c echo.Context) error { Total: 0, Comments: 0, Collects: 0, - Ban: false, NSFW: false, } ctx := c.Request().Context() diff --git a/web/res/index.go b/web/res/index.go index 850741ce2..395d0f51a 100644 --- a/web/res/index.go +++ b/web/res/index.go @@ -30,8 +30,10 @@ type Index struct { Total uint32 `json:"total"` ID model.IndexID `json:"id"` Stat Stat `json:"stat"` - Ban bool `json:"ban"` NSFW bool `json:"nsfw" doc:"if index contains any nsfw subjects"` + + // Deprecated: this will always be false. + Ban bool `json:"ban"` } func IndexModelToResponse(i *model.Index, u user.User) Index { @@ -50,7 +52,6 @@ func IndexModelToResponse(i *model.Index, u user.User) Index { Comments: i.Comments, Collects: i.Collects, }, - Ban: i.Ban, NSFW: i.NSFW, } } From 04fd287a23a33a4c0fd702eb446210203e354f03 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 3 May 2023 20:13:44 +0800 Subject: [PATCH 020/888] bump: 0.33.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e6c779a20..1352da0a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.0", + "version": "0.33.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.0", + "version": "0.33.1", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index a168edb7a..e6339c816 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.0", + "version": "0.33.1", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 1c4ea0636f4e26d230d3fbb78f1dac96e5b50bff Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 3 May 2023 20:17:50 +0800 Subject: [PATCH 021/888] chore: pin base docker image --- .github/renovate.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/renovate.json b/.github/renovate.json index 792acd27d..fb5db0a98 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -5,7 +5,16 @@ "separateMajorMinor": true, "separateMultipleMajor": true, "postUpdateOptions": ["gomodTidy1.17"], + "dockerfile": { + "fileMatch": [".*dockerfile$"], + "enabled": true + }, "packageRules": [ + { + "matchDatasources": ["docker"], + "matchPackagePrefixes": ["gcr.io/"], + "pinDigests": true + }, { "matchManagers": ["docker-compose"], "matchPackageNames": ["mysql"], From 96522df838237ea12bf03d5e58b7c3611a8b070d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 May 2023 20:19:54 +0800 Subject: [PATCH 022/888] chore(deps): pin gcr.io/distroless/static docker tag to 7198a35 (#345) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 9af79d840..314be4f99 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static +FROM gcr.io/distroless/static@sha256:7198a357ff3a8ef750b041324873960cf2153c11cc50abb9d8d5f8bb089f6b4e ENTRYPOINT ["/app/chii.exe"] From df12bb6ded834f1ac94ef7224a1a3d6cd0801351 Mon Sep 17 00:00:00 2001 From: Hugh Liu Date: Tue, 16 May 2023 11:03:04 +1000 Subject: [PATCH 023/888] fix: limit 0 return nothing (#348) --- ctrl/update_episode_progress.go | 7 ++++++- internal/episode/mysql_repository_test.go | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ctrl/update_episode_progress.go b/ctrl/update_episode_progress.go index 63f7d5290..a7054f9ac 100644 --- a/ctrl/update_episode_progress.go +++ b/ctrl/update_episode_progress.go @@ -51,7 +51,12 @@ func (ctl Ctrl) UpdateEpisodesCollection( ctl.log.Info("try to update collection info", zap.Uint32("subject", subjectID), log.User(u.ID), zap.Reflect("episodes", episodeIDs)) - episodes, err := ctl.episode.List(ctx, subjectID, episode.Filter{}, 0, 0) + /* + GORM v1.25.0 起修复了一个 bug,但是被当成 feature 使用了。在该版本之前,Limit 0 认为不是合法的 Limit,会被从 SQL 语句中忽略 + see PR: go-gorm/gorm/pull/6191 + 因此这里需要传入 -1 作为 Limit,从而返回全部数据。GORM 会对负数过过滤,不会出现在最终的 SQL 中。 + */ + episodes, err := ctl.episode.List(ctx, subjectID, episode.Filter{}, -1, 0) if err != nil { return errgo.Wrap(err, "episodeRepo.List") } diff --git a/internal/episode/mysql_repository_test.go b/internal/episode/mysql_repository_test.go index 89acf772b..418d10a70 100644 --- a/internal/episode/mysql_repository_test.go +++ b/internal/episode/mysql_repository_test.go @@ -105,3 +105,19 @@ func TestMysqlRepo_List(t *testing.T) { require.Len(t, episodes, tc.len) } } + +func TestMysqlRepo_List_Limit(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + + nums := []int{-1, 0, 10, 22, 30, 100} + expected := []int{31, 0, 10, 22, 30, 31} + + for i, num := range nums { + episodes, err := repo.List(context.TODO(), 253, episode.Filter{}, num, 0) + require.NoError(t, err) + require.Len(t, episodes, expected[i]) + } +} From 6b881789358a90284fe12a8913599692362faf24 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 May 2023 09:04:38 +0800 Subject: [PATCH 024/888] bump: 0.33.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1352da0a9..5a396f2b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.1", + "version": "0.33.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.1", + "version": "0.33.2", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index e6339c816..eb6df9373 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.1", + "version": "0.33.2", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 5119da88238f6a195ea3d1b8688eca24b243e2e2 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 May 2023 12:14:45 +0800 Subject: [PATCH 025/888] chore: hide mock sub-tasks --- Taskfile.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index c8add619e..684861d3b 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -3,7 +3,9 @@ version: "3" dotenv: [".env", ".envrc"] includes: - mock: "./etc/mock.task.yaml" + mock: + taskfile: "./etc/mock.task.yaml" + internal: true tasks: default: From 7e7722d3139e9bba237995d6552d63b5dac5f596 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 May 2023 12:53:26 +0800 Subject: [PATCH 026/888] chore: remove mockery from gomod --- Taskfile.yaml | 7 +- etc/mock.task.yaml | 21 ++- go.mod | 19 +-- go.sum | 340 +------------------------------------ internal/pkg/tools/tool.go | 1 - 5 files changed, 25 insertions(+), 363 deletions(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index 684861d3b..5f8d4ed0b 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -73,7 +73,11 @@ tasks: TEST_MYSQL: "1" TEST_REDIS: "1" - # generated files + mod: + desc: "go mod tidy" + cmds: + - go mod tidy + gen: desc: Generate all generated GO files cmds: @@ -98,5 +102,6 @@ tasks: clean: cmds: + - rm -rf ./dist/ - rm -rf .task - rm -rf .bin diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index 1ea6b4822..a6c8b278d 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -1,10 +1,10 @@ version: "3" +vars: + BIN: "{{.ROOT_DIR}}/.bin" + tasks: all: - - task: gen - - gen: cmds: - task: session-manager - task: session-repo @@ -25,8 +25,21 @@ tasks: - task: NotificationRepo base-mock: + deps: + - "install:mockery" + cmds: + - './.bin/mockery{{exeExt}} --dir {{.SRC_DIR}} --filename "{{.MOCK_STRUCT|default .INTERFACE}}.go" --name "{{.INTERFACE | default "Manager"}}" --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter' + + install:mockery: + desc: Installs mockery + vars: + MOCKERY_VERSION: v2.26.1 + env: + GOBIN: "{{.BIN}}" + status: + - go version -m {{.BIN}}/mockery{{exeExt}} | grep "github.com/vektra/mockery" | grep "version={{.MOCKERY_VERSION}}" cmds: - - cmd: go run github.com/vektra/mockery/v2 --dir {{.SRC_DIR}} --filename '{{.MOCK_STRUCT|default .INTERFACE}}.go' --name '{{.INTERFACE | default "Manager"}}' --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter + - go install github.com/vektra/mockery/v2@{{.MOCKERY_VERSION}} session-repo: sources: diff --git a/go.mod b/go.mod index 3f7dfce80..7d3a5a122 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,6 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - github.com/vektra/mockery/v2 v2.26.1 go.etcd.io/etcd/client/v3 v3.5.8 go.uber.org/fx v1.19.2 go.uber.org/zap v1.24.0 @@ -52,7 +51,6 @@ require ( github.com/andybalholm/brotli v1.0.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chigopher/pathlib v0.13.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -61,10 +59,7 @@ require ( github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/iancoleman/strcase v0.2.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jinzhu/copier v0.3.5 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect @@ -73,25 +68,16 @@ require ( github.com/klauspost/compress v1.16.0 // indirect github.com/labstack/gommon v0.4.0 // indirect github.com/leodido/go-urn v1.2.3 // indirect - github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pierrec/lz4/v4 v4.1.17 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.42.0 // indirect github.com/prometheus/procfs v0.9.0 // indirect - github.com/rs/zerolog v1.29.0 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/viper v1.15.0 // indirect + github.com/rogpeppe/go-internal v1.6.1 // indirect github.com/stretchr/objx v0.5.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect @@ -104,13 +90,10 @@ require ( golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.9.0 // indirect golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.1 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 04c5bbf11..11b920c36 100644 --- a/go.sum +++ b/go.sum @@ -1,45 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= @@ -81,16 +44,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chigopher/pathlib v0.13.0 h1:9AYqYGR+JaYJtZfTSsC+Wvz7CBd2jcZFb4fva7Z4r+4= -github.com/chigopher/pathlib v0.13.0/go.mod h1:EJ5UtJ/sK8Nt6q3VWN+EwZLZ3g0afJiG8NegYiQQ/gQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -117,24 +72,16 @@ github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaB github.com/elliotchance/phpserialize v1.3.3 h1:hV4QVmGdCiYgoBbw+ADt6fNgyZ2mYX0OgpnON1adTCM= github.com/elliotchance/phpserialize v1.3.3/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= @@ -174,27 +121,16 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -207,33 +143,12 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -258,18 +173,12 @@ github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= 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/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= -github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ilyakaznacheev/cleanenv v1.4.2 h1:nRqiriLMAC7tz7GzjzUTBHfzdzw6SQ7XvTagkFqe/zU= github.com/ilyakaznacheev/cleanenv v1.4.2/go.mod h1:i0owW+HDxeGKE0/JPREJOdSCPIyOnmh6C0xhWAkF/xA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -281,8 +190,6 @@ github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/ github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= github.com/jarcoal/httpmock v1.3.0 h1:2RJ8GP0IIaWwcC9Fp2BmVi8Kog3v2Hn7VXM3fTd+nuc= github.com/jarcoal/httpmock v1.3.0/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= -github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= -github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -304,8 +211,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= @@ -319,7 +224,6 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -335,13 +239,10 @@ github.com/leodido/go-urn v1.2.3/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNa github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -364,8 +265,6 @@ github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLg github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= @@ -407,8 +306,6 @@ github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -420,8 +317,6 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= @@ -463,9 +358,7 @@ github.com/redis/go-redis/v9 v9.0.3/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDO github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= -github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -484,21 +377,12 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/spf13/afero v1.4.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= @@ -510,16 +394,12 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= @@ -541,17 +421,13 @@ github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/vektra/mockery/v2 v2.26.1 h1:Y8mlLkWHWjuUpsJBwhFb1LeG1ZnWFvo+prsIuiABJ88= -github.com/vektra/mockery/v2 v2.26.1/go.mod h1:BOVUIv65DB6wuTYzoPtyMoBYce3n2C1IcsOdWu6Rpu4= github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4= github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= @@ -564,12 +440,7 @@ go.etcd.io/etcd/client/v3 v3.5.8 h1:B6ngTKZSWWowHEoaucOKHQR/AtZKaoHLiUpWxOLG4l4= go.etcd.io/etcd/client/v3 v3.5.8/go.mod h1:idZYIPVkttBJBiRigkB5EM0MmEyx8jcl18zCV3F5noc= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -593,53 +464,26 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= @@ -655,32 +499,13 @@ golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -692,23 +517,13 @@ golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -720,45 +535,20 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -775,22 +565,15 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= -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= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 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= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -800,55 +583,16 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= @@ -857,70 +601,14 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -928,22 +616,10 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= @@ -953,11 +629,7 @@ google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= @@ -971,8 +643,6 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -985,7 +655,6 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= @@ -1018,16 +687,9 @@ gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/internal/pkg/tools/tool.go b/internal/pkg/tools/tool.go index 61fb8ca4f..719532aff 100644 --- a/internal/pkg/tools/tool.go +++ b/internal/pkg/tools/tool.go @@ -17,7 +17,6 @@ package tools import ( - _ "github.com/vektra/mockery/v2" _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" _ "google.golang.org/protobuf/cmd/protoc-gen-go" ) From 293d7b47b4878c33a68a9cd263e072909c7447f4 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 20 May 2023 10:21:29 +0800 Subject: [PATCH 027/888] fix: reject unknown json field and response code (#351) --- web/json.go | 40 ++++++++++++++++++++++++++++++++++++++++ web/new.go | 2 ++ web/res/error.go | 8 ++++---- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 web/json.go diff --git a/web/json.go b/web/json.go new file mode 100644 index 000000000..7f3262e5e --- /dev/null +++ b/web/json.go @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package web + +import ( + "encoding/json" + + "github.com/labstack/echo/v4" +) + +var _ echo.JSONSerializer = jsonSerializer{} + +type jsonSerializer struct { +} + +func (j jsonSerializer) Serialize(c echo.Context, i any, indent string) error { + enc := json.NewEncoder(c.Response()) + if indent != "" { + enc.SetIndent("", indent) + } + return enc.Encode(i) +} + +func (j jsonSerializer) Deserialize(c echo.Context, i any) error { + dec := json.NewDecoder(c.Request().Body) + dec.DisallowUnknownFields() + return dec.Decode(i) +} diff --git a/web/new.go b/web/new.go index e8fdaf10b..101e0c952 100644 --- a/web/new.go +++ b/web/new.go @@ -48,6 +48,8 @@ func New() *echo.Echo { app.HideBanner = true app.HidePort = true + app.JSONSerializer = jsonSerializer{} + app.IPExtractor = func(request *http.Request) string { ip := request.Header.Get(cf.HeaderRequestIP) if ip == "" { diff --git a/web/res/error.go b/web/res/error.go index 3aa2ad039..7e1f4d848 100644 --- a/web/res/error.go +++ b/web/res/error.go @@ -52,16 +52,16 @@ func (e HTTPError) Error() string { //nolint:errorlint func JSONError(c echo.Context, err error) error { if ute, ok := err.(*json.UnmarshalTypeError); ok { - return c.JSON(http.StatusInternalServerError, Error{ - Title: "Internal Server Error", + return c.JSON(http.StatusBadRequest, Error{ + Title: "JSON Error", Description: fmt.Sprintf("Unmarshal type error: expected=%v, got=%v, field=%v, offset=%v", ute.Type, ute.Value, ute.Field, ute.Offset), }) } if se, ok := err.(*json.SyntaxError); ok { - return c.JSON(http.StatusInternalServerError, Error{ - Title: "Internal Server Error", + return c.JSON(http.StatusBadRequest, Error{ + Title: "JSON Error", Description: fmt.Sprintf("Syntax error: offset=%v, error=%v", se.Offset, se.Error()), }) } From 1e72fdf5f3c3e8aae3c931b2fcb63dc348a9df05 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 20 May 2023 10:21:53 +0800 Subject: [PATCH 028/888] bump: 0.33.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a396f2b4..4a42499e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.2", + "version": "0.33.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.2", + "version": "0.33.3", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index eb6df9373..386528c61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.2", + "version": "0.33.3", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 1451e2d7cfb8e47ecfb360116d4916d28633bff6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 20 May 2023 10:26:30 +0800 Subject: [PATCH 029/888] fix: json error code --- web/res/error.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/res/error.go b/web/res/error.go index 7e1f4d848..1b34a81a4 100644 --- a/web/res/error.go +++ b/web/res/error.go @@ -67,7 +67,7 @@ func JSONError(c echo.Context, err error) error { } return c.JSON(http.StatusBadRequest, Error{ - Title: "BodyJSON Error", + Title: "JSON Error", Description: "can't decode request body as json or value doesn't match expected type", Details: util.DetailWithErr(c, err), }) From b25110766ae34be7e20492723f13b9d8eb03231b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 20 May 2023 10:27:24 +0800 Subject: [PATCH 030/888] bump: 0.33.4 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a42499e4..bf2643b8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.3", + "version": "0.33.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.3", + "version": "0.33.4", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index 386528c61..f1671d268 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.3", + "version": "0.33.4", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 95ec318653bd4572c3573ce293a298288465fb8d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 23 May 2023 12:27:55 +0800 Subject: [PATCH 031/888] chore: disable codecov comment --- .github/codecov.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/codecov.yml b/.github/codecov.yml index 2523e4763..7a286f790 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,3 +1,5 @@ +comment: false + ignore: - "**/mock_*.go" - "**/*_test.go" From 46d14ab3d1acb463fc220d9fd33f13c62dbb9e7f Mon Sep 17 00:00:00 2001 From: fiochen Date: Wed, 24 May 2023 14:47:07 +0800 Subject: [PATCH 032/888] fix: missing subject collection record subject type (#352) --- ctrl/update_episode_progress.go | 5 +- ctrl/update_subject_collection.go | 9 ++-- internal/collections/domain.go | 4 +- internal/collections/infra/mysql_repo.go | 21 +++++---- internal/collections/infra/mysql_repo_test.go | 21 ++++++--- internal/mocks/CollectionRepo.go | 46 ++++++++++--------- web/handler/user/patch_subject_collection.go | 24 +++++----- .../user/patch_subject_collection_test.go | 8 ++-- .../user/post_subject_collection_test.go | 10 ++-- .../user/update_episode_collection_test.go | 8 +++- 10 files changed, 89 insertions(+), 67 deletions(-) diff --git a/ctrl/update_episode_progress.go b/ctrl/update_episode_progress.go index a7054f9ac..e957f4898 100644 --- a/ctrl/update_episode_progress.go +++ b/ctrl/update_episode_progress.go @@ -144,7 +144,7 @@ func (ctl Ctrl) updateEpisodesCollectionTx( return func(tx *query.Query) error { collectionTx := ctl.collection.WithQuery(tx) - _, err := collectionTx.GetSubjectCollection(ctx, u.ID, subjectID) + sc, err := collectionTx.GetSubjectCollection(ctx, u.ID, subjectID) if err != nil { if errors.Is(err, gerr.ErrNotFound) { return gerr.ErrSubjectNotCollected @@ -160,7 +160,8 @@ func (ctl Ctrl) updateEpisodesCollectionTx( epStatus := len(ec) - err = collectionTx.UpdateSubjectCollection(ctx, u.ID, subjectID, time.Now(), "", + err = collectionTx.UpdateSubjectCollection(ctx, u.ID, + model.Subject{ID: subjectID, TypeID: sc.SubjectType}, time.Now(), "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { s.UpdateEps(uint32(epStatus)) return s, nil diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index 49f813673..f54cdb3fb 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -46,16 +46,16 @@ type UpdateCollectionRequest struct { func (ctl Ctrl) UpdateSubjectCollection( ctx context.Context, u auth.Auth, - subjectID model.SubjectID, + subject model.Subject, req UpdateCollectionRequest, allowCreate bool, ) error { - ctl.log.Info("try to update collection", zap.Uint32("subject_id", subjectID), log.User(u.ID)) + ctl.log.Info("try to update collection", zap.Uint32("subject_id", subject.ID), log.User(u.ID)) met := ctl.collection.UpdateSubjectCollection if allowCreate { met = ctl.collection.UpdateOrCreateSubjectCollection } - err := met(ctx, u.ID, subjectID, time.Now(), req.IP, + err := met(ctx, u.ID, subject, time.Now(), req.IP, func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { if req.Comment.Set { s.ShadowBan(ctl.dam.NeedReview(req.Comment.Value)) @@ -102,8 +102,7 @@ func (ctl Ctrl) UpdateSubjectCollection( if err != nil { return err } - - return ctl.mayCreateTimeline(ctx, u, req, subjectID) + return ctl.mayCreateTimeline(ctx, u, req, subject.ID) } func (ctl Ctrl) mayCreateTimeline( diff --git a/internal/collections/domain.go b/internal/collections/domain.go index ad13be9d1..a3ccbb5cd 100644 --- a/internal/collections/domain.go +++ b/internal/collections/domain.go @@ -53,13 +53,13 @@ type Repo interface { ) (collection.UserSubjectEpisodesCollection, error) UpdateSubjectCollection( - ctx context.Context, userID model.UserID, subjectID model.SubjectID, + ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), ) error UpdateOrCreateSubjectCollection( - ctx context.Context, userID model.UserID, subjectID model.SubjectID, + ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), ) error diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 97a1e718b..4e17345b9 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -84,43 +84,43 @@ func (r mysqlRepo) convertToSubjectCollection(s *dao.SubjectCollection) (*collec func (r mysqlRepo) UpdateSubjectCollection( ctx context.Context, userID model.UserID, - subjectID model.SubjectID, + subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), ) error { - s, err := r.getSubjectCollection(ctx, userID, subjectID) + s, err := r.getSubjectCollection(ctx, userID, subject.ID) if err != nil { if errors.Is(err, gerr.ErrNotFound) { return gerr.ErrSubjectNotCollected } return err } - return r.updateOrCreateSubjectCollection(ctx, userID, subjectID, at, ip, update, s) + return r.updateOrCreateSubjectCollection(ctx, userID, subject, at, ip, update, s) } func (r mysqlRepo) UpdateOrCreateSubjectCollection( ctx context.Context, userID model.UserID, - subjectID model.SubjectID, + subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), ) error { - s, err := r.getSubjectCollection(ctx, userID, subjectID) + s, err := r.getSubjectCollection(ctx, userID, subject.ID) if err != nil { if !errors.Is(err, gerr.ErrNotFound) { return err } s = nil } - return r.updateOrCreateSubjectCollection(ctx, userID, subjectID, at, ip, update, s) + return r.updateOrCreateSubjectCollection(ctx, userID, subject, at, ip, update, s) } func (r mysqlRepo) updateOrCreateSubjectCollection( ctx context.Context, userID model.UserID, - subjectID model.SubjectID, + subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error), @@ -129,8 +129,9 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( created := obj == nil if created { obj = &dao.SubjectCollection{ - SubjectID: subjectID, - UserID: userID, + SubjectID: subject.ID, + SubjectType: subject.TypeID, + UserID: userID, } } collectionSubject, err := r.convertToSubjectCollection(obj) @@ -161,7 +162,7 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(err) } - r.updateSubject(ctx, subjectID) + r.updateSubject(ctx, subject.ID) return nil } diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index 3db3684ad..ed27c4144 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -201,6 +201,9 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { const uid model.UserID = 34000 const sid model.SubjectID = 12000 + const subjectType = model.SubjectTypeMusic + + subject := model.Subject{ID: sid, TypeID: subjectType} repo, q := getRepo(t) table := q.SubjectCollection @@ -227,7 +230,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.Error(t, err) // 创建 - err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { return s, nil }) @@ -238,7 +241,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.NoError(t, err) // 更新 - err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) @@ -261,7 +264,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.Zero(t, r.OnHoldTime) // When update to wish state - err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, sid, now, "", + err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionWish)) s.UpdateType(collection.SubjectCollectionWish) @@ -291,6 +294,9 @@ func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { const uid model.UserID = 35000 const sid model.SubjectID = 13000 + const subjectType = model.SubjectTypeMusic + + subject := model.Subject{ID: sid, TypeID: subjectType} repo, q := getRepo(t) table := q.SubjectCollection @@ -315,7 +321,7 @@ func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { now := time.Now() - err = repo.UpdateSubjectCollection(context.Background(), uid, sid, now, "", + err = repo.UpdateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) @@ -354,6 +360,9 @@ func TestMysqlRepo_UpdateSubjectCollectionType(t *testing.T) { const uid model.UserID = 36000 const sid model.SubjectID = 14000 + const subjectType = model.SubjectTypeBook + + subject := model.Subject{ID: sid, TypeID: subjectType} repo, q := getRepo(t) table := q.SubjectCollection @@ -372,7 +381,7 @@ func TestMysqlRepo_UpdateSubjectCollectionType(t *testing.T) { now := time.Now() - err = repo.UpdateSubjectCollection(context.Background(), uid, sid, now, "", + err = repo.UpdateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { s.UpdateType(collection.SubjectCollectionDropped) return s, nil @@ -390,7 +399,7 @@ func TestMysqlRepo_UpdateSubjectCollectionType(t *testing.T) { t2 := now.Add(time.Duration(10) * time.Second) - err = repo.UpdateSubjectCollection(context.Background(), uid, sid, t2, "", + err = repo.UpdateSubjectCollection(context.Background(), uid, subject, t2, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { s.UpdateType(collection.SubjectCollectionDoing) return s, nil diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index 3b395ffc2..c997e13fd 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -10,6 +10,8 @@ import ( mock "github.com/stretchr/testify/mock" + model "github.com/bangumi/server/internal/model" + query "github.com/bangumi/server/dal/query" time "time" @@ -313,13 +315,13 @@ func (_c *CollectionRepo_UpdateEpisodeCollection_Call) RunAndReturn(run func(con return _c } -// UpdateOrCreateSubjectCollection provides a mock function with given fields: ctx, userID, subjectID, at, ip, update -func (_m *CollectionRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { - ret := _m.Called(ctx, userID, subjectID, at, ip, update) +// UpdateOrCreateSubjectCollection provides a mock function with given fields: ctx, userID, subject, at, ip, update +func (_m *CollectionRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { + ret := _m.Called(ctx, userID, subject, at, ip, update) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { - r0 = rf(ctx, userID, subjectID, at, ip, update) + if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { + r0 = rf(ctx, userID, subject, at, ip, update) } else { r0 = ret.Error(0) } @@ -335,17 +337,17 @@ type CollectionRepo_UpdateOrCreateSubjectCollection_Call struct { // UpdateOrCreateSubjectCollection is a helper method to define mock.On call // - ctx context.Context // - userID uint32 -// - subjectID uint32 +// - subject model.Subject // - at time.Time // - ip string // - update func(context.Context , *collection.Subject)(*collection.Subject , error) -func (_e *CollectionRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { - return &CollectionRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subjectID, at, ip, update)} +func (_e *CollectionRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { + return &CollectionRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subject, at, ip, update)} } -func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { +func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) + run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) }) return _c } @@ -355,18 +357,18 @@ func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Return(_a0 error) return _c } -func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { +func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { _c.Call.Return(run) return _c } -// UpdateSubjectCollection provides a mock function with given fields: ctx, userID, subjectID, at, ip, update -func (_m *CollectionRepo) UpdateSubjectCollection(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { - ret := _m.Called(ctx, userID, subjectID, at, ip, update) +// UpdateSubjectCollection provides a mock function with given fields: ctx, userID, subject, at, ip, update +func (_m *CollectionRepo) UpdateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { + ret := _m.Called(ctx, userID, subject, at, ip, update) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { - r0 = rf(ctx, userID, subjectID, at, ip, update) + if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { + r0 = rf(ctx, userID, subject, at, ip, update) } else { r0 = ret.Error(0) } @@ -382,17 +384,17 @@ type CollectionRepo_UpdateSubjectCollection_Call struct { // UpdateSubjectCollection is a helper method to define mock.On call // - ctx context.Context // - userID uint32 -// - subjectID uint32 +// - subject model.Subject // - at time.Time // - ip string // - update func(context.Context , *collection.Subject)(*collection.Subject , error) -func (_e *CollectionRepo_Expecter) UpdateSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateSubjectCollection_Call { - return &CollectionRepo_UpdateSubjectCollection_Call{Call: _e.mock.On("UpdateSubjectCollection", ctx, userID, subjectID, at, ip, update)} +func (_e *CollectionRepo_Expecter) UpdateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateSubjectCollection_Call { + return &CollectionRepo_UpdateSubjectCollection_Call{Call: _e.mock.On("UpdateSubjectCollection", ctx, userID, subject, at, ip, update)} } -func (_c *CollectionRepo_UpdateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateSubjectCollection_Call { +func (_c *CollectionRepo_UpdateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) + run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) }) return _c } @@ -402,7 +404,7 @@ func (_c *CollectionRepo_UpdateSubjectCollection_Call) Return(_a0 error) *Collec return _c } -func (_c *CollectionRepo_UpdateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateSubjectCollection_Call { +func (_c *CollectionRepo_UpdateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateSubjectCollection_Call { _c.Call.Return(run) return _c } diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index 6a532c8f0..56f196edb 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -90,15 +90,17 @@ func (h User) updateOrCreateSubjectCollection( } } - return h.ctrl.UpdateSubjectCollection(c.Request().Context(), u.Auth, subjectID, ctrl.UpdateCollectionRequest{ - IP: u.IP, - UID: u.ID, - VolStatus: r.VolStatus, - EpStatus: r.EpStatus, - Type: r.Type, - Tags: r.Tags, - Comment: r.Comment, - Rate: r.Rate, - Private: r.Private, - }, allowCreate) + return h.ctrl.UpdateSubjectCollection(c.Request().Context(), u.Auth, + model.Subject{ID: subjectID, TypeID: s.TypeID}, + ctrl.UpdateCollectionRequest{ + IP: u.IP, + UID: u.ID, + VolStatus: r.VolStatus, + EpStatus: r.EpStatus, + Type: r.Type, + Tags: r.Tags, + Comment: r.Comment, + Rate: r.Rate, + Private: r.Private, + }, allowCreate) } diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 967e1b718..9d4d5fadf 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -42,6 +42,7 @@ func TestUser_PatchSubjectCollection(t *testing.T) { t.Parallel() const sid model.SubjectID = 8 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} var s = &collection.Subject{} @@ -54,9 +55,9 @@ func TestUser_PatchSubjectCollection(t *testing.T) { Return(nil) c := mocks.NewCollectionRepo(t) - c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, - subjectID uint32, at time.Time, ip string, + subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) { require.Equal(t, "0.0.0.0", ip) @@ -90,6 +91,7 @@ func TestUser_PatchToNonExistsSubjectCollection(t *testing.T) { t.Parallel() const sid model.SubjectID = 8 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) @@ -97,7 +99,7 @@ func TestUser_PatchToNonExistsSubjectCollection(t *testing.T) { tl := mocks.NewTimeLineService(t) c := mocks.NewCollectionRepo(t) - c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Return(gerr.ErrSubjectNotCollected) d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index 06ecb0e71..ca99e72b1 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -41,6 +41,7 @@ func TestUser_PostSubjectCollection(t *testing.T) { t.Parallel() const sid model.SubjectID = 8 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} var s = &collection.Subject{} @@ -53,9 +54,9 @@ func TestUser_PostSubjectCollection(t *testing.T) { Return(nil) c := mocks.NewCollectionRepo(t) - c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, - subjectID uint32, at time.Time, ip string, + subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) { require.Equal(t, "0.0.0.0", ip) s = lo.Must(update(context.Background(), s)) @@ -89,6 +90,7 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { t.Parallel() const sid model.SubjectID = 8 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} var s = &collection.Subject{} @@ -101,9 +103,9 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { Return(nil) c := mocks.NewCollectionRepo(t) - c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). + c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, - subjectID uint32, at time.Time, ip string, + subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) { require.Equal(t, "0.0.0.0", ip) s = lo.Must(update(context.Background(), s)) diff --git a/web/handler/user/update_episode_collection_test.go b/web/handler/user/update_episode_collection_test.go index d142e06df..eaf5364d2 100644 --- a/web/handler/user/update_episode_collection_test.go +++ b/web/handler/user/update_episode_collection_test.go @@ -38,6 +38,7 @@ func TestUser_PatchEpisodeCollectionBatch(t *testing.T) { t.Parallel() const sid model.SubjectID = 8 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} var eIDs []model.EpisodeID var eType collection.EpisodeCollection @@ -61,7 +62,8 @@ func TestUser_PatchEpisodeCollectionBatch(t *testing.T) { eIDs = episodeIDs eType = collection }).Return(collection.UserSubjectEpisodesCollection{}, nil) - c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything).Return(nil) + c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). + Return(nil) c.EXPECT().GetSubjectCollection(mock.Anything, uid, sid).Return(collection.UserSubjectCollection{SubjectID: sid}, nil) app := test.GetWebApp(t, test.Mock{EpisodeRepo: e, CollectionRepo: c, AuthService: a}) @@ -84,6 +86,7 @@ func TestUser_PutEpisodeCollection(t *testing.T) { const sid model.SubjectID = 8 const eid model.EpisodeID = 10 const uid model.UserID = 1 + subject := model.Subject{ID: sid, TypeID: model.SubjectTypeAll} var eIDs []model.EpisodeID var eType collection.EpisodeCollection @@ -103,7 +106,8 @@ func TestUser_PutEpisodeCollection(t *testing.T) { eIDs = episodeIDs eType = collection }).Return(collection.UserSubjectEpisodesCollection{}, nil) - c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything).Return(nil) + c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). + Return(nil) app := test.GetWebApp(t, test.Mock{EpisodeRepo: e, CollectionRepo: c, AuthService: a}) From 272a54b801d5d5855326c6a0844686b2373f099b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 24 May 2023 14:47:50 +0800 Subject: [PATCH 033/888] bump: 0.33.5 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf2643b8b..4a892469e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.4", + "version": "0.33.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.4", + "version": "0.33.5", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index f1671d268..943aff213 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.4", + "version": "0.33.5", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From cecdc945339f96cdcf25b657661be13a7ce3a19e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 May 2023 09:21:27 +0800 Subject: [PATCH 034/888] fix: no need to clear uncached user avatar --- canal/on_user.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/canal/on_user.go b/canal/on_user.go index 057f4b364..34c08902e 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -94,6 +94,10 @@ func (e *eventHandler) clearImageCache(avatar string) { err := e.s3.ListObjectsV2PagesWithContext(context.Background(), &s3.ListObjectsV2Input{Bucket: &e.config.S3ImageResizeBucket, Prefix: &p}, func(output *s3.ListObjectsV2Output, b bool) bool { + if len(output.Contents) == 0 { + return false + } + _, err := e.s3.DeleteObjects(&s3.DeleteObjectsInput{ Bucket: &e.config.S3ImageResizeBucket, Delete: &s3.Delete{ From d024275dcda394b506b504a062e9b393bac3f47f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 May 2023 09:21:40 +0800 Subject: [PATCH 035/888] bump: 0.33.6 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a892469e..b0eac9325 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.5", + "version": "0.33.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.5", + "version": "0.33.6", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^3.1.25", diff --git a/package.json b/package.json index 943aff213..455ab7368 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.5", + "version": "0.33.6", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 8bb710e296faabac75d8e0fd9cc343b6986531c4 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 May 2023 13:02:35 +0800 Subject: [PATCH 036/888] style: disable slow lint --- .golangci.yaml | 124 ++++++++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 54 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index e5dd38816..b737d37fa 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -45,22 +45,6 @@ output: # all available settings of specific linters linters-settings: - goheader: - template: |- - SPDX-License-Identifier: AGPL-3.0-only - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, version 3. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see - errcheck: # report about not checking of errors in type assertions: `a := b.(MyStruct)`; # default is false: such cases aren't reported by default. @@ -249,43 +233,75 @@ linters-settings: yaml: snake linters: - enable-all: true - disable: - - nolintlint - - ireturn - - contextcheck - - bodyclose - - wsl # noisy - - varnamelen # noisy - - exhaustivestruct # too noisy, default zero value is a good thing. - - exhaustruct # too noisy - - gofumpt # break import grouping - - prealloc # perf - - maligned # replaced by go vert - - dupl - - cyclop # we have gocyclo - - goimports # we have gci already - - nlreturn - - godox - - execinquery - - nonamedreturns - # useless - - sqlclosecheck - - rowserrcheck - - nilerr - - dupword - - wrapcheck - # 1.18 - - wastedassign - - nosnakecase # false positive for variable and const defined in other lib - - structcheck - # deprecated - - varcheck - - deadcode - - interfacer - - ifshort - - scopelint - - golint + disable-all: true + enable: + - asasalint + - asciicheck + - bidichk + - containedctx + - depguard + - dogsled + - durationcheck + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exportloopref + - forbidigo + - forcetypeassert + - funlen + - gci + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - goerr113 + - gofmt + - gomnd + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosimple + - govet + - grouper + - importas + - ineffassign + - interfacebloat + - lll + - loggercheck + - maintidx + - makezero + - misspell + # - musttag + - nakedret + - nestif + - nilnil + - noctx + # - nosprintfhostport + - paralleltest + - predeclared + - promlinter + - reassign + # - staticcheck + - stylecheck + - tagliatelle + - tenv + - testableexamples + - testpackage + - thelper + - tparallel + - typecheck + - unconvert + - unparam + - unused + - usestdlibvars + - whitespace - revive fast: false @@ -299,7 +315,7 @@ issues: linters: [gochecknoglobals, gochecknoinits, wrapcheck] - path: '.*_test\.go' - linters: [gocritic, gochecknoglobals, godot, nosnakecase, funlen, musttag] + linters: [gocritic, gochecknoglobals, godot, nosnakecase, funlen] - source: "var .* = pool.New" linters: [gochecknoglobals] From 835dfcc004795e38cfa3b6107779ce29159f60df Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 May 2023 13:13:47 +0800 Subject: [PATCH 037/888] feat: new db column --- dal/dao/chii_members.gen.go | 1 + dal/query/chii_members.gen.go | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dal/dao/chii_members.gen.go b/dal/dao/chii_members.gen.go index ae9df195b..337d2bf3b 100644 --- a/dal/dao/chii_members.gen.go +++ b/dal/dao/chii_members.gen.go @@ -29,6 +29,7 @@ type Member struct { Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null"` PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null"` Email string `gorm:"column:email;type:char(50);not null"` + Acl string `gorm:"column:acl;type:mediumtext;not null"` Fields MemberField `gorm:"foreignKey:uid;references:uid" json:"fields"` } diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index b98944cae..1ff8c8740 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -44,6 +44,7 @@ func newMember(db *gorm.DB, opts ...gen.DOOption) member { _member.Sign = field.NewField(tableName, "sign") _member.PasswordCrypt = field.NewBytes(tableName, "password_crypt") _member.Email = field.NewString(tableName, "email") + _member.Acl = field.NewString(tableName, "acl") _member.Fields = memberHasOneFields{ db: db.Session(&gorm.Session{}), @@ -76,6 +77,7 @@ type member struct { Sign field.Field PasswordCrypt field.Bytes Email field.String + Acl field.String Fields memberHasOneFields fieldMap map[string]field.Expr @@ -110,6 +112,7 @@ func (m *member) updateTableName(table string) *member { m.Sign = field.NewField(table, "sign") m.PasswordCrypt = field.NewBytes(table, "password_crypt") m.Email = field.NewString(table, "email") + m.Acl = field.NewString(table, "acl") m.fillFieldMap() @@ -132,7 +135,7 @@ func (m *member) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (m *member) fillFieldMap() { - m.fieldMap = make(map[string]field.Expr, 18) + m.fieldMap = make(map[string]field.Expr, 19) m.fieldMap["uid"] = m.ID m.fieldMap["username"] = m.Username m.fieldMap["nickname"] = m.Nickname @@ -150,6 +153,7 @@ func (m *member) fillFieldMap() { m.fieldMap["sign"] = m.Sign m.fieldMap["password_crypt"] = m.PasswordCrypt m.fieldMap["email"] = m.Email + m.fieldMap["acl"] = m.Acl } From 9dbef1a60483bea163104f9dee06c31abe4273b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:56:43 +0800 Subject: [PATCH 038/888] build(deps): update module gorm.io/driver/mysql to v1.5.1 (#362) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 7d3a5a122..e76384c39 100644 --- a/go.mod +++ b/go.mod @@ -39,9 +39,9 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.30.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.5.0 + gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 - gorm.io/gorm v1.25.0 + gorm.io/gorm v1.25.1 gorm.io/plugin/dbresolver v1.4.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 11b920c36..4db444987 100644 --- a/go.sum +++ b/go.sum @@ -662,8 +662,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM= -gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo= +gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw= +gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.4.2/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= @@ -676,9 +676,8 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU= -gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= +gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.1 h1:NPampLxQujY+277452rt4yqtg6JmzNZ1jA2olk0eFXw= gorm.io/hints v1.1.1/go.mod h1:zdwzfFqvBWGbpuKiAhLFOSGSpeD3/VsRgkXR9Y7Z3cs= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= From 8c20bad24ecba895b046e027f8f4d8a91e36091e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:56:55 +0800 Subject: [PATCH 039/888] build(deps): update module github.com/redis/go-redis/v9 to v9.0.5 (#357) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e76384c39..b3545a93c 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.24.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.15.0 - github.com/redis/go-redis/v9 v9.0.3 + github.com/redis/go-redis/v9 v9.0.5 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.39 github.com/spf13/cobra v1.7.0 diff --git a/go.sum b/go.sum index 4db444987..8f6927de6 100644 --- a/go.sum +++ b/go.sum @@ -353,8 +353,8 @@ github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJf github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.0.3 h1:+7mmR26M0IvyLxGZUHxu4GiBkJkVDid0Un+j4ScYu4k= -github.com/redis/go-redis/v9 v9.0.3/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= +github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= From 436099afcf12ca564c40ad6fc57244a98773df18 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:57:13 +0800 Subject: [PATCH 040/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.40 (#358) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index b3545a93c..ffc596d56 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.15.0 github.com/redis/go-redis/v9 v9.0.5 github.com/samber/lo v1.38.1 - github.com/segmentio/kafka-go v0.4.39 + github.com/segmentio/kafka-go v0.4.40 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.2 diff --git a/go.sum b/go.sum index 8f6927de6..49f4bce46 100644 --- a/go.sum +++ b/go.sum @@ -366,8 +366,8 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.39 h1:75smaomhvkYRwtuOwqLsdhgCG30B82NsbdkdDfFbvrw= -github.com/segmentio/kafka-go v0.4.39/go.mod h1:T0MLgygYvmqmBvC+s8aCcbVNfJN4znVne5j0Pzowp/Q= +github.com/segmentio/kafka-go v0.4.40 h1:sszW7c0/uyv7+VcTW5trx2ZC7kMWDTxuR/6Zn8U1bm8= +github.com/segmentio/kafka-go v0.4.40/go.mod h1:naFEZc5MQKdeL3W6NkZIAn48Y6AazqjRFDhnXeg3h94= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -422,10 +422,12 @@ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQ github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= -github.com/xdg/scram v1.0.5 h1:TuS0RFmt5Is5qm9Tm2SoD89OPqe4IRiFtyFY4iwWXsw= -github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.3 h1:cmL5Enob4W83ti/ZHuZLuKD/xqJfus4fVPwE+/BDm+4= -github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= +github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= +github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= +github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -469,7 +471,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -510,7 +511,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= @@ -570,6 +570,7 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= From 03a86ccf6571a8ef984736700b9d0591d1c617a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:57:24 +0800 Subject: [PATCH 041/888] build(deps): update module github.com/stretchr/testify to v1.8.4 (#359) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index ffc596d56..320b1357f 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/segmentio/kafka-go v0.4.40 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.2 + github.com/stretchr/testify v1.8.4 github.com/trim21/errgo v0.0.2 github.com/trim21/go-phpserialize v0.0.18 github.com/trim21/go-redis-prometheus v0.0.0 diff --git a/go.sum b/go.sum index 49f4bce46..ef02bd0d1 100644 --- a/go.sum +++ b/go.sum @@ -398,8 +398,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= From 62663191f5c054c3a05361b91f5581c49b37ffbd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 07:57:44 +0800 Subject: [PATCH 042/888] build(deps): update module go.uber.org/fx to v1.19.3 (#361) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 320b1357f..68da9b84a 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.8 - go.uber.org/fx v1.19.2 + go.uber.org/fx v1.19.3 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.8.0 google.golang.org/grpc v1.52.3 diff --git a/go.sum b/go.sum index ef02bd0d1..3dce6df43 100644 --- a/go.sum +++ b/go.sum @@ -451,8 +451,8 @@ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/dig v1.16.1 h1:+alNIBsl0qfY0j6epRubp/9obgtrObRAc5aD+6jbWY8= go.uber.org/dig v1.16.1/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= -go.uber.org/fx v1.19.2 h1:SyFgYQFr1Wl0AYstE8vyYIzP4bFz2URrScjwC4cwUvY= -go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= +go.uber.org/fx v1.19.3 h1:YqMRE4+2IepTYCMOvXqQpRa+QAVdiSTnsHU4XNWBceA= +go.uber.org/fx v1.19.3/go.mod h1:w2HrQg26ql9fLK7hlBiZ6JsRUKV+Lj/atT1KCjT8YhM= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= From f18f63562d56e69d424dfcd9309f6de3b9be548d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:22:01 +0800 Subject: [PATCH 043/888] build(deps): update module github.com/go-playground/validator/v10 to v10.14.0 (#364) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 5 +++-- go.sum | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 68da9b84a..9415fd765 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.13.0 + github.com/go-playground/validator/v10 v10.14.0 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 @@ -55,6 +55,7 @@ require ( github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect @@ -67,7 +68,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/labstack/gommon v0.4.0 // indirect - github.com/leodido/go-urn v1.2.3 // indirect + github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect diff --git a/go.sum b/go.sum index 3dce6df43..4082202fb 100644 --- a/go.sum +++ b/go.sum @@ -81,6 +81,8 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -93,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.13.0 h1:cFRQdfaSMCOSfGCCLB20MHvuoHb/s5G8L5pu2ppK5AQ= -github.com/go-playground/validator/v10 v10.13.0/go.mod h1:dwu7+CG8/CtBiJFZDz4e+5Upb6OLw04gtBYw0mcG/z4= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= @@ -234,8 +236,8 @@ github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= -github.com/leodido/go-urn v1.2.3 h1:6BE2vPT0lqoz3fmOesHZiaiFh7889ssCo2GMvLCfiuA= -github.com/leodido/go-urn v1.2.3/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= From 394e9a2b280306e43850ce541757f4134a2d1bda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:25:46 +0800 Subject: [PATCH 044/888] build(deps): update module github.com/prometheus/client_golang to v1.15.1 (#356) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9415fd765..d1a9d868b 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.24.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.15.0 + github.com/prometheus/client_golang v1.15.1 github.com/redis/go-redis/v9 v9.0.5 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.40 diff --git a/go.sum b/go.sum index 4082202fb..e7bdc9ec4 100644 --- a/go.sum +++ b/go.sum @@ -328,8 +328,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= -github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= +github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From 2ea8752b79464a3c5b5864c37458303ce256e5ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:26:56 +0800 Subject: [PATCH 045/888] build(deps): update module golang.org/x/crypto to v0.9.0 (#365) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index d1a9d868b..7d4c56be9 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.8 go.uber.org/fx v1.19.3 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.8.0 + golang.org/x/crypto v0.9.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.30.0 @@ -89,8 +89,8 @@ require ( go.uber.org/multierr v1.8.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.9.0 // indirect - golang.org/x/sys v0.7.0 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/sys v0.8.0 // indirect golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.8.0 // indirect diff --git a/go.sum b/go.sum index e7bdc9ec4..6cf2d212c 100644 --- a/go.sum +++ b/go.sum @@ -474,8 +474,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -516,8 +516,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -563,8 +563,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc 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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From d2e2af24a2e68634c954f375ffa1625016ba73a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:27:08 +0800 Subject: [PATCH 046/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.9 (#360) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 7d4c56be9..3507bcb03 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.8 + go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.19.3 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.9.0 @@ -82,8 +82,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.8 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.8 // indirect + go.etcd.io/etcd/api/v3 v3.5.9 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.16.1 // indirect go.uber.org/multierr v1.8.0 // indirect diff --git a/go.sum b/go.sum index 6cf2d212c..227e39c5b 100644 --- a/go.sum +++ b/go.sum @@ -437,12 +437,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.8 h1:Zf44zJszoU7zRV0X/nStPenegNXoFDWcB/MwrJbA+L4= -go.etcd.io/etcd/api/v3 v3.5.8/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k= -go.etcd.io/etcd/client/pkg/v3 v3.5.8 h1:tPp9YRn/UBFAHdhOQUII9eUs7aOK35eulpMhX4YBd+M= -go.etcd.io/etcd/client/pkg/v3 v3.5.8/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4= -go.etcd.io/etcd/client/v3 v3.5.8 h1:B6ngTKZSWWowHEoaucOKHQR/AtZKaoHLiUpWxOLG4l4= -go.etcd.io/etcd/client/v3 v3.5.8/go.mod h1:idZYIPVkttBJBiRigkB5EM0MmEyx8jcl18zCV3F5noc= +go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs= +go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k= +go.etcd.io/etcd/client/pkg/v3 v3.5.9 h1:oidDC4+YEuSIQbsR94rY9gur91UPL6DnxDCIYd2IGsE= +go.etcd.io/etcd/client/pkg/v3 v3.5.9/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4= +go.etcd.io/etcd/client/v3 v3.5.9 h1:r5xghnU7CwbUxD/fbUtRyJGaYNfDun8sp/gTr1hew6E= +go.etcd.io/etcd/client/v3 v3.5.9/go.mod h1:i/Eo5LrZ5IKqpbtpPDuaUnDOUv471oDg8cjQaUr2MbA= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= From f761f7349c4fc34db21cc2711b0a5aa60eace9ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 09:27:24 +0800 Subject: [PATCH 047/888] build(deps): update module github.com/aws/aws-sdk-go to v1.44.273 (#355) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3507bcb03..546ff2312 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.4 - github.com/aws/aws-sdk-go v1.44.253 + github.com/aws/aws-sdk-go v1.44.273 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 227e39c5b..816e7fdc3 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbK github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.253 h1:iqDd0okcH4ShfFexz2zzf4VmeDFf6NOMm07pHnEb8iY= -github.com/aws/aws-sdk-go v1.44.253/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.273 h1:CX8O0gK+cGrgUyv7bgJ6QQP9mQg7u5mweHdNzULH47c= +github.com/aws/aws-sdk-go v1.44.273/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 72e968e3e50a72f1cfebb77ec5c9a9d877dc4dc7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 Jun 2023 23:41:21 +0800 Subject: [PATCH 048/888] fix: increase grpc timeout --- internal/timeline/grpc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/timeline/grpc.go b/internal/timeline/grpc.go index 1f41aefb2..1db3a17ba 100644 --- a/internal/timeline/grpc.go +++ b/internal/timeline/grpc.go @@ -36,7 +36,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger" ) -const defaultTimeout = time.Second * 5 +const defaultTimeout = time.Second * 30 func NewMysqlRepo(q *query.Query, log *zap.Logger, cfg config.AppConfig) (Service, error) { rpc, err := newGrpcClient(cfg) From d8d246b5e9dab9bf48ef4178863264bb610c6fd1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 17 Jun 2023 05:10:05 +0800 Subject: [PATCH 049/888] chore: trace error line more specific --- internal/collections/infra/mysql_repo.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 4e17345b9..bf8a60e91 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -153,13 +153,13 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( T := r.q.SubjectCollection if created { - err = T.WithContext(ctx).Create(obj) + err = errgo.Trace(T.WithContext(ctx).Create(obj)) } else { - err = T.WithContext(ctx).Save(obj) + err = errgo.Trace(T.WithContext(ctx).Save(obj)) } if err != nil { - return errgo.Trace(err) + return err } r.updateSubject(ctx, subject.ID) From e8c0914caa45baf46b48b2b64e3b6a252e3ba633 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 Jun 2023 05:10:45 +0800 Subject: [PATCH 050/888] build(deps): update module github.com/trim21/go-phpserialize to v0.0.19 (#367) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 546ff2312..61403da62 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/trim21/errgo v0.0.2 - github.com/trim21/go-phpserialize v0.0.18 + github.com/trim21/go-phpserialize v0.0.19 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index 816e7fdc3..7e19996a6 100644 --- a/go.sum +++ b/go.sum @@ -75,7 +75,7 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -406,8 +406,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= -github.com/trim21/go-phpserialize v0.0.18 h1:rEGoaQA6j9kXuYcPx+SFwL+2epyCjNtCfhUM61YOip0= -github.com/trim21/go-phpserialize v0.0.18/go.mod h1:LQI8ZDQRM7YToxzXCaHwV+vl98A1nddrd7yi9OZOkWQ= +github.com/trim21/go-phpserialize v0.0.19 h1:bIjrT+uGwYCK2Lqz12QHFEI3jxhzAGpYxlMPjojxUZ0= +github.com/trim21/go-phpserialize v0.0.19/go.mod h1:8dTX+CG9iTrnTgzuD5B87ExstTvJAl0CMt9QJM9hQqA= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From 8949e838aafaac3d156076d39c659aec3c5ba926 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:12:25 +0800 Subject: [PATCH 051/888] build(deps): update module golang.org/x/crypto to v0.10.0 (#375) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 61403da62..1b28839be 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.19.3 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.9.0 + golang.org/x/crypto v0.10.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.30.0 @@ -90,8 +90,8 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/sys v0.9.0 // indirect + golang.org/x/text v0.10.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect diff --git a/go.sum b/go.sum index 7e19996a6..0da349693 100644 --- a/go.sum +++ b/go.sum @@ -474,8 +474,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -563,8 +563,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc 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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -575,8 +575,8 @@ 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= From c2fa58220bac4de0cd6046d91363f34f8d4595e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:12:33 +0800 Subject: [PATCH 052/888] build(deps): update module go.uber.org/fx to v1.20.0 (#374) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1b28839be..edfdef8ec 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.9 - go.uber.org/fx v1.19.3 + go.uber.org/fx v1.20.0 go.uber.org/zap v1.24.0 golang.org/x/crypto v0.10.0 google.golang.org/grpc v1.52.3 @@ -85,7 +85,7 @@ require ( go.etcd.io/etcd/api/v3 v3.5.9 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect go.uber.org/atomic v1.9.0 // indirect - go.uber.org/dig v1.16.1 // indirect + go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.8.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.10.0 // indirect diff --git a/go.sum b/go.sum index 0da349693..7bf7bd13a 100644 --- a/go.sum +++ b/go.sum @@ -451,10 +451,10 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/dig v1.16.1 h1:+alNIBsl0qfY0j6epRubp/9obgtrObRAc5aD+6jbWY8= -go.uber.org/dig v1.16.1/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= -go.uber.org/fx v1.19.3 h1:YqMRE4+2IepTYCMOvXqQpRa+QAVdiSTnsHU4XNWBceA= -go.uber.org/fx v1.19.3/go.mod h1:w2HrQg26ql9fLK7hlBiZ6JsRUKV+Lj/atT1KCjT8YhM= +go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= +go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= +go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= +go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= From b14aab5652c71717e2394c53427392fa230bded5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:12:48 +0800 Subject: [PATCH 053/888] build(deps): update module github.com/prometheus/client_golang to v1.16.0 (#373) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index edfdef8ec..ebeb9626a 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.24.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.15.1 + github.com/prometheus/client_golang v1.16.0 github.com/redis/go-redis/v9 v9.0.5 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.40 @@ -76,7 +76,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/procfs v0.10.1 // indirect github.com/rogpeppe/go-internal v1.6.1 // indirect github.com/stretchr/objx v0.5.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect diff --git a/go.sum b/go.sum index 7bf7bd13a..709ed6d5c 100644 --- a/go.sum +++ b/go.sum @@ -328,8 +328,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= -github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -351,8 +351,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= +github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= @@ -528,7 +528,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= From 9215f309d469c855e594f6ab25ff4141b83b42be Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:31:34 +0800 Subject: [PATCH 054/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.25.0 (#372) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ebeb9626a..e99c541d7 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jarcoal/httpmock v1.3.0 github.com/labstack/echo/v4 v4.10.2 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.24.0 + github.com/meilisearch/meilisearch-go v0.25.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.16.0 github.com/redis/go-redis/v9 v9.0.5 diff --git a/go.sum b/go.sum index 709ed6d5c..7252e4c2a 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/meilisearch/meilisearch-go v0.24.0 h1:GTP8LWZmkMYrGgX5BRZdkC2Txyp0mFYLzXYMlVV7cSQ= -github.com/meilisearch/meilisearch-go v0.24.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.25.0 h1:xIp+8YWterHuDvpdYlwQ4Qp7im3JlRHmSKiP0NvjyXs= +github.com/meilisearch/meilisearch-go v0.25.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= From bda5cce36d71173957cd8de7041bdeda04c8a6ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:31:48 +0800 Subject: [PATCH 055/888] build(deps): update module gorm.io/gorm to v1.25.2 (#371) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index e99c541d7..9cf082f81 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 - gorm.io/gorm v1.25.1 + gorm.io/gorm v1.25.2 gorm.io/plugin/dbresolver v1.4.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 7252e4c2a..458e140aa 100644 --- a/go.sum +++ b/go.sum @@ -680,8 +680,9 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= -gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= +gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.1 h1:NPampLxQujY+277452rt4yqtg6JmzNZ1jA2olk0eFXw= gorm.io/hints v1.1.1/go.mod h1:zdwzfFqvBWGbpuKiAhLFOSGSpeD3/VsRgkXR9Y7Z3cs= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= From f50dd571f1df69997cd5e519d3fe96d0c59b0db0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:31:59 +0800 Subject: [PATCH 056/888] build(deps): update module github.com/aws/aws-sdk-go to v1.44.294 (#369) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9cf082f81..380727f44 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.4 - github.com/aws/aws-sdk-go v1.44.273 + github.com/aws/aws-sdk-go v1.44.294 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 458e140aa..778c620df 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbK github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.273 h1:CX8O0gK+cGrgUyv7bgJ6QQP9mQg7u5mweHdNzULH47c= -github.com/aws/aws-sdk-go v1.44.273/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.294 h1:3x7GaEth+pDU9HwFcAU0awZlEix5CEdyIZvV08SlHa8= +github.com/aws/aws-sdk-go v1.44.294/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 5e4d9fb6fe1b7c70182e58f8a71635078e03cf4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:32:09 +0800 Subject: [PATCH 057/888] build(deps): update module github.com/go-playground/validator/v10 to v10.14.1 (#370) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 380727f44..101d484f6 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.14.0 + github.com/go-playground/validator/v10 v10.14.1 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index 778c620df..907cd77f7 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= -github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= +github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= From 00e6bfab5758eb9fe44ad77698a0030f0031afa1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:49:56 +0800 Subject: [PATCH 058/888] build(deps): update dependency conventional-changelog to v4 (#377) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 630 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 273 insertions(+), 359 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0eac9325..7243acef4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.33.6", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", - "conventional-changelog": "^3.1.25", + "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -39,30 +39,30 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -345,212 +345,183 @@ } }, "node_modules/conventional-changelog": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", - "dependencies": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-4.0.0.tgz", + "integrity": "sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==", + "dependencies": { + "conventional-changelog-angular": "^6.0.0", + "conventional-changelog-atom": "^3.0.0", + "conventional-changelog-codemirror": "^3.0.0", + "conventional-changelog-conventionalcommits": "^6.0.0", + "conventional-changelog-core": "^5.0.0", + "conventional-changelog-ember": "^3.0.0", + "conventional-changelog-eslint": "^4.0.0", + "conventional-changelog-express": "^3.0.0", + "conventional-changelog-jquery": "^4.0.0", + "conventional-changelog-jshint": "^3.0.0", + "conventional-changelog-preset-loader": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz", + "integrity": "sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz", + "integrity": "sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz", + "integrity": "sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug==", "dependencies": { "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", + "conventional-changelog-writer": "^6.0.0", + "conventional-commits-parser": "^4.0.0", + "dateformat": "^3.0.3", + "get-pkg-repo": "^4.2.1", + "git-raw-commits": "^3.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", + "git-semver-tags": "^5.0.0", + "normalize-package-data": "^3.0.3", "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "read-pkg-up": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz", + "integrity": "sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz", + "integrity": "sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz", + "integrity": "sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", - "dependencies": { - "q": "^1.5.1" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz", + "integrity": "sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz", + "integrity": "sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", + "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz", + "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==", "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", + "conventional-commits-filter": "^3.0.0", + "dateformat": "^3.0.3", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "meow": "^8.1.2", + "semver": "^6.3.0", + "split": "^1.0.1" }, "bin": { "conventional-changelog-writer": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", + "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", "dependencies": { "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "modify-values": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dependencies": { "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" }, "bin": { "conventional-commits-parser": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/core-util-is": { @@ -577,27 +548,30 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "engines": { "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "engines": { "node": ">=0.10.0" } @@ -637,7 +611,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } @@ -726,21 +700,19 @@ } }, "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", "dependencies": { "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "meow": "^8.1.2", + "split2": "^3.2.2" }, "bin": { "git-raw-commits": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/git-remote-origin-url": { @@ -756,18 +728,18 @@ } }, "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz", + "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==", "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "meow": "^8.1.2", + "semver": "^6.3.0" }, "bin": { "git-semver-tags": "cli.js" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/gitconfiglocal": { @@ -825,7 +797,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } @@ -900,7 +872,7 @@ "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "engines": { "node": ">=0.10.0" } @@ -908,7 +880,7 @@ "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dependencies": { "text-extensions": "^1.0.0" }, @@ -950,12 +922,12 @@ "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" ] @@ -1035,7 +1007,7 @@ "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" }, "node_modules/lru-cache": { "version": "6.0.0", @@ -1243,9 +1215,12 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minimist-options": { "version": "4.1.0", @@ -1300,9 +1275,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1512,15 +1487,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -1579,9 +1545,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -1856,15 +1822,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dependencies": { - "readable-stream": "3" - } + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/trim-newlines": { "version": "3.0.1", @@ -1886,9 +1844,9 @@ } }, "node_modules/uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -1914,7 +1872,7 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "node_modules/wrap-ansi": { "version": "7.0.0", @@ -2002,24 +1960,24 @@ } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.5" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } @@ -2265,161 +2223,132 @@ } }, "conventional-changelog": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", - "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", - "requires": { - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-atom": "^2.0.8", - "conventional-changelog-codemirror": "^2.0.8", - "conventional-changelog-conventionalcommits": "^4.5.0", - "conventional-changelog-core": "^4.2.1", - "conventional-changelog-ember": "^2.0.9", - "conventional-changelog-eslint": "^3.0.9", - "conventional-changelog-express": "^2.0.6", - "conventional-changelog-jquery": "^3.0.11", - "conventional-changelog-jshint": "^2.0.9", - "conventional-changelog-preset-loader": "^2.3.4" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-4.0.0.tgz", + "integrity": "sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==", + "requires": { + "conventional-changelog-angular": "^6.0.0", + "conventional-changelog-atom": "^3.0.0", + "conventional-changelog-codemirror": "^3.0.0", + "conventional-changelog-conventionalcommits": "^6.0.0", + "conventional-changelog-core": "^5.0.0", + "conventional-changelog-ember": "^3.0.0", + "conventional-changelog-eslint": "^4.0.0", + "conventional-changelog-express": "^3.0.0", + "conventional-changelog-jquery": "^4.0.0", + "conventional-changelog-jshint": "^3.0.0", + "conventional-changelog-preset-loader": "^3.0.0" } }, "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } }, "conventional-changelog-atom": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", - "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", - "requires": { - "q": "^1.5.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz", + "integrity": "sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==" }, "conventional-changelog-codemirror": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", - "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", - "requires": { - "q": "^1.5.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz", + "integrity": "sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==" }, "conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" } }, "conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz", + "integrity": "sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug==", "requires": { "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", + "conventional-changelog-writer": "^6.0.0", + "conventional-commits-parser": "^4.0.0", + "dateformat": "^3.0.3", + "get-pkg-repo": "^4.2.1", + "git-raw-commits": "^3.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", + "git-semver-tags": "^5.0.0", + "normalize-package-data": "^3.0.3", "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "read-pkg-up": "^3.0.0" } }, "conventional-changelog-ember": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", - "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", - "requires": { - "q": "^1.5.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz", + "integrity": "sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==" }, "conventional-changelog-eslint": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", - "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", - "requires": { - "q": "^1.5.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz", + "integrity": "sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==" }, "conventional-changelog-express": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", - "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", - "requires": { - "q": "^1.5.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz", + "integrity": "sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==" }, "conventional-changelog-jquery": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", - "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", - "requires": { - "q": "^1.5.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz", + "integrity": "sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==" }, "conventional-changelog-jshint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", - "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz", + "integrity": "sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==", "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "compare-func": "^2.0.0" } }, "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", + "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==" }, "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz", + "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==", "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", + "conventional-commits-filter": "^3.0.0", + "dateformat": "^3.0.3", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" + "meow": "^8.1.2", + "semver": "^6.3.0", + "split": "^1.0.1" } }, "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", + "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", "requires": { "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "modify-values": "^1.0.1" } }, "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "requires": { "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" } }, "core-util-is": { @@ -2440,12 +2369,12 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" }, "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -2454,7 +2383,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" } } }, @@ -2487,7 +2416,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "fast-safe-stringify": { "version": "2.1.1", @@ -2563,15 +2492,13 @@ } }, "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", "requires": { "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "meow": "^8.1.2", + "split2": "^3.2.2" } }, "git-remote-origin-url": { @@ -2584,12 +2511,12 @@ } }, "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz", + "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==", "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" + "meow": "^8.1.2", + "semver": "^6.3.0" } }, "gitconfiglocal": { @@ -2633,7 +2560,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "hosted-git-info": { "version": "4.1.0", @@ -2690,12 +2617,12 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" }, "is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "requires": { "text-extensions": "^1.0.0" } @@ -2731,12 +2658,12 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, "JSONStream": { "version": "1.3.5", @@ -2797,7 +2724,7 @@ "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" }, "lru-cache": { "version": "6.0.0", @@ -2948,9 +2875,9 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minimist-options": { "version": "4.1.0", @@ -2993,9 +2920,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "requires": { "lru-cache": "^6.0.0" } @@ -3151,11 +3078,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", @@ -3204,9 +3126,9 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -3416,15 +3338,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "trim-newlines": { "version": "3.0.1", @@ -3437,9 +3351,9 @@ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" }, "uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true }, "util-deprecate": { @@ -3459,7 +3373,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "wrap-ansi": { "version": "7.0.0", diff --git a/package.json b/package.json index 455ab7368..88d88f021 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", - "conventional-changelog": "^3.1.25", + "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From 6575b2d9d4216d9643d504243a108b6cc1e52158 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jul 2023 08:52:40 +0800 Subject: [PATCH 059/888] build(deps): update module google.golang.org/protobuf to v1.31.0 (#376) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 101d484f6..60a566c67 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( golang.org/x/crypto v0.10.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.30.0 + google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 diff --git a/go.sum b/go.sum index 907cd77f7..392af9490 100644 --- a/go.sum +++ b/go.sum @@ -636,8 +636,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 1de88e83a717f04508ae4893f328f990bd5533ba Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 6 Jul 2023 05:48:14 +0800 Subject: [PATCH 060/888] Update lint-review.yaml --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 73bb573b1..b117453f1 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -22,7 +22,7 @@ jobs: go-version: "1.20" cache: false - - run: npm i -g prettier + - run: npm i -g prettier@^2 - name: Checkout code uses: actions/checkout@v3 From 6c460557a1acf9aa25c5b6403ec4e06c33b7e94d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Jul 2023 02:14:21 +0800 Subject: [PATCH 061/888] fix: increase meilisearch timeout --- config/config.go | 5 +++-- internal/search/client.go | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/config.go b/config/config.go index 00972a44f..7cdee34bf 100644 --- a/config/config.go +++ b/config/config.go @@ -55,8 +55,9 @@ type AppConfig struct { Search struct { MeiliSearch struct { - URL string `yaml:"url" env:"MEILISEARCH_URL"` - Key string `yaml:"key" env:"MEILISEARCH_KEY"` + URL string `yaml:"url" env:"MEILISEARCH_URL"` + Key string `yaml:"key" env:"MEILISEARCH_KEY"` + Timeout time.Duration `yaml:"key" env:"MEILISEARCH_REQUEST_TIMEOUT" env-default:"2s"` } `yaml:"meilisearch"` SearchBatchSize int `env:"SEARCH_BATCH_SIZE" yaml:"batch_size" env-default:"100"` diff --git a/internal/search/client.go b/internal/search/client.go index 9584d258d..d1fe8afcc 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -63,7 +63,7 @@ func New( meili := meilisearch.NewClient(meilisearch.ClientConfig{ Host: cfg.Search.MeiliSearch.URL, APIKey: cfg.Search.MeiliSearch.Key, - Timeout: time.Second, + Timeout: cfg.Search.MeiliSearch.Timeout, }) if _, err := meili.GetVersion(); err != nil { From 2fbeaa57a357bdb8083a91753c35c13d2e9cb24c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Jul 2023 02:16:22 +0800 Subject: [PATCH 062/888] bump: 0.33.7 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7243acef4..dd2f74d7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.6", + "version": "0.33.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.6", + "version": "0.33.7", "dependencies": { "@apidevtools/json-schema-ref-parser": "^10.1.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index 88d88f021..212e41077 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.6", + "version": "0.33.7", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 202aefd7b7a88b16ddbc17df531ccc02d274b689 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Jul 2023 02:27:11 +0800 Subject: [PATCH 063/888] chore: upgrade prettier --- .github/scripts/write-version.js | 2 +- .github/workflows/lint-review.yaml | 2 +- openapi/index.html | 2 +- package-lock.json | 18 +++++++++--------- package.json | 2 +- scripts/changelog.js | 2 +- web/mw/recovery/debug.html | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/scripts/write-version.js b/.github/scripts/write-version.js index 5f59c3f31..02c5ba47d 100644 --- a/.github/scripts/write-version.js +++ b/.github/scripts/write-version.js @@ -47,7 +47,7 @@ function writeVersionFile() { "", `const Version = "${version}"`, "", - ].join("\n") + ].join("\n"), ); } diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index b117453f1..31d555c01 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -22,7 +22,7 @@ jobs: go-version: "1.20" cache: false - - run: npm i -g prettier@^2 + - run: npm i -g prettier@^3 - name: Checkout code uses: actions/checkout@v3 diff --git a/openapi/index.html b/openapi/index.html index 89c1ced99..04d1deb65 100644 --- a/openapi/index.html +++ b/openapi/index.html @@ -14,7 +14,7 @@ ~ along with this program. If not, see --> - + diff --git a/package-lock.json b/package-lock.json index dd2f74d7d..a98c4b843 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^2.8.8" + "prettier": "^3" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -1468,15 +1468,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -3068,9 +3068,9 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", "dev": true }, "process-nextick-args": { diff --git a/package.json b/package.json index 212e41077..932cc3018 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^2.8.8" + "prettier": "^3" }, "nodemonConfig": { "restartable": "rs", diff --git a/scripts/changelog.js b/scripts/changelog.js index 956bd0946..856f883e2 100644 --- a/scripts/changelog.js +++ b/scripts/changelog.js @@ -50,7 +50,7 @@ const s = conventionalChangelog( return commit; }, - } + }, ); let changelog = ""; diff --git a/web/mw/recovery/debug.html b/web/mw/recovery/debug.html index 7eb204489..eff1f46a1 100644 --- a/web/mw/recovery/debug.html +++ b/web/mw/recovery/debug.html @@ -1,4 +1,4 @@ - + From cb0a61dc4addad6ed139b24178fdee0c2acdca3e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Jul 2023 02:35:23 +0800 Subject: [PATCH 064/888] chore: downgrade @apidevtools/json-schema-ref-parser to v9 --- .github/workflows/test-openapi.yaml | 5 +- openapi/test.js | 2 +- package-lock.json | 76 ++++++----------------------- package.json | 2 +- 4 files changed, 21 insertions(+), 64 deletions(-) diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 0e9df4c6d..d23f8c4f8 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -20,7 +20,10 @@ on: jobs: test: - runs-on: ubuntu-22.04 + runs-on: "${{ matrix.os }}" + strategy: + matrix: + os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 diff --git a/openapi/test.js b/openapi/test.js index a72e033a3..944727c7d 100644 --- a/openapi/test.js +++ b/openapi/test.js @@ -23,7 +23,7 @@ const colors = require("colors/safe"); async function main() { const filePath = "v0.yaml"; - console.log("try to bundle", filePath); + console.log("try to bundle", path.join(__dirname, filePath)); const openapi = await $RefParser.bundle(path.join(__dirname, filePath)); try { diff --git a/package-lock.json b/package-lock.json index a98c4b843..2b0490654 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.7", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^10.1.0", + "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" @@ -21,21 +21,14 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", - "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.11", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" } }, "node_modules/@babel/code-frame": { @@ -159,19 +152,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, - "node_modules/@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" - }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", - "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -236,8 +216,7 @@ "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "node_modules/camelcase": { "version": "5.3.1", @@ -999,11 +978,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -1948,15 +1922,14 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz", - "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", "requires": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.11", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" } }, "@babel/code-frame": { @@ -2068,19 +2041,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, - "@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" - }, - "@types/lodash.clonedeep": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", - "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", - "requires": { - "@types/lodash": "*" - } - }, "@types/minimist": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", @@ -2133,8 +2093,7 @@ "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "camelcase": { "version": "5.3.1", @@ -2716,11 +2675,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", diff --git a/package.json b/package.json index 932cc3018..c2c1aa320 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^10.1.0", + "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" From 88b8088f7f398105de0caa512e8da425537bfee9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 18:54:48 +0800 Subject: [PATCH 065/888] fix: response header x-server-version and x-process-time-ms --- web/new.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/web/new.go b/web/new.go index 101e0c952..c532821fb 100644 --- a/web/new.go +++ b/web/new.go @@ -64,13 +64,16 @@ func New() *echo.Echo { return func(c echo.Context) error { metrics.RequestCount.Inc() start := time.Now() + c.Response().Header().Set(headerServerVersion, config.Version) + + c.Response().Before(func() { + sub := time.Since(start) + metrics.RequestHistogram.Observe(sub.Seconds()) + c.Response().Header().Set(headerProcessTime, strconv.FormatInt(sub.Milliseconds(), 10)) + }) err := next(c) - sub := time.Since(start) - metrics.RequestHistogram.Observe(sub.Seconds()) - c.Set(headerProcessTime, strconv.FormatInt(sub.Milliseconds(), 10)) - c.Set(headerServerVersion, config.Version) return err } }) From a966681956b92329357a1d93be814492470c511f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:07:33 +0800 Subject: [PATCH 066/888] ci: improve docker tag name --- .github/scripts/write-version.js | 4 +-- .github/workflows/release-docker.yaml | 48 +++++++++++++++++---------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/.github/scripts/write-version.js b/.github/scripts/write-version.js index 02c5ba47d..5c4eea733 100644 --- a/.github/scripts/write-version.js +++ b/.github/scripts/write-version.js @@ -21,8 +21,8 @@ const { execFileSync } = require("child_process"); const pkg = require("../../package.json"); function getVersion() { - if (process.env.TAG) { - return process.env.TAG; + if (process.env.SHA) { + return process.env.SHA; } return pkg.version; diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 0d31385ae..62d7cfc70 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -16,8 +16,6 @@ jobs: steps: - uses: actions/checkout@v3 - with: - fetch-depth: 0 - name: Install Go uses: actions/setup-go@v4 @@ -36,16 +34,14 @@ jobs: go-cache-119-${{ hashFiles('**/go.sum') }}- go-cache-119- - - run: | - echo "TAG=master-$(git describe --match='v*' --tags)" >> $GITHUB_ENV - echo "REF=master" >> $GITHUB_ENV - if: "${{ !startsWith(github.ref, 'refs/tags/') }}" - - - run: | - echo "TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV - echo "REF=latest" >> $GITHUB_ENV + - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" + - run: echo "SHA=$(git show --no-patch --no-notes --date=short-local --pretty='%as-%h')" >> $GITHUB_ENV + if: "${{ !startsWith(github.ref, 'refs/tags/') }}" + env: + TZ: UTC + - run: node .github/scripts/write-version.js - name: Install Task @@ -56,7 +52,21 @@ jobs: - run: task build name: Build Binary - - run: docker build -t current -f etc/Dockerfile . + - name: Docker metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.IMAGE }} + tags: | + type=semver,pattern=v{{version}} + + type=ref,event=branch + type=ref,event=branch,suffix=-${{ env.SHA }} + + type=sha + type=sha,prefix={{branch}}- + + type=raw,value=${{ env.SHA }} - uses: docker/login-action@v2 with: @@ -64,10 +74,12 @@ jobs: username: ${{ github.actor }} password: ${{ github.token }} - - name: push tags - run: | - docker tag current "${IMAGE}:${REF}" - docker push "${IMAGE}:${REF}" - - docker tag current "${IMAGE}:${TAG}" - docker push "${IMAGE}:${TAG}" + - name: Build Final Docker Image + uses: docker/build-push-action@v4 + with: + context: ./ + provenance: false + file: etc/Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 3e80ea507dd961d4773de6e93098f5510c95c09c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:09:38 +0800 Subject: [PATCH 067/888] bump: 0.33.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b0490654..8a7affd15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.7", + "version": "0.33.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.7", + "version": "0.33.8", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index c2c1aa320..5d33de554 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.7", + "version": "0.33.8", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 5915df4fff5469c1d06493f34084e65878ca1fc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 19:10:33 +0800 Subject: [PATCH 068/888] build(deps): bump semver from 5.7.1 to 5.7.2 (#380) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 48 +++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8a7affd15..2555ee8f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1173,9 +1173,9 @@ } }, "node_modules/meow/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -1249,9 +1249,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1511,9 +1511,9 @@ } }, "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -1596,9 +1596,9 @@ ] }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -2817,9 +2817,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" } } }, @@ -2874,9 +2874,9 @@ }, "dependencies": { "semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -3064,9 +3064,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" } } }, @@ -3125,9 +3125,9 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "should": { "version": "13.2.3", From 20bde20e40d3065881788c511dc73be2a000d958 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:13:55 +0800 Subject: [PATCH 069/888] ci: fix docker tag --- .github/scripts/write-version.js | 2 +- .github/workflows/release-docker.yaml | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/scripts/write-version.js b/.github/scripts/write-version.js index 5c4eea733..f5665077c 100644 --- a/.github/scripts/write-version.js +++ b/.github/scripts/write-version.js @@ -25,7 +25,7 @@ function getVersion() { return process.env.SHA; } - return pkg.version; + return "v" + pkg.version; } const version = getVersion(); diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 62d7cfc70..dc11f983f 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -34,7 +34,7 @@ jobs: go-cache-119-${{ hashFiles('**/go.sum') }}- go-cache-119- - - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV + - run: echo "SHA=v${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" - run: echo "SHA=$(git show --no-patch --no-notes --date=short-local --pretty='%as-%h')" >> $GITHUB_ENV @@ -62,11 +62,9 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} + type=raw,event=branch,value=${{ env.SHA }} type=sha - type=sha,prefix={{branch}}- - - type=raw,value=${{ env.SHA }} - uses: docker/login-action@v2 with: From cf32001070dd0923077cc4a4a898fc7b88489872 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:14:13 +0800 Subject: [PATCH 070/888] bump: 0.33.9 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2555ee8f9..a55677729 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.8", + "version": "0.33.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.8", + "version": "0.33.9", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index 5d33de554..27680281b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.8", + "version": "0.33.9", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 78101927058a88ba67328f0e8ad0b4f752f7e9ec Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:20:58 +0800 Subject: [PATCH 071/888] ci: fix docker tag --- .github/workflows/release-docker.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index dc11f983f..9d4ee7d7a 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -6,6 +6,10 @@ on: - "v*.*.*" branches: - master + +permissions: + packages: write + jobs: docker: name: "docker" @@ -58,13 +62,10 @@ jobs: with: images: ${{ env.IMAGE }} tags: | - type=semver,pattern=v{{version}} + type=semver,event=tag,pattern=v{{version}} type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - type=raw,event=branch,value=${{ env.SHA }} - - type=sha - uses: docker/login-action@v2 with: From 9b7af1691e5b3f0611521f45ca9c80e768b22eaf Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 19:30:02 +0800 Subject: [PATCH 072/888] bump: 0.33.10 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a55677729..82b1ddd22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.9", + "version": "0.33.10", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.9", + "version": "0.33.10", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index 27680281b..65ff876af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.9", + "version": "0.33.10", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 9aecca64a2b3b902a22e76b317503069ed0207ec Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 20:48:27 +0800 Subject: [PATCH 073/888] ci: fix tagged version double `v` prefix --- .github/workflows/release-docker.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 9d4ee7d7a..993fbba22 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -38,7 +38,7 @@ jobs: go-cache-119-${{ hashFiles('**/go.sum') }}- go-cache-119- - - run: echo "SHA=v${GITHUB_REF##*/}" >> $GITHUB_ENV + - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" - run: echo "SHA=$(git show --no-patch --no-notes --date=short-local --pretty='%as-%h')" >> $GITHUB_ENV @@ -62,7 +62,7 @@ jobs: with: images: ${{ env.IMAGE }} tags: | - type=semver,event=tag,pattern=v{{version}} + type=semver,event=tag,pattern={{version}} type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} From a5840c5fa8a918a00de20485d2b238e746636742 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 20:48:38 +0800 Subject: [PATCH 074/888] bump: 0.33.11 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82b1ddd22..c42d85515 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.10", + "version": "0.33.11", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.10", + "version": "0.33.11", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index 65ff876af..15589becc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.10", + "version": "0.33.11", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From cdae4bcc2d3bb3b7764cb12b20c9729ccb102bf7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 20:52:10 +0800 Subject: [PATCH 075/888] ci: add `v` prefix to docker tag --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 993fbba22..95a3b559e 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -62,7 +62,7 @@ jobs: with: images: ${{ env.IMAGE }} tags: | - type=semver,event=tag,pattern={{version}} + type=semver,event=tag,pattern=v{{version}} type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} From 746ecfc2ed595d52d28b2303b2316f00c126d88f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 11 Jul 2023 20:52:14 +0800 Subject: [PATCH 076/888] bump: 0.33.12 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c42d85515..5f243241b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.11", + "version": "0.33.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.11", + "version": "0.33.12", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index 15589becc..d36566d70 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.11", + "version": "0.33.12", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From e6918af3ef62b53f37b8e00ee72826cbc3f57c96 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 14 Jul 2023 14:20:49 +0800 Subject: [PATCH 077/888] docs: go version --- a.txt | 3 +++ readme.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 a.txt diff --git a/a.txt b/a.txt new file mode 100644 index 000000000..bc30a9330 --- /dev/null +++ b/a.txt @@ -0,0 +1,3 @@ +topk(10, sum ({job="nginx"} |= `api.bgm.tv` | json [1h]) by (remote_addr)) + +topk(10,sum(rate({job="nginx"}|= `api.bgm.tv` | json[5m])) by (remote_addr)) diff --git a/readme.md b/readme.md index c61b8f458..123eb9953 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ ## Requirements -- [Go 1.19](https://go.dev/) +- [Go 1.20](https://go.dev/) - [go-task](https://taskfile.dev/installation/),使用 `task` 查看所有的构建目标。 - [golangci-lint](https://golangci-lint.run/),使用 `task lint` 运行 linter。 From 662fddd2fb4d36d7657007b0fc3e369998ffedc5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 14:39:05 +0800 Subject: [PATCH 078/888] build(deps): update gorm.io/gen digest to v0.3.23 (#368) --- cmd/gen/gorm/main.go | 34 +++++++++--------- dal/query/chii_characters.gen.go | 6 ++-- dal/query/chii_crt_cast_index.gen.go | 6 ++-- dal/query/chii_crt_subject_index.gen.go | 8 ++--- dal/query/chii_ep_status.gen.go | 8 ++--- dal/query/chii_episodes.gen.go | 6 ++-- dal/query/chii_friends.gen.go | 6 ++-- dal/query/chii_index.gen.go | 6 ++-- dal/query/chii_index_collects.gen.go | 8 ++--- dal/query/chii_index_related.gen.go | 8 ++--- dal/query/chii_members.gen.go | 6 ++-- dal/query/chii_notify.gen.go | 8 ++--- dal/query/chii_notify_field.gen.go | 8 ++--- dal/query/chii_oauth_access_tokens.gen.go | 6 ++-- dal/query/chii_os_web_sessions.gen.go | 6 ++-- dal/query/chii_person_cs_index.gen.go | 8 ++--- dal/query/chii_person_fields.gen.go | 6 ++-- dal/query/chii_persons.gen.go | 6 ++-- dal/query/chii_pms.gen.go | 8 ++--- dal/query/chii_rev_history.gen.go | 8 ++--- dal/query/chii_rev_text.gen.go | 8 ++--- dal/query/chii_subject_fields.gen.go | 8 ++--- dal/query/chii_subject_interests.gen.go | 8 ++--- dal/query/chii_subject_relations.gen.go | 8 ++--- dal/query/chii_subject_revisions.gen.go | 8 ++--- dal/query/chii_subjects.gen.go | 6 ++-- dal/query/chii_usergroup.gen.go | 6 ++-- go.mod | 16 ++++----- go.sum | 44 ++++++++++++----------- 29 files changed, 128 insertions(+), 150 deletions(-) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 731a12024..d53ae03a4 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -167,7 +167,7 @@ func main() { gen.FieldType("password_crypt", "[]byte"), gen.FieldType("groupid", "uint8"), gen.FieldRelate(field.HasOne, "Fields", modelField, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "uid", "references": "uid"}, + GORMTag: field.GormTag{"foreignKey": []string{"uid"}, "references": []string{"uid"}}, })) g.ApplyBasic(modelMember) @@ -226,7 +226,7 @@ func main() { gen.FieldType("idx_ban", "soft_delete.DeletedAt"), gen.FieldRename("idx_ban", "Deleted"), gen.FieldGORMTag("idx_ban", func(tag field.GormTag) field.GormTag { - tag["softDelete"] = "flag" + tag["softDelete"] = []string{"flag"} return tag }), )) @@ -262,7 +262,7 @@ func main() { gen.FieldType("prsn_writer", "bool"), gen.FieldType("prsn_redirect", personIDTypeString), gen.FieldRelate(field.HasOne, "Fields", modelPersonField, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "prsn_id", "polymorphic": "Owner", "polymorphicValue": "prsn"}, + GORMTag: field.GormTag{"foreignKey": []string{"prsn_id"}, "polymorphic": []string{"Owner"}, "polymorphicValue": []string{"prsn"}}, }), ) g.ApplyBasic(modelPerson) @@ -274,7 +274,7 @@ func main() { gen.FieldType("crt_id", characterIDTypeString), gen.FieldType("crt_redirect", characterIDTypeString), gen.FieldRelate(field.HasOne, "Fields", modelPersonField, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "crt_id", "polymorphic": "Owner", "polymorphicValue": "crt"}, + GORMTag: field.GormTag{"foreignKey": []string{"crt_id"}, "polymorphic": []string{"Owner"}, "polymorphicValue": []string{"crt"}}, }), ) @@ -307,7 +307,7 @@ func main() { gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldType("subject_airtime", "uint8"), gen.FieldRelate(field.HasOne, "Fields", modelSubjectFields, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "field_sid"}, + GORMTag: field.GormTag{"foreignKey": []string{"subject_id"}, "references": []string{"field_sid"}}, }), ) g.ApplyBasic(modelSubject) @@ -319,7 +319,7 @@ func main() { gen.FieldType("ep_type", episodeTypeTypeString), gen.FieldType("ep_subject_id", subjectIDTypeString), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "ep_subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"ep_subject_id"}, "references": []string{"subject_id"}}, }), )) @@ -341,7 +341,7 @@ func main() { gen.FieldType("rlt_subject_type_id", subjectTypeIDTypeString), gen.FieldType("rlt_related_subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "rlt_related_subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"rlt_related_subject_id"}, "references": []string{"subject_id"}}, }), )) @@ -352,7 +352,7 @@ func main() { gen.FieldType("rev_creator", userIDTypeString), gen.FieldType("rev_subject_id", subjectIDTypeString), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "rev_subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"rev_subject_id"}, "references": []string{"subject_id"}}, }), )) @@ -363,13 +363,13 @@ func main() { gen.FieldType("prsn_id", personIDTypeString), gen.FieldType("subject_id", subjectIDTypeString), gen.FieldRelate(field.HasOne, "Character", modelCharacter, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "crt_id", "references": "crt_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"crt_id"}, "references": []string{"crt_id"}}, }), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"subject_id"}, "references": []string{"subject_id"}}, }), gen.FieldRelate(field.HasOne, "Person", modelPerson, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "prsn_id", "references": "prsn_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"prsn_id"}, "references": []string{"prsn_id"}}, }), )) @@ -380,10 +380,10 @@ func main() { gen.FieldType("subject_id", subjectIDTypeString), gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Character", modelCharacter, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "crt_id", "references": "crt_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"crt_id"}, "references": []string{"crt_id"}}, }), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"subject_id"}, "references": []string{"subject_id"}}, }), ), ) @@ -394,10 +394,10 @@ func main() { gen.FieldType("subject_id", subjectIDTypeString), gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldRelate(field.HasOne, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "subject_id", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"subject_id"}, "references": []string{"subject_id"}}, }), gen.FieldRelate(field.HasOne, "Person", modelPerson, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "prsn_id", "references": "prsn_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"prsn_id"}, "references": []string{"prsn_id"}}, }), ), ) @@ -406,7 +406,7 @@ func main() { gen.FieldTrimPrefix("idx_rlt_"), gen.FieldType("idx_rlt_type", "uint8"), gen.FieldRelate(field.BelongsTo, "Subject", modelSubject, &field.RelateConfig{ - GORMTag: field.GormTag{"foreignKey": "idx_rlt_sid", "references": "subject_id"}, + GORMTag: field.GormTag{"foreignKey": []string{"idx_rlt_sid"}, "references": []string{"subject_id"}}, }), // 变量重命名 gen.FieldRename("idx_rlt_rid", "IndexID"), @@ -416,7 +416,7 @@ func main() { gen.FieldType("idx_rlt_ban", "soft_delete.DeletedAt"), gen.FieldRename("idx_rlt_ban", "Deleted"), gen.FieldGORMTag("idx_rlt_ban", func(tag field.GormTag) field.GormTag { - tag["softDelete"] = "flag" + tag["softDelete"] = []string{"flag"} return tag }), )) diff --git a/dal/query/chii_characters.gen.go b/dal/query/chii_characters.gen.go index e30a1a70c..64e9f2c43 100644 --- a/dal/query/chii_characters.gen.go +++ b/dal/query/chii_characters.gen.go @@ -121,6 +121,8 @@ func (c character) TableName() string { return c.characterDo.TableName() } func (c character) Alias() string { return c.characterDo.Alias() } +func (c character) Columns(cols ...field.Expr) gen.Columns { return c.characterDo.Columns(cols...) } + func (c *character) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := c.fieldMap[fieldName] if !ok || _f == nil { @@ -278,10 +280,6 @@ func (c characterDo) Where(conds ...gen.Condition) *characterDo { return c.withDO(c.DO.Where(conds...)) } -func (c characterDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *characterDo { - return c.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (c characterDo) Order(conds ...field.Expr) *characterDo { return c.withDO(c.DO.Order(conds...)) } diff --git a/dal/query/chii_crt_cast_index.gen.go b/dal/query/chii_crt_cast_index.gen.go index a12f81f57..0382f5082 100644 --- a/dal/query/chii_crt_cast_index.gen.go +++ b/dal/query/chii_crt_cast_index.gen.go @@ -117,6 +117,8 @@ func (c cast) TableName() string { return c.castDo.TableName() } func (c cast) Alias() string { return c.castDo.Alias() } +func (c cast) Columns(cols ...field.Expr) gen.Columns { return c.castDo.Columns(cols...) } + func (c *cast) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := c.fieldMap[fieldName] if !ok || _f == nil { @@ -417,10 +419,6 @@ func (c castDo) Where(conds ...gen.Condition) *castDo { return c.withDO(c.DO.Where(conds...)) } -func (c castDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *castDo { - return c.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (c castDo) Order(conds ...field.Expr) *castDo { return c.withDO(c.DO.Order(conds...)) } diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index a71341a25..10be0b8b0 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -109,6 +109,10 @@ func (c characterSubjects) TableName() string { return c.characterSubjectsDo.Tab func (c characterSubjects) Alias() string { return c.characterSubjectsDo.Alias() } +func (c characterSubjects) Columns(cols ...field.Expr) gen.Columns { + return c.characterSubjectsDo.Columns(cols...) +} + func (c *characterSubjects) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := c.fieldMap[fieldName] if !ok || _f == nil { @@ -335,10 +339,6 @@ func (c characterSubjectsDo) Where(conds ...gen.Condition) *characterSubjectsDo return c.withDO(c.DO.Where(conds...)) } -func (c characterSubjectsDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *characterSubjectsDo { - return c.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (c characterSubjectsDo) Order(conds ...field.Expr) *characterSubjectsDo { return c.withDO(c.DO.Order(conds...)) } diff --git a/dal/query/chii_ep_status.gen.go b/dal/query/chii_ep_status.gen.go index bb3e88ca2..ca7a76a11 100644 --- a/dal/query/chii_ep_status.gen.go +++ b/dal/query/chii_ep_status.gen.go @@ -85,6 +85,10 @@ func (e epCollection) TableName() string { return e.epCollectionDo.TableName() } func (e epCollection) Alias() string { return e.epCollectionDo.Alias() } +func (e epCollection) Columns(cols ...field.Expr) gen.Columns { + return e.epCollectionDo.Columns(cols...) +} + func (e *epCollection) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := e.fieldMap[fieldName] if !ok || _f == nil { @@ -160,10 +164,6 @@ func (e epCollectionDo) Where(conds ...gen.Condition) *epCollectionDo { return e.withDO(e.DO.Where(conds...)) } -func (e epCollectionDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *epCollectionDo { - return e.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (e epCollectionDo) Order(conds ...field.Expr) *epCollectionDo { return e.withDO(e.DO.Order(conds...)) } diff --git a/dal/query/chii_episodes.gen.go b/dal/query/chii_episodes.gen.go index 30da00afc..ca282ffd5 100644 --- a/dal/query/chii_episodes.gen.go +++ b/dal/query/chii_episodes.gen.go @@ -130,6 +130,8 @@ func (e episode) TableName() string { return e.episodeDo.TableName() } func (e episode) Alias() string { return e.episodeDo.Alias() } +func (e episode) Columns(cols ...field.Expr) gen.Columns { return e.episodeDo.Columns(cols...) } + func (e *episode) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := e.fieldMap[fieldName] if !ok || _f == nil { @@ -293,10 +295,6 @@ func (e episodeDo) Where(conds ...gen.Condition) *episodeDo { return e.withDO(e.DO.Where(conds...)) } -func (e episodeDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *episodeDo { - return e.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (e episodeDo) Order(conds ...field.Expr) *episodeDo { return e.withDO(e.DO.Order(conds...)) } diff --git a/dal/query/chii_friends.gen.go b/dal/query/chii_friends.gen.go index 821f7ae80..331d4aa70 100644 --- a/dal/query/chii_friends.gen.go +++ b/dal/query/chii_friends.gen.go @@ -80,6 +80,8 @@ func (f friend) TableName() string { return f.friendDo.TableName() } func (f friend) Alias() string { return f.friendDo.Alias() } +func (f friend) Columns(cols ...field.Expr) gen.Columns { return f.friendDo.Columns(cols...) } + func (f *friend) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := f.fieldMap[fieldName] if !ok || _f == nil { @@ -154,10 +156,6 @@ func (f friendDo) Where(conds ...gen.Condition) *friendDo { return f.withDO(f.DO.Where(conds...)) } -func (f friendDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *friendDo { - return f.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (f friendDo) Order(conds ...field.Expr) *friendDo { return f.withDO(f.DO.Order(conds...)) } diff --git a/dal/query/chii_index.gen.go b/dal/query/chii_index.gen.go index 760aad9ab..334fb4e9c 100644 --- a/dal/query/chii_index.gen.go +++ b/dal/query/chii_index.gen.go @@ -101,6 +101,8 @@ func (i index) TableName() string { return i.indexDo.TableName() } func (i index) Alias() string { return i.indexDo.Alias() } +func (i index) Columns(cols ...field.Expr) gen.Columns { return i.indexDo.Columns(cols...) } + func (i *index) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := i.fieldMap[fieldName] if !ok || _f == nil { @@ -182,10 +184,6 @@ func (i indexDo) Where(conds ...gen.Condition) *indexDo { return i.withDO(i.DO.Where(conds...)) } -func (i indexDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *indexDo { - return i.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (i indexDo) Order(conds ...field.Expr) *indexDo { return i.withDO(i.DO.Order(conds...)) } diff --git a/dal/query/chii_index_collects.gen.go b/dal/query/chii_index_collects.gen.go index 1fbc96a97..21b49da63 100644 --- a/dal/query/chii_index_collects.gen.go +++ b/dal/query/chii_index_collects.gen.go @@ -79,6 +79,10 @@ func (i indexCollect) TableName() string { return i.indexCollectDo.TableName() } func (i indexCollect) Alias() string { return i.indexCollectDo.Alias() } +func (i indexCollect) Columns(cols ...field.Expr) gen.Columns { + return i.indexCollectDo.Columns(cols...) +} + func (i *indexCollect) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := i.fieldMap[fieldName] if !ok || _f == nil { @@ -152,10 +156,6 @@ func (i indexCollectDo) Where(conds ...gen.Condition) *indexCollectDo { return i.withDO(i.DO.Where(conds...)) } -func (i indexCollectDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *indexCollectDo { - return i.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (i indexCollectDo) Order(conds ...field.Expr) *indexCollectDo { return i.withDO(i.DO.Order(conds...)) } diff --git a/dal/query/chii_index_related.gen.go b/dal/query/chii_index_related.gen.go index 92057431a..0995e766c 100644 --- a/dal/query/chii_index_related.gen.go +++ b/dal/query/chii_index_related.gen.go @@ -105,6 +105,10 @@ func (i indexSubject) TableName() string { return i.indexSubjectDo.TableName() } func (i indexSubject) Alias() string { return i.indexSubjectDo.Alias() } +func (i indexSubject) Columns(cols ...field.Expr) gen.Columns { + return i.indexSubjectDo.Columns(cols...) +} + func (i *indexSubject) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := i.fieldMap[fieldName] if !ok || _f == nil { @@ -259,10 +263,6 @@ func (i indexSubjectDo) Where(conds ...gen.Condition) *indexSubjectDo { return i.withDO(i.DO.Where(conds...)) } -func (i indexSubjectDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *indexSubjectDo { - return i.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (i indexSubjectDo) Order(conds ...field.Expr) *indexSubjectDo { return i.withDO(i.DO.Order(conds...)) } diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index 1ff8c8740..23de42ee5 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -125,6 +125,8 @@ func (m member) TableName() string { return m.memberDo.TableName() } func (m member) Alias() string { return m.memberDo.Alias() } +func (m member) Columns(cols ...field.Expr) gen.Columns { return m.memberDo.Columns(cols...) } + func (m *member) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := m.fieldMap[fieldName] if !ok || _f == nil { @@ -284,10 +286,6 @@ func (m memberDo) Where(conds ...gen.Condition) *memberDo { return m.withDO(m.DO.Where(conds...)) } -func (m memberDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *memberDo { - return m.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (m memberDo) Order(conds ...field.Expr) *memberDo { return m.withDO(m.DO.Order(conds...)) } diff --git a/dal/query/chii_notify.gen.go b/dal/query/chii_notify.gen.go index 2a917c086..11273b50a 100644 --- a/dal/query/chii_notify.gen.go +++ b/dal/query/chii_notify.gen.go @@ -91,6 +91,10 @@ func (n notification) TableName() string { return n.notificationDo.TableName() } func (n notification) Alias() string { return n.notificationDo.Alias() } +func (n notification) Columns(cols ...field.Expr) gen.Columns { + return n.notificationDo.Columns(cols...) +} + func (n *notification) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := n.fieldMap[fieldName] if !ok || _f == nil { @@ -168,10 +172,6 @@ func (n notificationDo) Where(conds ...gen.Condition) *notificationDo { return n.withDO(n.DO.Where(conds...)) } -func (n notificationDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *notificationDo { - return n.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (n notificationDo) Order(conds ...field.Expr) *notificationDo { return n.withDO(n.DO.Order(conds...)) } diff --git a/dal/query/chii_notify_field.gen.go b/dal/query/chii_notify_field.gen.go index 4ef2b8316..363945ce1 100644 --- a/dal/query/chii_notify_field.gen.go +++ b/dal/query/chii_notify_field.gen.go @@ -79,6 +79,10 @@ func (n notificationField) TableName() string { return n.notificationFieldDo.Tab func (n notificationField) Alias() string { return n.notificationFieldDo.Alias() } +func (n notificationField) Columns(cols ...field.Expr) gen.Columns { + return n.notificationFieldDo.Columns(cols...) +} + func (n *notificationField) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := n.fieldMap[fieldName] if !ok || _f == nil { @@ -152,10 +156,6 @@ func (n notificationFieldDo) Where(conds ...gen.Condition) *notificationFieldDo return n.withDO(n.DO.Where(conds...)) } -func (n notificationFieldDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *notificationFieldDo { - return n.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (n notificationFieldDo) Order(conds ...field.Expr) *notificationFieldDo { return n.withDO(n.DO.Order(conds...)) } diff --git a/dal/query/chii_oauth_access_tokens.gen.go b/dal/query/chii_oauth_access_tokens.gen.go index d5b0e8226..803aa502e 100644 --- a/dal/query/chii_oauth_access_tokens.gen.go +++ b/dal/query/chii_oauth_access_tokens.gen.go @@ -91,6 +91,8 @@ func (a accessToken) TableName() string { return a.accessTokenDo.TableName() } func (a accessToken) Alias() string { return a.accessTokenDo.Alias() } +func (a accessToken) Columns(cols ...field.Expr) gen.Columns { return a.accessTokenDo.Columns(cols...) } + func (a *accessToken) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := a.fieldMap[fieldName] if !ok || _f == nil { @@ -168,10 +170,6 @@ func (a accessTokenDo) Where(conds ...gen.Condition) *accessTokenDo { return a.withDO(a.DO.Where(conds...)) } -func (a accessTokenDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *accessTokenDo { - return a.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (a accessTokenDo) Order(conds ...field.Expr) *accessTokenDo { return a.withDO(a.DO.Order(conds...)) } diff --git a/dal/query/chii_os_web_sessions.gen.go b/dal/query/chii_os_web_sessions.gen.go index 962a47554..7c43b1c17 100644 --- a/dal/query/chii_os_web_sessions.gen.go +++ b/dal/query/chii_os_web_sessions.gen.go @@ -82,6 +82,8 @@ func (w webSession) TableName() string { return w.webSessionDo.TableName() } func (w webSession) Alias() string { return w.webSessionDo.Alias() } +func (w webSession) Columns(cols ...field.Expr) gen.Columns { return w.webSessionDo.Columns(cols...) } + func (w *webSession) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := w.fieldMap[fieldName] if !ok || _f == nil { @@ -156,10 +158,6 @@ func (w webSessionDo) Where(conds ...gen.Condition) *webSessionDo { return w.withDO(w.DO.Where(conds...)) } -func (w webSessionDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *webSessionDo { - return w.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (w webSessionDo) Order(conds ...field.Expr) *webSessionDo { return w.withDO(w.DO.Order(conds...)) } diff --git a/dal/query/chii_person_cs_index.gen.go b/dal/query/chii_person_cs_index.gen.go index 79795f417..6ffc636cc 100644 --- a/dal/query/chii_person_cs_index.gen.go +++ b/dal/query/chii_person_cs_index.gen.go @@ -112,6 +112,10 @@ func (p personSubjects) TableName() string { return p.personSubjectsDo.TableName func (p personSubjects) Alias() string { return p.personSubjectsDo.Alias() } +func (p personSubjects) Columns(cols ...field.Expr) gen.Columns { + return p.personSubjectsDo.Columns(cols...) +} + func (p *personSubjects) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := p.fieldMap[fieldName] if !ok || _f == nil { @@ -339,10 +343,6 @@ func (p personSubjectsDo) Where(conds ...gen.Condition) *personSubjectsDo { return p.withDO(p.DO.Where(conds...)) } -func (p personSubjectsDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *personSubjectsDo { - return p.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (p personSubjectsDo) Order(conds ...field.Expr) *personSubjectsDo { return p.withDO(p.DO.Order(conds...)) } diff --git a/dal/query/chii_person_fields.gen.go b/dal/query/chii_person_fields.gen.go index cd4330673..deb5853aa 100644 --- a/dal/query/chii_person_fields.gen.go +++ b/dal/query/chii_person_fields.gen.go @@ -88,6 +88,8 @@ func (p personField) TableName() string { return p.personFieldDo.TableName() } func (p personField) Alias() string { return p.personFieldDo.Alias() } +func (p personField) Columns(cols ...field.Expr) gen.Columns { return p.personFieldDo.Columns(cols...) } + func (p *personField) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := p.fieldMap[fieldName] if !ok || _f == nil { @@ -164,10 +166,6 @@ func (p personFieldDo) Where(conds ...gen.Condition) *personFieldDo { return p.withDO(p.DO.Where(conds...)) } -func (p personFieldDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *personFieldDo { - return p.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (p personFieldDo) Order(conds ...field.Expr) *personFieldDo { return p.withDO(p.DO.Order(conds...)) } diff --git a/dal/query/chii_persons.gen.go b/dal/query/chii_persons.gen.go index 501aae12f..a8c556d18 100644 --- a/dal/query/chii_persons.gen.go +++ b/dal/query/chii_persons.gen.go @@ -140,6 +140,8 @@ func (p person) TableName() string { return p.personDo.TableName() } func (p person) Alias() string { return p.personDo.Alias() } +func (p person) Columns(cols ...field.Expr) gen.Columns { return p.personDo.Columns(cols...) } + func (p *person) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := p.fieldMap[fieldName] if !ok || _f == nil { @@ -304,10 +306,6 @@ func (p personDo) Where(conds ...gen.Condition) *personDo { return p.withDO(p.DO.Where(conds...)) } -func (p personDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *personDo { - return p.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (p personDo) Order(conds ...field.Expr) *personDo { return p.withDO(p.DO.Order(conds...)) } diff --git a/dal/query/chii_pms.gen.go b/dal/query/chii_pms.gen.go index cda94647d..c8e0851a8 100644 --- a/dal/query/chii_pms.gen.go +++ b/dal/query/chii_pms.gen.go @@ -103,6 +103,10 @@ func (p privateMessage) TableName() string { return p.privateMessageDo.TableName func (p privateMessage) Alias() string { return p.privateMessageDo.Alias() } +func (p privateMessage) Columns(cols ...field.Expr) gen.Columns { + return p.privateMessageDo.Columns(cols...) +} + func (p *privateMessage) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := p.fieldMap[fieldName] if !ok || _f == nil { @@ -184,10 +188,6 @@ func (p privateMessageDo) Where(conds ...gen.Condition) *privateMessageDo { return p.withDO(p.DO.Where(conds...)) } -func (p privateMessageDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *privateMessageDo { - return p.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (p privateMessageDo) Order(conds ...field.Expr) *privateMessageDo { return p.withDO(p.DO.Order(conds...)) } diff --git a/dal/query/chii_rev_history.gen.go b/dal/query/chii_rev_history.gen.go index e5b1dc31d..6c5cd22ee 100644 --- a/dal/query/chii_rev_history.gen.go +++ b/dal/query/chii_rev_history.gen.go @@ -88,6 +88,10 @@ func (r revisionHistory) TableName() string { return r.revisionHistoryDo.TableNa func (r revisionHistory) Alias() string { return r.revisionHistoryDo.Alias() } +func (r revisionHistory) Columns(cols ...field.Expr) gen.Columns { + return r.revisionHistoryDo.Columns(cols...) +} + func (r *revisionHistory) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := r.fieldMap[fieldName] if !ok || _f == nil { @@ -164,10 +168,6 @@ func (r revisionHistoryDo) Where(conds ...gen.Condition) *revisionHistoryDo { return r.withDO(r.DO.Where(conds...)) } -func (r revisionHistoryDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *revisionHistoryDo { - return r.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (r revisionHistoryDo) Order(conds ...field.Expr) *revisionHistoryDo { return r.withDO(r.DO.Order(conds...)) } diff --git a/dal/query/chii_rev_text.gen.go b/dal/query/chii_rev_text.gen.go index f2c47888b..2cb3dab7d 100644 --- a/dal/query/chii_rev_text.gen.go +++ b/dal/query/chii_rev_text.gen.go @@ -73,6 +73,10 @@ func (r revisionText) TableName() string { return r.revisionTextDo.TableName() } func (r revisionText) Alias() string { return r.revisionTextDo.Alias() } +func (r revisionText) Columns(cols ...field.Expr) gen.Columns { + return r.revisionTextDo.Columns(cols...) +} + func (r *revisionText) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := r.fieldMap[fieldName] if !ok || _f == nil { @@ -144,10 +148,6 @@ func (r revisionTextDo) Where(conds ...gen.Condition) *revisionTextDo { return r.withDO(r.DO.Where(conds...)) } -func (r revisionTextDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *revisionTextDo { - return r.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (r revisionTextDo) Order(conds ...field.Expr) *revisionTextDo { return r.withDO(r.DO.Order(conds...)) } diff --git a/dal/query/chii_subject_fields.gen.go b/dal/query/chii_subject_fields.gen.go index f92ae5eb0..194938696 100644 --- a/dal/query/chii_subject_fields.gen.go +++ b/dal/query/chii_subject_fields.gen.go @@ -127,6 +127,10 @@ func (s subjectField) TableName() string { return s.subjectFieldDo.TableName() } func (s subjectField) Alias() string { return s.subjectFieldDo.Alias() } +func (s subjectField) Columns(cols ...field.Expr) gen.Columns { + return s.subjectFieldDo.Columns(cols...) +} + func (s *subjectField) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := s.fieldMap[fieldName] if !ok || _f == nil { @@ -216,10 +220,6 @@ func (s subjectFieldDo) Where(conds ...gen.Condition) *subjectFieldDo { return s.withDO(s.DO.Where(conds...)) } -func (s subjectFieldDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *subjectFieldDo { - return s.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (s subjectFieldDo) Order(conds ...field.Expr) *subjectFieldDo { return s.withDO(s.DO.Order(conds...)) } diff --git a/dal/query/chii_subject_interests.gen.go b/dal/query/chii_subject_interests.gen.go index 3fe5de838..33f7b38ff 100644 --- a/dal/query/chii_subject_interests.gen.go +++ b/dal/query/chii_subject_interests.gen.go @@ -127,6 +127,10 @@ func (s subjectCollection) TableName() string { return s.subjectCollectionDo.Tab func (s subjectCollection) Alias() string { return s.subjectCollectionDo.Alias() } +func (s subjectCollection) Columns(cols ...field.Expr) gen.Columns { + return s.subjectCollectionDo.Columns(cols...) +} + func (s *subjectCollection) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := s.fieldMap[fieldName] if !ok || _f == nil { @@ -216,10 +220,6 @@ func (s subjectCollectionDo) Where(conds ...gen.Condition) *subjectCollectionDo return s.withDO(s.DO.Where(conds...)) } -func (s subjectCollectionDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *subjectCollectionDo { - return s.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (s subjectCollectionDo) Order(conds ...field.Expr) *subjectCollectionDo { return s.withDO(s.DO.Order(conds...)) } diff --git a/dal/query/chii_subject_relations.gen.go b/dal/query/chii_subject_relations.gen.go index 9f5813e37..2f8190558 100644 --- a/dal/query/chii_subject_relations.gen.go +++ b/dal/query/chii_subject_relations.gen.go @@ -99,6 +99,10 @@ func (s subjectRelation) TableName() string { return s.subjectRelationDo.TableNa func (s subjectRelation) Alias() string { return s.subjectRelationDo.Alias() } +func (s subjectRelation) Columns(cols ...field.Expr) gen.Columns { + return s.subjectRelationDo.Columns(cols...) +} + func (s *subjectRelation) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := s.fieldMap[fieldName] if !ok || _f == nil { @@ -251,10 +255,6 @@ func (s subjectRelationDo) Where(conds ...gen.Condition) *subjectRelationDo { return s.withDO(s.DO.Where(conds...)) } -func (s subjectRelationDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *subjectRelationDo { - return s.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (s subjectRelationDo) Order(conds ...field.Expr) *subjectRelationDo { return s.withDO(s.DO.Order(conds...)) } diff --git a/dal/query/chii_subject_revisions.gen.go b/dal/query/chii_subject_revisions.gen.go index 9e0aa5a60..0d50fdc81 100644 --- a/dal/query/chii_subject_revisions.gen.go +++ b/dal/query/chii_subject_revisions.gen.go @@ -120,6 +120,10 @@ func (s subjectRevision) TableName() string { return s.subjectRevisionDo.TableNa func (s subjectRevision) Alias() string { return s.subjectRevisionDo.Alias() } +func (s subjectRevision) Columns(cols ...field.Expr) gen.Columns { + return s.subjectRevisionDo.Columns(cols...) +} + func (s *subjectRevision) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := s.fieldMap[fieldName] if !ok || _f == nil { @@ -279,10 +283,6 @@ func (s subjectRevisionDo) Where(conds ...gen.Condition) *subjectRevisionDo { return s.withDO(s.DO.Where(conds...)) } -func (s subjectRevisionDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *subjectRevisionDo { - return s.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (s subjectRevisionDo) Order(conds ...field.Expr) *subjectRevisionDo { return s.withDO(s.DO.Order(conds...)) } diff --git a/dal/query/chii_subjects.gen.go b/dal/query/chii_subjects.gen.go index bf9c71402..c89c7275d 100644 --- a/dal/query/chii_subjects.gen.go +++ b/dal/query/chii_subjects.gen.go @@ -146,6 +146,8 @@ func (s subject) TableName() string { return s.subjectDo.TableName() } func (s subject) Alias() string { return s.subjectDo.Alias() } +func (s subject) Columns(cols ...field.Expr) gen.Columns { return s.subjectDo.Columns(cols...) } + func (s *subject) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := s.fieldMap[fieldName] if !ok || _f == nil { @@ -312,10 +314,6 @@ func (s subjectDo) Where(conds ...gen.Condition) *subjectDo { return s.withDO(s.DO.Where(conds...)) } -func (s subjectDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *subjectDo { - return s.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (s subjectDo) Order(conds ...field.Expr) *subjectDo { return s.withDO(s.DO.Order(conds...)) } diff --git a/dal/query/chii_usergroup.gen.go b/dal/query/chii_usergroup.gen.go index 295e294b1..89e06272c 100644 --- a/dal/query/chii_usergroup.gen.go +++ b/dal/query/chii_usergroup.gen.go @@ -79,6 +79,8 @@ func (u userGroup) TableName() string { return u.userGroupDo.TableName() } func (u userGroup) Alias() string { return u.userGroupDo.Alias() } +func (u userGroup) Columns(cols ...field.Expr) gen.Columns { return u.userGroupDo.Columns(cols...) } + func (u *userGroup) GetFieldByName(fieldName string) (field.OrderExpr, bool) { _f, ok := u.fieldMap[fieldName] if !ok || _f == nil { @@ -152,10 +154,6 @@ func (u userGroupDo) Where(conds ...gen.Condition) *userGroupDo { return u.withDO(u.DO.Where(conds...)) } -func (u userGroupDo) Exists(subquery interface{ UnderlyingDB() *gorm.DB }) *userGroupDo { - return u.Where(field.CompareSubQuery(field.ExistsOp, nil, subquery.UnderlyingDB())) -} - func (u userGroupDo) Order(conds ...field.Expr) *userGroupDo { return u.withDO(u.DO.Order(conds...)) } diff --git a/go.mod b/go.mod index 60a566c67..82e08d1ab 100644 --- a/go.mod +++ b/go.mod @@ -34,13 +34,13 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.10.0 + golang.org/x/crypto v0.11.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.1 - gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 + gorm.io/gen v0.3.23 gorm.io/gorm v1.25.2 gorm.io/plugin/dbresolver v1.4.1 gorm.io/plugin/soft_delete v1.2.1 @@ -88,14 +88,14 @@ require ( go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.8.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.9.0 // indirect - golang.org/x/text v0.10.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.8.0 // indirect + golang.org/x/tools v0.11.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect gorm.io/datatypes v1.2.0 // indirect - gorm.io/hints v1.1.1 // indirect + gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index 392af9490..508ef1d34 100644 --- a/go.sum +++ b/go.sum @@ -255,8 +255,9 @@ github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPn github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= -github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= +github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -474,8 +475,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -489,8 +490,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -516,8 +517,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -528,7 +529,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -563,8 +564,8 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc 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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -575,8 +576,8 @@ 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= @@ -598,8 +599,8 @@ golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8= +golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -670,21 +671,22 @@ gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw= gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= -gorm.io/driver/sqlite v1.4.2/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= -gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU= +gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= +gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= -gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7 h1:1zJnNjxhhF2xcfdBnEVa1FDLKLxiqj+0q4nRtJO5G0Q= -gorm.io/gen v0.3.23-0.20230420060613-fe1f9eac3ff7/go.mod h1:dQcELeF/7Kf82M6AQF+O/rKT5r1sjv49TlGz0cerPn4= +gorm.io/gen v0.3.23 h1:TL+q3bXvOzeIXBRp9vqIaD4/iaEzdU1Kgy5QSHsxDEQ= +gorm.io/gen v0.3.23/go.mod h1:G9uxGfkfNFxPoOrV5P6KQxRMgZsQSCyp9vJP8xiKTGg= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= +gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/hints v1.1.1 h1:NPampLxQujY+277452rt4yqtg6JmzNZ1jA2olk0eFXw= -gorm.io/hints v1.1.1/go.mod h1:zdwzfFqvBWGbpuKiAhLFOSGSpeD3/VsRgkXR9Y7Z3cs= +gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= +gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= From ff6bfd4d23db4c46daefeead93a6fa82b2e880ba Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 14 Jul 2023 14:55:26 +0800 Subject: [PATCH 079/888] chore: remove unused file --- a.txt | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 a.txt diff --git a/a.txt b/a.txt deleted file mode 100644 index bc30a9330..000000000 --- a/a.txt +++ /dev/null @@ -1,3 +0,0 @@ -topk(10, sum ({job="nginx"} |= `api.bgm.tv` | json [1h]) by (remote_addr)) - -topk(10,sum(rate({job="nginx"}|= `api.bgm.tv` | json[5m])) by (remote_addr)) From 145c06103b084e9ef98a27911164229a1e73a7db Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 14 Jul 2023 15:15:54 +0800 Subject: [PATCH 080/888] chore: upgrade golangci-lint to latest --- .github/workflows/lint.yaml | 2 +- .golangci.yaml | 57 ++++++++++++++++--------------------- 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 8f089a884..c3a2f8a34 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -50,6 +50,6 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v3 with: - version: v1.52.2 + version: v1.53.3 skip-pkg-cache: true skip-build-cache: true diff --git a/.golangci.yaml b/.golangci.yaml index b737d37fa..0c7bf641d 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -20,7 +20,7 @@ run: skip-files: [] - go: "1.18" + go: "1.20" # output configuration options output: @@ -106,33 +106,26 @@ linters-settings: - newLine depguard: - list-type: denylist - # Check the list against standard lib. - # Default: false - include-go-root: true - # A list of packages for the list type specified. - # Default: [] - packages: - - "github.com/sirupsen/logrus" - - "github.com/golang/mock/gomock" - # A list of packages for the list type specified. - # Specify an error message to output when a denied package is used. - # Default: [] - packages-with-error-message: - - "github.com/goccy/go-json": 'use "github.com/bytedance/sonic"' - - "github.com/sirupsen/logrus": 'use "app/pkg/logger"' - - "github.com/golang/mock": 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' - # Create additional guards that follow the same configuration pattern. - # Results from all guards are aggregated together. - additional-guards: - - list-type: denylist - include-go-root: false - packages: - - github.com/stretchr/testify - # Specify rules by which the linter ignores certain files for consideration. - ignore-file-rules: - - "!**/*_test.go" - - "!/mocks/**/*.go" + rules: + main: + files: + - "$all" + - "!$test" + - "!**/internal/pkg/test/**.go" + deny: + - pkg: "github.com/sirupsen/logrus" + desc: 'use "app/pkg/logger"' + - pkg: "github.com/golang/mock" + desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' + - pkg: "github.com/stretchr/testify" + desc: "test assert package not allowed" + test: + files: + - "$test" + - "**/internal/pkg/test/**.go" + deny: + - pkg: "github.com/golang/mock" + desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' gomnd: settings: @@ -149,7 +142,7 @@ linters-settings: gosimple: # Select the Go version to target. The default is '1.13'. - go: "1.18" + go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] @@ -181,13 +174,13 @@ linters-settings: staticcheck: # Select the Go version to target. The default is '1.13'. - go: "1.18" + go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] stylecheck: # Select the Go version to target. The default is '1.13'. - go: "1.18" + go: "1.20" testpackage: # regexp pattern to skip files @@ -195,7 +188,7 @@ linters-settings: unused: # Select the Go version to target. The default is '1.13'. - go: "1.18" + go: "1.20" exhaustive: # check switch statements in generated files also From fa6e827f66ecdca5286a410a4699169c987b5d2a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Jul 2023 16:14:36 +0800 Subject: [PATCH 081/888] fix: increase collection comment length limit --- web/req/collection.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/req/collection.go b/web/req/collection.go index 461a6b312..c5bc356e7 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -59,8 +59,8 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } v.Comment.Value = strings.TrimSpace(v.Comment.Value) - if utf8.RuneCountInString(v.Comment.Value) > 200 { - return res.BadRequest("comment too lang, only allow less equal than 200 characters") + if utf8.RuneCountInString(v.Comment.Value) > 380 { + return res.BadRequest("comment too lang, only allow less equal than 380 characters") } } From 5d723bed974f280744c0b21f17c6a016576269f9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Jul 2023 16:15:09 +0800 Subject: [PATCH 082/888] bump: 0.33.13 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f243241b..b1fbf2324 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.12", + "version": "0.33.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.12", + "version": "0.33.13", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.0", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index d36566d70..ef93d7174 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.12", + "version": "0.33.13", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From aa7330277cb6b6d99be6632951bace7fbf4b5c4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 16:25:12 +0800 Subject: [PATCH 083/888] build(deps): update module github.com/labstack/echo/v4 to v4.11.1 (#383) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 82e08d1ab..3b4d6f46b 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.4.2 github.com/jarcoal/httpmock v1.3.0 - github.com/labstack/echo/v4 v4.10.2 + github.com/labstack/echo/v4 v4.11.1 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.25.0 github.com/mitchellh/mapstructure v1.5.0 @@ -70,7 +70,7 @@ require ( github.com/labstack/gommon v0.4.0 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/go.sum b/go.sum index 508ef1d34..91b40f78f 100644 --- a/go.sum +++ b/go.sum @@ -232,8 +232,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/labstack/echo/v4 v4.10.2 h1:n1jAhnq/elIFTHr1EYpiYtyKgx4RW9ccVgkqByZaN2M= -github.com/labstack/echo/v4 v4.10.2/go.mod h1:OEyqf2//K1DFdE57vw2DRgWY0M7s65IVQO2FzvI4J5k= +github.com/labstack/echo/v4 v4.11.1 h1:dEpLU2FLg4UVmvCGPuk/APjlH6GDpbEPti61srUUUs4= +github.com/labstack/echo/v4 v4.11.1/go.mod h1:YuYRTSM3CHs2ybfrL8Px48bO6BAnYIN4l8wSTMP6BDQ= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= @@ -251,8 +251,8 @@ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= @@ -564,6 +564,7 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc 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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From 7c3b524089d01c927167010911802a9761c3632e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Jul 2023 16:51:37 +0800 Subject: [PATCH 084/888] typo --- web/req/collection.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/req/collection.go b/web/req/collection.go index c5bc356e7..4387fd3d6 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -60,7 +60,7 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { v.Comment.Value = strings.TrimSpace(v.Comment.Value) if utf8.RuneCountInString(v.Comment.Value) > 380 { - return res.BadRequest("comment too lang, only allow less equal than 380 characters") + return res.BadRequest("comment too long, only allow less equal than 380 characters") } } From 1b35f61a2e87bb25b1f02c46b62f38acefe4c53c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 17:09:59 +0800 Subject: [PATCH 085/888] build(deps): update module github.com/aws/aws-sdk-go to v1.44.301 (#384) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3b4d6f46b..f9e84e721 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.4 - github.com/aws/aws-sdk-go v1.44.294 + github.com/aws/aws-sdk-go v1.44.301 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 91b40f78f..6eead9943 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbK github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.294 h1:3x7GaEth+pDU9HwFcAU0awZlEix5CEdyIZvV08SlHa8= -github.com/aws/aws-sdk-go v1.44.294/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.301 h1:VofuXktwHFTBUvoPiHxQis/3uKgu0RtgUwLtNujd3Zs= +github.com/aws/aws-sdk-go v1.44.301/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From fdd09aa25aa9f2b673caa7af6932bc26b0d0af63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 17:10:07 +0800 Subject: [PATCH 086/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.42 (#385) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f9e84e721..621fbf4b0 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.16.0 github.com/redis/go-redis/v9 v9.0.5 github.com/samber/lo v1.38.1 - github.com/segmentio/kafka-go v0.4.40 + github.com/segmentio/kafka-go v0.4.42 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 6eead9943..c4d0fb87b 100644 --- a/go.sum +++ b/go.sum @@ -369,8 +369,8 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.40 h1:sszW7c0/uyv7+VcTW5trx2ZC7kMWDTxuR/6Zn8U1bm8= -github.com/segmentio/kafka-go v0.4.40/go.mod h1:naFEZc5MQKdeL3W6NkZIAn48Y6AazqjRFDhnXeg3h94= +github.com/segmentio/kafka-go v0.4.42 h1:qffhBZCz4WcWyNuHEclHjIMLs2slp6mZO8px+5W5tfU= +github.com/segmentio/kafka-go v0.4.42/go.mod h1:d0g15xPMqoUookug0OU75DhGZxXwCFxSLeJ4uphwJzg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -517,6 +517,7 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -564,12 +565,14 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc 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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -577,6 +580,7 @@ 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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 09e54ce8ad824a1a162ce6a1c5f76aa7b79e52fe Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 19 Jul 2023 00:04:08 +0800 Subject: [PATCH 087/888] ci: use autofix-ci/action --- .github/workflows/lint-review.yaml | 48 ++++++++---------------------- 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 31d555c01..2ad3e5d06 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -1,57 +1,33 @@ name: Lint Review on: - push: - branches-ignore: - - renovate/** pull_request_target: types: [opened, synchronize, reopened] branches: - master +permissions: + contents: read + jobs: lint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Install Node LTS uses: actions/setup-node@v3 - name: Install Go uses: actions/setup-go@v4 with: - go-version: "1.20" - cache: false - - - run: npm i -g prettier@^3 - - - name: Checkout code - uses: actions/checkout@v3 - if: ${{ github.event_name != 'push' }} - with: - ref: "refs/pull/${{ github.event.number }}/head" - - - run: "gh pr checkout ${{ github.event.number }}" - if: ${{ github.event_name != 'push' }} - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Checkout code - uses: actions/checkout@v3 - if: ${{ github.event_name == 'push' }} + go-version-file: "go.mod" - - name: prettier - run: prettier --write --list-different ./ + - run: npm ci - - name: gofmt - run: gofmt -w -s . + - run: npm run format - - run: git diff --exit-code + - run: gofmt -w -s . - - name: create review - if: ${{ failure() && github.event_name != 'push' }} - run: | - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git add . - git commit -m 'style: ci auto format code' - git push + - uses: autofix-ci/action@8caa572fd27b0019a65e4c695447089c8d3138b9 From 1c0f74629e44654c1977d8fe2eb0be34294dcec7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 19 Jul 2023 00:06:53 +0800 Subject: [PATCH 088/888] ci: autofix.ci --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 2ad3e5d06..585772df0 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -1,4 +1,4 @@ -name: Lint Review +name: autofix.ci on: pull_request_target: From 223956bef3335db7af481eaaad030f0eaccb6660 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 19 Jul 2023 00:09:45 +0800 Subject: [PATCH 089/888] ci: prettier autofix event target --- .github/workflows/lint-review.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 585772df0..35365ca82 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -1,8 +1,7 @@ name: autofix.ci on: - pull_request_target: - types: [opened, synchronize, reopened] + pull_request: branches: - master From a63508571c7b2990e9243573282848939beb4026 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 06:05:38 +0800 Subject: [PATCH 090/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^9.1.2 (#387) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1fbf2324..337dbdceb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.13", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.0", + "@apidevtools/json-schema-ref-parser": "^9.1.2", "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" diff --git a/package.json b/package.json index ef93d7174..b45385722 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.0", + "@apidevtools/json-schema-ref-parser": "^9.1.2", "conventional-changelog": "^4.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" From cd8a4cbe1d48531e4abaedf6b0093d50401152e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 07:05:32 +0800 Subject: [PATCH 091/888] build(deps): update module github.com/ilyakaznacheev/cleanenv to v1.5.0 (#388) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 621fbf4b0..4ff2a34b4 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 - github.com/ilyakaznacheev/cleanenv v1.4.2 + github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.0 github.com/labstack/echo/v4 v4.11.1 github.com/mattn/go-colorable v0.1.13 @@ -47,7 +47,7 @@ require ( ) require ( - github.com/BurntSushi/toml v1.1.0 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect github.com/andybalholm/brotli v1.0.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -64,7 +64,7 @@ require ( github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/joho/godotenv v1.4.0 // indirect + github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/labstack/gommon v0.4.0 // indirect diff --git a/go.sum b/go.sum index c4d0fb87b..6a77c3b45 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= @@ -181,8 +181,8 @@ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2p 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/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/ilyakaznacheev/cleanenv v1.4.2 h1:nRqiriLMAC7tz7GzjzUTBHfzdzw6SQ7XvTagkFqe/zU= -github.com/ilyakaznacheev/cleanenv v1.4.2/go.mod h1:i0owW+HDxeGKE0/JPREJOdSCPIyOnmh6C0xhWAkF/xA= +github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= +github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= @@ -203,8 +203,8 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= -github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= From c831723e15af368e73548be6dd0bf44ae8368f3f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 26 Jul 2023 22:43:49 +0800 Subject: [PATCH 092/888] feat: export more data in dump --- cmd/archive/main.go | 73 ++++++++++++++++++- internal/subject/mysq_repository_compat.go | 4 +- internal/subject/mysql_repository.go | 2 +- .../subject/mysql_repository_internal_test.go | 2 +- 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 955c2f655..ca504be95 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -21,10 +21,14 @@ import ( "encoding/json" "fmt" "io" + "math" "os" "path/filepath" + "sort" + "unicode/utf8" "github.com/go-sql-driver/mysql" + "github.com/samber/lo" "github.com/spf13/cobra" "github.com/trim21/errgo" "go.uber.org/fx" @@ -38,6 +42,7 @@ import ( "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/driver" "github.com/bangumi/server/internal/pkg/logger" + subjectDto "github.com/bangumi/server/internal/subject" ) const defaultStep = 50 @@ -162,6 +167,19 @@ func getMaxID(q *query.Query) { maxPersonID = lastPerson.ID } +type Score struct { + Field1 uint32 `json:"1"` + Field2 uint32 `json:"2"` + Field3 uint32 `json:"3"` + Field4 uint32 `json:"4"` + Field5 uint32 `json:"5"` + Field6 uint32 `json:"6"` + Field7 uint32 `json:"7"` + Field8 uint32 `json:"8"` + Field9 uint32 `json:"9"` + Field10 uint32 `json:"10"` +} + type Subject struct { ID model.SubjectID `json:"id"` Type model.SubjectType `json:"type"` @@ -171,17 +189,55 @@ type Subject struct { Platform uint16 `json:"platform"` Summary string `json:"summary"` Nsfw bool `json:"nsfw"` + + Tags []Tag `json:"tags"` + Score float64 `json:"score"` + ScoreDetails Score `json:"score_details"` + Rank uint32 `json:"rank"` +} + +type Tag struct { + Name string `json:"name"` + Count int `json:"count"` } func exportSubjects(q *query.Query, w io.Writer) { for i := model.SubjectID(0); i < maxSubjectID; i += defaultStep { - subjects, err := q.WithContext(ctx).Subject. + subjects, err := q.WithContext(ctx).Subject.Preload(q.Subject.Fields). Where(q.Subject.ID.Gt(i), q.Subject.ID.Lte(i+defaultStep), q.Subject.Ban.Eq(0)).Find() if err != nil { panic(err) } for _, subject := range subjects { + tags, err := subjectDto.ParseTags(subject.Fields.Tags) + if err != nil { + tags = []model.Tag{} + } + + sort.Slice(tags, func(i, j int) bool { + return tags[i].Count >= tags[j].Count + }) + + tags = lo.Filter(lo.Slice(tags, 0, 11), func(item model.Tag, index int) bool { //nolint:gomnd + return utf8.RuneCountInString(item.Name) < 10 || item.Count >= 10 + }) + + encodedTags := lo.Map(tags, func(item model.Tag, index int) Tag { + return Tag{ + Name: item.Name, + Count: item.Count, + } + }) + + f := subject.Fields + var total = f.Rate1 + f.Rate2 + f.Rate3 + f.Rate4 + f.Rate5 + f.Rate6 + f.Rate7 + f.Rate8 + f.Rate9 + f.Rate10 + var score float64 + if total != 0 { + score = float64(1*f.Rate1+2*f.Rate2+3*f.Rate3+4*f.Rate4+5*f.Rate5+ + 6*f.Rate6+7*f.Rate7+8*f.Rate8+9*f.Rate9+10*f.Rate10) / float64(total) + } + encode(w, Subject{ ID: subject.ID, Type: subject.TypeID, @@ -191,6 +247,21 @@ func exportSubjects(q *query.Query, w io.Writer) { Platform: subject.Platform, Summary: subject.Summary, Nsfw: subject.Nsfw, + Rank: subject.Fields.Rank, + Tags: encodedTags, + Score: math.Round(score*10) / 10, + ScoreDetails: Score{ + Field1: subject.Fields.Rate1, + Field2: subject.Fields.Rate2, + Field3: subject.Fields.Rate3, + Field4: subject.Fields.Rate4, + Field5: subject.Fields.Rate5, + Field6: subject.Fields.Rate6, + Field7: subject.Fields.Rate7, + Field8: subject.Fields.Rate8, + Field9: subject.Fields.Rate9, + Field10: subject.Fields.Rate10, + }, }) } } diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index 18954280e..01a700445 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -27,11 +27,11 @@ type Tag struct { Count int `php:"result,string"` } -func parseTags(b []byte) ([]model.Tag, error) { +func ParseTags(b []byte) ([]model.Tag, error) { var tags []Tag err := phpserialize.Unmarshal(b, &tags) if err != nil { - return nil, errgo.Wrap(err, "parseTags: phpserialize.Unmarshal") + return nil, errgo.Wrap(err, "ParseTags: phpserialize.Unmarshal") } return slice.MapFilter(tags, func(item Tag) (model.Tag, bool) { diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 15f88708b..a76a9baa7 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -66,7 +66,7 @@ func ConvertDao(s *dao.Subject) (model.Subject, error) { date = s.Fields.Date.Format("2006-01-02") } - tags, err := parseTags(s.Fields.Tags) + tags, err := ParseTags(s.Fields.Tags) if err != nil { return model.Subject{}, err } diff --git a/internal/subject/mysql_repository_internal_test.go b/internal/subject/mysql_repository_internal_test.go index e0f149b6e..dab4be05f 100644 --- a/internal/subject/mysql_repository_internal_test.go +++ b/internal/subject/mysql_repository_internal_test.go @@ -37,7 +37,7 @@ func TestParseTags(t *testing.T) { require.NoError(t, json.Unmarshal(raw, &testCases)) for i, tc := range testCases { - tags, err := parseTags([]byte(tc.FieldTags)) + tags, err := ParseTags([]byte(tc.FieldTags)) require.NoError(t, err) require.Truef(t, len(tags) > 0, "should parse tags") From 8ab9fb0040db2750c8e023b7e47d91caf97a9810 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 03:08:39 +0800 Subject: [PATCH 093/888] build(deps): update module github.com/aws/aws-sdk-go to v1.44.313 (#390) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4ff2a34b4..0e7e17fcb 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.3.4 - github.com/aws/aws-sdk-go v1.44.301 + github.com/aws/aws-sdk-go v1.44.313 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 6a77c3b45..b782abb63 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbK github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.301 h1:VofuXktwHFTBUvoPiHxQis/3uKgu0RtgUwLtNujd3Zs= -github.com/aws/aws-sdk-go v1.44.301/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.313 h1:u6EuNQqgAmi09GEZ5g/XGHLF0XV31WcdU5rnHyIBHBc= +github.com/aws/aws-sdk-go v1.44.313/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 1ba5d627d6a6691f5afcbd18f13057cbb5450b0d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 1 Aug 2023 18:09:58 +0800 Subject: [PATCH 094/888] chore: add new person position --- pkg/vars/staff.go.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkg/vars/staff.go.json b/pkg/vars/staff.go.json index 08ee62874..37a24cef0 100644 --- a/pkg/vars/staff.go.json +++ b/pkg/vars/staff.go.json @@ -80,12 +80,22 @@ "JP": "コンテ ストーリーボード 画コンテ 絵コンテ", "RDF": "" }, + "89": { + "EN": "Chief Episode Direction", + "CN": "主演出'", + "JP": "チーフ演出" + }, "5": { "CN": "演出", "EN": "Episode Director", "JP": "", "RDF": "" }, + "91": { + "en": "Assistant Episode Direction", + "cn": "演出助理", + "jp": "演出助手 演出補佐 演出協力" + }, "6": { "CN": "音乐", "EN": "Music", @@ -529,7 +539,7 @@ "3004": { "CN": "厂牌", "EN": "Label", - "JP": "", + "JP": "レーベル", "RDF": "" }, "3005": { @@ -567,6 +577,11 @@ "EN": "Scenario", "JP": "シナリオ", "RDF": "" + }, + "3011": { + "en": "O.P.", + "cn": "出版方", + "jp": "音楽出版社" } }, "4": { From 018885355f4bdb9ec368f4009e039054a6d5c7e3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 1 Aug 2023 18:16:32 +0800 Subject: [PATCH 095/888] bump: 0.33.14 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 337dbdceb..e7c207cac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.13", + "version": "0.33.14", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.13", + "version": "0.33.14", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.1.2", "conventional-changelog": "^4.0.0", diff --git a/package.json b/package.json index b45385722..271745907 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.13", + "version": "0.33.14", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 32d136b0400c3e6f85a775a297883c05cad39c90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 15:27:40 +0800 Subject: [PATCH 096/888] build(deps): update module gorm.io/plugin/dbresolver to v1.4.3 (#391) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 0e7e17fcb..2f6382d87 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23 gorm.io/gorm v1.25.2 - gorm.io/plugin/dbresolver v1.4.1 + gorm.io/plugin/dbresolver v1.4.3 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index b782abb63..abd928778 100644 --- a/go.sum +++ b/go.sum @@ -684,7 +684,6 @@ gorm.io/gen v0.3.23/go.mod h1:G9uxGfkfNFxPoOrV5P6KQxRMgZsQSCyp9vJP8xiKTGg= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= @@ -692,8 +691,8 @@ gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk= -gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc= +gorm.io/plugin/dbresolver v1.4.3 h1:HyzyU0OTIz63Fjht3LWv6h0FuVPeIQoltP6db37Oojg= +gorm.io/plugin/dbresolver v1.4.3/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 160da2786f3a1f1e85099f1a8c0d77660df8ae74 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 01:08:06 +0800 Subject: [PATCH 097/888] chore(deps): update gcr.io/distroless/static docker digest to e7e79fb (#395) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 314be4f99..06bfc4842 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:7198a357ff3a8ef750b041324873960cf2153c11cc50abb9d8d5f8bb089f6b4e +FROM gcr.io/distroless/static@sha256:e7e79fb2947f38ce0fab6061733f7e1959c12b843079042fe13f56ca7b9d178c ENTRYPOINT ["/app/chii.exe"] From 57549b45ec460826201fd2941bd7b718689ef490 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 01:08:23 +0800 Subject: [PATCH 098/888] build(deps): update dependency prettier to ^3.0.3 (#396) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7c207cac..1193e61d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3" + "prettier": "^3.0.3" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -1442,9 +1442,9 @@ } }, "node_modules/prettier": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", - "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -3022,9 +3022,9 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "prettier": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", - "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true }, "process-nextick-args": { diff --git a/package.json b/package.json index 271745907..517762634 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3" + "prettier": "^3.0.3" }, "nodemonConfig": { "restartable": "rs", From fb2ad05bb8f1a79489003cfee4418b905fc6780c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 02:22:41 +0800 Subject: [PATCH 099/888] build(deps): update module github.com/avast/retry-go/v4 to v4.5.0 (#401) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2f6382d87..4768b47ac 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/bangumi/server go 1.20 require ( - github.com/avast/retry-go/v4 v4.3.4 + github.com/avast/retry-go/v4 v4.5.0 github.com/aws/aws-sdk-go v1.44.313 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 diff --git a/go.sum b/go.sum index abd928778..e14903d8c 100644 --- a/go.sum +++ b/go.sum @@ -21,8 +21,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= -github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= +github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVisHg= +github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.44.313 h1:u6EuNQqgAmi09GEZ5g/XGHLF0XV31WcdU5rnHyIBHBc= From 9480fe1144c5b56cb083207d73b971b85d4fcde6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 02:22:53 +0800 Subject: [PATCH 100/888] build(deps): update module golang.org/x/crypto to v0.12.0 (#406) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 4768b47ac..db6590beb 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.11.0 + golang.org/x/crypto v0.12.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 @@ -90,8 +90,8 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.12.0 // indirect - golang.org/x/sys v0.10.0 // indirect - golang.org/x/text v0.11.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect diff --git a/go.sum b/go.sum index e14903d8c..096d8a5dd 100644 --- a/go.sum +++ b/go.sum @@ -475,8 +475,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -567,8 +567,8 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -581,8 +581,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= From 3eab46a338490dc38a6c29427cfcf49fbb972513 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:22:31 +0800 Subject: [PATCH 101/888] build(deps): update module github.com/aws/aws-sdk-go to v1.45.1 (#402) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index db6590beb..6391c33dd 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.0 - github.com/aws/aws-sdk-go v1.44.313 + github.com/aws/aws-sdk-go v1.45.1 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 096d8a5dd..cb3e465a3 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVis github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.313 h1:u6EuNQqgAmi09GEZ5g/XGHLF0XV31WcdU5rnHyIBHBc= -github.com/aws/aws-sdk-go v1.44.313/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.45.1 h1:PXuxDZIo/Y9Bvtg2t055+dY4hRwNAEcq6bUMv9fXcjk= +github.com/aws/aws-sdk-go v1.45.1/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From fb49494c5d71044a04292607f4cf357caed19b66 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:22:42 +0800 Subject: [PATCH 102/888] build(deps): update module go.uber.org/zap to v1.25.0 (#405) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 6391c33dd..358cd8eb0 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 - go.uber.org/zap v1.24.0 + go.uber.org/zap v1.25.0 golang.org/x/crypto v0.12.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 @@ -86,7 +86,7 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.17.0 // indirect - go.uber.org/multierr v1.8.0 // indirect + go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.12.0 // indirect diff --git a/go.sum b/go.sum index cb3e465a3..174a7efc4 100644 --- a/go.sum +++ b/go.sum @@ -317,7 +317,6 @@ github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -449,7 +448,6 @@ go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= @@ -459,13 +457,13 @@ go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= From 98d1c70db1cba8ea3022e742041484c3493046c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:22:54 +0800 Subject: [PATCH 103/888] build(deps): update module github.com/trim21/go-phpserialize to v0.0.20 (#398) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 358cd8eb0..dab5c7d3e 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/trim21/errgo v0.0.2 - github.com/trim21/go-phpserialize v0.0.19 + github.com/trim21/go-phpserialize v0.0.20 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index 174a7efc4..c0a5101a1 100644 --- a/go.sum +++ b/go.sum @@ -406,8 +406,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= -github.com/trim21/go-phpserialize v0.0.19 h1:bIjrT+uGwYCK2Lqz12QHFEI3jxhzAGpYxlMPjojxUZ0= -github.com/trim21/go-phpserialize v0.0.19/go.mod h1:8dTX+CG9iTrnTgzuD5B87ExstTvJAl0CMt9QJM9hQqA= +github.com/trim21/go-phpserialize v0.0.20 h1:0ZirMrbc1oqK/shAhU5hGO7KgG8b+FDfwmyCSoo9nHw= +github.com/trim21/go-phpserialize v0.0.20/go.mod h1:dChIuKK9wuBHDd5yqaYm0oFxtcmB+qIzbC8pvj06tIQ= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From ed2d76960a505efdb5423327c7843897ddab892f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:23:05 +0800 Subject: [PATCH 104/888] build(deps): update module github.com/jarcoal/httpmock to v1.3.1 (#397) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index dab5c7d3e..151876f56 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 - github.com/jarcoal/httpmock v1.3.0 + github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.1 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.25.0 diff --git a/go.sum b/go.sum index c0a5101a1..588d44143 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= -github.com/jarcoal/httpmock v1.3.0 h1:2RJ8GP0IIaWwcC9Fp2BmVi8Kog3v2Hn7VXM3fTd+nuc= -github.com/jarcoal/httpmock v1.3.0/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= +github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= +github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= From e12fa2b6f74ddf487fe3c6fb10b98f4ae7c6c111 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:23:15 +0800 Subject: [PATCH 105/888] build(deps): update module github.com/redis/go-redis/v9 to v9.1.0 (#404) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 151876f56..ce1c476fb 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.25.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.16.0 - github.com/redis/go-redis/v9 v9.0.5 + github.com/redis/go-redis/v9 v9.1.0 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.42 github.com/spf13/cobra v1.7.0 diff --git a/go.sum b/go.sum index 588d44143..3901c38c2 100644 --- a/go.sum +++ b/go.sum @@ -35,7 +35,7 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bsm/ginkgo/v2 v2.5.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= -github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= +github.com/bsm/ginkgo/v2 v2.9.5 h1:rtVBYPs3+TC5iLUVOis1B9tjLTup7Cj5IfzosKtvTJ0= github.com/bsm/gomega v1.20.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk= github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= @@ -355,8 +355,8 @@ github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+Pymzi github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= -github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= +github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= From 3645ebcb9313a36757cfd59b1f9e7746b2d09b17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:23:24 +0800 Subject: [PATCH 106/888] build(deps): update module github.com/go-playground/validator/v10 to v10.15.3 (#403) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ce1c476fb..b46a28b5b 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.14.1 + github.com/go-playground/validator/v10 v10.15.3 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index 3901c38c2..0319e8cd0 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= -github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.15.3 h1:S+sSpunYjNPDuXkWbK+x+bA7iXiW296KG4dL3X7xUZo= +github.com/go-playground/validator/v10 v10.15.3/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= From 98cddcbaffdc961543c13786b3b2a1d6c588e6ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:23:32 +0800 Subject: [PATCH 107/888] build(deps): update module gorm.io/plugin/dbresolver to v1.4.7 (#400) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b46a28b5b..785dff4c8 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23 gorm.io/gorm v1.25.2 - gorm.io/plugin/dbresolver v1.4.3 + gorm.io/plugin/dbresolver v1.4.7 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 0319e8cd0..ff8c1a6cc 100644 --- a/go.sum +++ b/go.sum @@ -689,8 +689,8 @@ gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.4.3 h1:HyzyU0OTIz63Fjht3LWv6h0FuVPeIQoltP6db37Oojg= -gorm.io/plugin/dbresolver v1.4.3/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= +gorm.io/plugin/dbresolver v1.4.7 h1:ZwtwmJQxTx9us7o6zEHFvH1q4OeEo1pooU7efmnunJA= +gorm.io/plugin/dbresolver v1.4.7/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 9b725a2f18694cb0cfa6f35570b766fd555d9ec0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:23:48 +0800 Subject: [PATCH 108/888] build(deps): update dependency conventional-changelog to v5 (#407) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 2111 ++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 544 insertions(+), 1569 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1193e61d7..7d4e5f4e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.33.14", "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.1.2", - "conventional-changelog": "^4.0.0", + "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -32,11 +32,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -51,12 +52,12 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -70,11 +71,11 @@ "dev": true }, "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", + "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==", "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" } }, "node_modules/@jsdevtools/ono": { @@ -152,11 +153,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - }, "node_modules/@types/node": { "version": "17.0.35", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", @@ -177,6 +173,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -185,6 +182,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -205,43 +203,11 @@ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==" }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -283,6 +249,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -293,6 +260,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -303,7 +271,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/colors": { "version": "1.4.0", @@ -324,237 +293,191 @@ } }, "node_modules/conventional-changelog": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-4.0.0.tgz", - "integrity": "sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==", - "dependencies": { - "conventional-changelog-angular": "^6.0.0", - "conventional-changelog-atom": "^3.0.0", - "conventional-changelog-codemirror": "^3.0.0", - "conventional-changelog-conventionalcommits": "^6.0.0", - "conventional-changelog-core": "^5.0.0", - "conventional-changelog-ember": "^3.0.0", - "conventional-changelog-eslint": "^4.0.0", - "conventional-changelog-express": "^3.0.0", - "conventional-changelog-jquery": "^4.0.0", - "conventional-changelog-jshint": "^3.0.0", - "conventional-changelog-preset-loader": "^3.0.0" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.0.0.tgz", + "integrity": "sha512-k0c3lCtY3+k75gyrIoO7WEyBd4HLxu8QmTTPxM4D+vKk9wN06GZ/iaVJXQsGZae3Cezb02Is5PJ70fia3zZG8Q==", + "dependencies": { + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-atom": "^4.0.0", + "conventional-changelog-codemirror": "^4.0.0", + "conventional-changelog-conventionalcommits": "^7.0.0", + "conventional-changelog-core": "^6.0.0", + "conventional-changelog-ember": "^4.0.0", + "conventional-changelog-eslint": "^5.0.0", + "conventional-changelog-express": "^4.0.0", + "conventional-changelog-jquery": "^5.0.0", + "conventional-changelog-jshint": "^4.0.0", + "conventional-changelog-preset-loader": "^4.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-atom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz", - "integrity": "sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz", + "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-codemirror": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz", - "integrity": "sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz", + "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", - "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.1.tgz", + "integrity": "sha512-VfFJxBmi+LYXeb4pIfZGbuaFCpWZh0qXbUAKP/s6B8tigV6R4D8j5PDlTtMMWawa7+DcNySVoF7kPWz0EMYuCQ==", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz", - "integrity": "sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-6.0.0.tgz", + "integrity": "sha512-7WPwzTp3eRMot/2mbTAHF8m/0Ue4F/R/sMpSjmhBYi/+xnW2SqnXL/FMuYqEpNC2v3rjzRZ4p+9tYcKfHn02Cg==", "dependencies": { + "@hutson/parse-repository-url": "^5.0.0", "add-stream": "^1.0.0", - "conventional-changelog-writer": "^6.0.0", - "conventional-commits-parser": "^4.0.0", - "dateformat": "^3.0.3", - "get-pkg-repo": "^4.2.1", - "git-raw-commits": "^3.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-parser": "^5.0.0", + "git-raw-commits": "^4.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^5.0.0", - "normalize-package-data": "^3.0.3", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0" + "git-semver-tags": "^6.0.0", + "hosted-git-info": "^7.0.0", + "normalize-package-data": "^6.0.0", + "read-pkg": "^8.0.0", + "read-pkg-up": "^10.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-ember": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz", - "integrity": "sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz", + "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-eslint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz", - "integrity": "sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz", + "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-express": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz", - "integrity": "sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz", + "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-jquery": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz", - "integrity": "sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz", + "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-jshint": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz", - "integrity": "sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz", + "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-preset-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", - "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.0.0.tgz", + "integrity": "sha512-xYGvKMkJs8o6vnKDbo2v5VcalZmH54lVU+OCvFQvxj3AQKRMJhbKwvBVsSXfQSuhaG9r6mdK8TIMOaiwiStasg==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-changelog-writer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz", - "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.0.tgz", + "integrity": "sha512-9/6vTDd3wDbH9yayZNOq53UWI4QqYlbiLBtWf+alsQA/bBFHG+k3KnQ8Fu/xzHqsbQfzPg3w1H1piWYn/GD9Tw==", "dependencies": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^6.3.0", - "split": "^1.0.1" + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" }, "bin": { - "conventional-changelog-writer": "cli.js" + "conventional-changelog-writer": "cli.mjs" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dependencies": { - "is-text-path": "^1.0.1", + "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "conventional-commits-parser": "cli.js" + "conventional-commits-parser": "cli.mjs" }, "engines": { - "node": ">=14" + "node": ">=16" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -569,7 +492,8 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/error-ex": { "version": "1.3.2", @@ -583,6 +507,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "engines": { "node": ">=6" } @@ -602,14 +527,18 @@ "dev": true }, "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dependencies": { - "locate-path": "^2.0.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/function-bind": { @@ -621,77 +550,25 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/git-raw-commits": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", - "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dependencies": { - "dargs": "^7.0.0", - "meow": "^8.1.2", - "split2": "^3.2.2" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" }, "bin": { - "git-raw-commits": "cli.js" + "git-raw-commits": "cli.mjs" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/git-remote-origin-url": { @@ -707,18 +584,18 @@ } }, "node_modules/git-semver-tags": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz", - "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz", + "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==", "dependencies": { - "meow": "^8.1.2", - "semver": "^6.3.0" + "meow": "^12.0.1", + "semver": "^7.5.2" }, "bin": { - "git-semver-tags": "cli.js" + "git-semver-tags": "cli.mjs" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/gitconfiglocal": { @@ -729,18 +606,13 @@ "ini": "^1.3.2" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -754,14 +626,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -782,14 +646,14 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.0.tgz", + "integrity": "sha512-ICclEpTLhHj+zCuSb2/usoNXSVkxUSIopre+b1w8NDY9Dntp9LO4vLdHYI336TH8sAqwrRgnSfdkBG2/YpisHA==", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/http2-client": { @@ -798,19 +662,6 @@ "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", "dev": true }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -819,12 +670,12 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dependencies": { "has": "^1.0.3" }, @@ -836,6 +687,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -848,30 +700,17 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dependencies": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -888,15 +727,13 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -926,51 +763,26 @@ "node": "*" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -978,216 +790,25 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=10" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "14 || >=16.14" } }, "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "engines": { - "node": ">=10" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/meow/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/meow/node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "engines": { - "node": ">=4" - } - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -1196,27 +817,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -1235,31 +835,17 @@ } }, "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/oas-kit-common": { @@ -1360,77 +946,68 @@ } }, "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dependencies": { - "p-try": "^1.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dependencies": { - "p-limit": "^1.1.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", + "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "engines": { - "node": ">=4" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dependencies": { - "pify": "^3.0.0" + "node": ">=14.16" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/pify": { @@ -1456,91 +1033,37 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "engines": { - "node": ">=8" - } - }, "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "node": ">=16" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/read-pkg-up": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", + "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "node": ">=16" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/reftools": { @@ -1556,51 +1079,34 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "lru-cache": "^6.0.0" }, "bin": { - "resolve": "bin/resolve" + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/should": { @@ -1666,9 +1172,9 @@ } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -1689,41 +1195,23 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" }, "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" } }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1737,6 +1225,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1744,25 +1233,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -1774,23 +1244,15 @@ "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "engines": { - "node": ">=0.10" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/through": { @@ -1798,20 +1260,12 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "engines": { - "node": ">=8" - } - }, "node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", + "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1829,11 +1283,6 @@ "node": ">=0.8.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -1852,6 +1301,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1864,18 +1314,11 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "engines": { "node": ">=10" } @@ -1894,29 +1337,15 @@ "node": ">= 6" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "engines": { - "node": ">=10" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } } }, @@ -1933,11 +1362,12 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" } }, "@babel/helper-validator-identifier": { @@ -1946,12 +1376,12 @@ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "requires": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, @@ -1962,9 +1392,9 @@ "dev": true }, "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", + "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==" }, "@jsdevtools/ono": { "version": "7.1.3", @@ -2041,11 +1471,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - }, "@types/node": { "version": "17.0.35", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", @@ -2065,12 +1490,14 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -2085,31 +1512,11 @@ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==" }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" - }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -2147,6 +1554,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -2157,6 +1565,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -2164,7 +1573,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "colors": { "version": "1.4.0", @@ -2182,169 +1592,133 @@ } }, "conventional-changelog": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-4.0.0.tgz", - "integrity": "sha512-JbZjwE1PzxQCvm+HUTIr+pbSekS8qdOZzMakdFyPtdkEWwFvwEJYONzjgMm0txCb2yBcIcfKDmg8xtCKTdecNQ==", - "requires": { - "conventional-changelog-angular": "^6.0.0", - "conventional-changelog-atom": "^3.0.0", - "conventional-changelog-codemirror": "^3.0.0", - "conventional-changelog-conventionalcommits": "^6.0.0", - "conventional-changelog-core": "^5.0.0", - "conventional-changelog-ember": "^3.0.0", - "conventional-changelog-eslint": "^4.0.0", - "conventional-changelog-express": "^3.0.0", - "conventional-changelog-jquery": "^4.0.0", - "conventional-changelog-jshint": "^3.0.0", - "conventional-changelog-preset-loader": "^3.0.0" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.0.0.tgz", + "integrity": "sha512-k0c3lCtY3+k75gyrIoO7WEyBd4HLxu8QmTTPxM4D+vKk9wN06GZ/iaVJXQsGZae3Cezb02Is5PJ70fia3zZG8Q==", + "requires": { + "conventional-changelog-angular": "^7.0.0", + "conventional-changelog-atom": "^4.0.0", + "conventional-changelog-codemirror": "^4.0.0", + "conventional-changelog-conventionalcommits": "^7.0.0", + "conventional-changelog-core": "^6.0.0", + "conventional-changelog-ember": "^4.0.0", + "conventional-changelog-eslint": "^5.0.0", + "conventional-changelog-express": "^4.0.0", + "conventional-changelog-jquery": "^5.0.0", + "conventional-changelog-jshint": "^4.0.0", + "conventional-changelog-preset-loader": "^4.0.0" } }, "conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "requires": { "compare-func": "^2.0.0" } }, "conventional-changelog-atom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-3.0.0.tgz", - "integrity": "sha512-pnN5bWpH+iTUWU3FaYdw5lJmfWeqSyrUkG+wyHBI9tC1dLNnHkbAOg1SzTQ7zBqiFrfo55h40VsGXWMdopwc5g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz", + "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==" }, "conventional-changelog-codemirror": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-3.0.0.tgz", - "integrity": "sha512-wzchZt9HEaAZrenZAUUHMCFcuYzGoZ1wG/kTRMICxsnW5AXohYMRxnyecP9ob42Gvn5TilhC0q66AtTPRSNMfw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz", + "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==" }, "conventional-changelog-conventionalcommits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", - "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.1.tgz", + "integrity": "sha512-VfFJxBmi+LYXeb4pIfZGbuaFCpWZh0qXbUAKP/s6B8tigV6R4D8j5PDlTtMMWawa7+DcNySVoF7kPWz0EMYuCQ==", "requires": { "compare-func": "^2.0.0" } }, "conventional-changelog-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.2.tgz", - "integrity": "sha512-RhQOcDweXNWvlRwUDCpaqXzbZemKPKncCWZG50Alth72WITVd6nhVk9MJ6w1k9PFNBcZ3YwkdkChE+8+ZwtUug==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-6.0.0.tgz", + "integrity": "sha512-7WPwzTp3eRMot/2mbTAHF8m/0Ue4F/R/sMpSjmhBYi/+xnW2SqnXL/FMuYqEpNC2v3rjzRZ4p+9tYcKfHn02Cg==", "requires": { + "@hutson/parse-repository-url": "^5.0.0", "add-stream": "^1.0.0", - "conventional-changelog-writer": "^6.0.0", - "conventional-commits-parser": "^4.0.0", - "dateformat": "^3.0.3", - "get-pkg-repo": "^4.2.1", - "git-raw-commits": "^3.0.0", + "conventional-changelog-writer": "^7.0.0", + "conventional-commits-parser": "^5.0.0", + "git-raw-commits": "^4.0.0", "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^5.0.0", - "normalize-package-data": "^3.0.3", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0" + "git-semver-tags": "^6.0.0", + "hosted-git-info": "^7.0.0", + "normalize-package-data": "^6.0.0", + "read-pkg": "^8.0.0", + "read-pkg-up": "^10.0.0" } }, "conventional-changelog-ember": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-3.0.0.tgz", - "integrity": "sha512-7PYthCoSxIS98vWhVcSphMYM322OxptpKAuHYdVspryI0ooLDehRXWeRWgN+zWSBXKl/pwdgAg8IpLNSM1/61A==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz", + "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==" }, "conventional-changelog-eslint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-4.0.0.tgz", - "integrity": "sha512-nEZ9byP89hIU0dMx37JXQkE1IpMmqKtsaR24X7aM3L6Yy/uAtbb+ogqthuNYJkeO1HyvK7JsX84z8649hvp43Q==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz", + "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==" }, "conventional-changelog-express": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-3.0.0.tgz", - "integrity": "sha512-HqxihpUMfIuxvlPvC6HltA4ZktQEUan/v3XQ77+/zbu8No/fqK3rxSZaYeHYant7zRxQNIIli7S+qLS9tX9zQA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz", + "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==" }, "conventional-changelog-jquery": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-4.0.0.tgz", - "integrity": "sha512-TTIN5CyzRMf8PUwyy4IOLmLV2DFmPtasKN+x7EQKzwSX8086XYwo+NeaeA3VUT8bvKaIy5z/JoWUvi7huUOgaw==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz", + "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==" }, "conventional-changelog-jshint": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-3.0.0.tgz", - "integrity": "sha512-bQof4byF4q+n+dwFRkJ/jGf9dCNUv4/kCDcjeCizBvfF81TeimPZBB6fT4HYbXgxxfxWXNl/i+J6T0nI4by6DA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz", + "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==", "requires": { "compare-func": "^2.0.0" } }, "conventional-changelog-preset-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", - "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.0.0.tgz", + "integrity": "sha512-xYGvKMkJs8o6vnKDbo2v5VcalZmH54lVU+OCvFQvxj3AQKRMJhbKwvBVsSXfQSuhaG9r6mdK8TIMOaiwiStasg==" }, "conventional-changelog-writer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.0.tgz", - "integrity": "sha512-8PyWTnn7zBIt9l4hj4UusFs1TyG+9Ulu1zlOAc72L7Sdv9Hsc8E86ot7htY3HXCVhXHB/NO0pVGvZpwsyJvFfw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.0.tgz", + "integrity": "sha512-9/6vTDd3wDbH9yayZNOq53UWI4QqYlbiLBtWf+alsQA/bBFHG+k3KnQ8Fu/xzHqsbQfzPg3w1H1piWYn/GD9Tw==", "requires": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", + "conventional-commits-filter": "^4.0.0", "handlebars": "^4.7.7", "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^6.3.0", - "split": "^1.0.1" + "meow": "^12.0.1", + "semver": "^7.5.2", + "split2": "^4.0.0" } }, "conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", + "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==" }, "conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "requires": { - "is-text-path": "^1.0.1", + "is-text-path": "^2.0.0", "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" + "meow": "^12.0.1", + "split2": "^4.0.0" } }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==" - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" - } - } + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==" }, "dot-prop": { "version": "5.3.0", @@ -2357,7 +1731,8 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -2370,7 +1745,8 @@ "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -2384,11 +1760,12 @@ "dev": true }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "requires": { - "locate-path": "^2.0.0" + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" } }, "function-bind": { @@ -2399,65 +1776,17 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "git-raw-commits": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", - "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "requires": { - "dargs": "^7.0.0", - "meow": "^8.1.2", - "split2": "^3.2.2" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" } }, "git-remote-origin-url": { @@ -2470,12 +1799,12 @@ } }, "git-semver-tags": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.0.tgz", - "integrity": "sha512-fZ+tmZ1O5aXW/T5nLzZLbxWAHdQTLLXalOECMNAmhoEQSfqZjtaeMjpsXH4C5qVhrICTkVQeQFujB1lKzIHljA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz", + "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==", "requires": { - "meow": "^8.1.2", - "semver": "^6.3.0" + "meow": "^12.0.1", + "semver": "^7.5.2" } }, "gitconfiglocal": { @@ -2486,28 +1815,18 @@ "ini": "^1.3.2" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "requires": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" } }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2522,11 +1841,11 @@ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.0.tgz", + "integrity": "sha512-ICclEpTLhHj+zCuSb2/usoNXSVkxUSIopre+b1w8NDY9Dntp9LO4vLdHYI336TH8sAqwrRgnSfdkBG2/YpisHA==", "requires": { - "lru-cache": "^6.0.0" + "lru-cache": "^10.0.1" } }, "http2-client": { @@ -2535,16 +1854,6 @@ "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", @@ -2553,12 +1862,12 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "requires": { "has": "^1.0.3" } @@ -2566,31 +1875,22 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" - }, "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "requires": { - "text-extensions": "^1.0.0" + "text-extensions": "^2.0.0" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2604,15 +1904,10 @@ "argparse": "^2.0.1" } }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" }, "json-stringify-safe": { "version": "5.0.1", @@ -2633,41 +1928,17 @@ "through": ">=2.2.7 <3" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==" }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^6.0.0" } }, "lodash": { @@ -2675,179 +1946,21 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==" - }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" }, "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - } - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" - } - } - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==" }, "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==" - }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -2863,24 +1976,14 @@ } }, "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - } + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" } }, "oas-kit-common": { @@ -2962,60 +2065,45 @@ } }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "requires": { - "p-try": "^1.0.0" + "yocto-queue": "^1.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "requires": { - "p-limit": "^1.1.0" + "p-limit": "^4.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", + "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", "requires": { - "pify": "^3.0.0" + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" } } }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3027,75 +2115,25 @@ "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" - }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" - } + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" } }, "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", + "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "find-up": "^6.3.0", + "read-pkg": "^8.1.0", + "type-fest": "^4.2.0" } }, "reftools": { @@ -3107,28 +2145,27 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, "should": { "version": "13.2.3", "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", @@ -3189,9 +2226,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -3212,38 +2249,20 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" }, "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3254,23 +2273,11 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -3279,30 +2286,20 @@ "has-flag": "^3.0.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==" }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==" - }, "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", + "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==" }, "uglify-js": { "version": "3.17.4", @@ -3310,11 +2307,6 @@ "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -3333,21 +2325,18 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true }, "yallist": { "version": "4.0.0", @@ -3360,24 +2349,10 @@ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" } } } diff --git a/package.json b/package.json index 517762634..d002e9d1f 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.1.2", - "conventional-changelog": "^4.0.0", + "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From 9e9d61997dc447779a3fc285cd2ecad57666a1d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:28:27 +0800 Subject: [PATCH 109/888] build(deps): update module gorm.io/gorm to v1.25.4 (#399) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 785dff4c8..6fd72a26f 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23 - gorm.io/gorm v1.25.2 + gorm.io/gorm v1.25.4 gorm.io/plugin/dbresolver v1.4.7 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index ff8c1a6cc..975ab0e22 100644 --- a/go.sum +++ b/go.sum @@ -685,8 +685,9 @@ gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.2 h1:gs1o6Vsa+oVKG/a9ElL3XgyGfghFfkKA2SInQaCyMho= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= +gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.4.7 h1:ZwtwmJQxTx9us7o6zEHFvH1q4OeEo1pooU7efmnunJA= From 61ff970752700c420123b5e01244a5e0f77c8c8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Sep 2023 14:24:47 +0800 Subject: [PATCH 110/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to v11 (#408) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 88 ++++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d4e5f4e8..62173aaff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.14", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.1.2", + "@apidevtools/json-schema-ref-parser": "^11.1.0", "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" @@ -21,14 +21,21 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", - "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz", + "integrity": "sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==", "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" + "@types/json-schema": "^7.0.13", + "@types/lodash.clonedeep": "^4.5.7", + "js-yaml": "^4.1.0", + "lodash.clonedeep": "^4.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" } }, "node_modules/@babel/code-frame": { @@ -149,9 +156,22 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" + }, + "node_modules/@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", + "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", + "dependencies": { + "@types/lodash": "*" + } }, "node_modules/@types/node": { "version": "17.0.35", @@ -206,7 +226,8 @@ "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true }, "node_modules/chalk": { "version": "2.4.2", @@ -790,6 +811,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, "node_modules/lru-cache": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", @@ -1351,14 +1377,15 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", - "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz", + "integrity": "sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==", "requires": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" + "@types/json-schema": "^7.0.13", + "@types/lodash.clonedeep": "^4.5.7", + "js-yaml": "^4.1.0", + "lodash.clonedeep": "^4.5.0" } }, "@babel/code-frame": { @@ -1467,9 +1494,22 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" + }, + "@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + }, + "@types/lodash.clonedeep": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", + "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", + "requires": { + "@types/lodash": "*" + } }, "@types/node": { "version": "17.0.35", @@ -1515,7 +1555,8 @@ "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true }, "chalk": { "version": "2.4.2", @@ -1946,6 +1987,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, "lru-cache": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", diff --git a/package.json b/package.json index d002e9d1f..fe9b3dcb8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.1.2", + "@apidevtools/json-schema-ref-parser": "^11.1.0", "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" From caf20bac357d4d45eb46102aa1b71ce016cea193 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:34:57 +0800 Subject: [PATCH 111/888] ci: update docker/metadata-action action to v5 (#422) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 95a3b559e..1b47d3176 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -58,7 +58,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ${{ env.IMAGE }} tags: | From 1303980b71439f98852008e4b3709ae7b9ca0add Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:35:04 +0800 Subject: [PATCH 112/888] ci: update docker/build-push-action action to v5 (#420) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 1b47d3176..8a6a1a775 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -74,7 +74,7 @@ jobs: password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: ./ provenance: false From aa20c2d965cf86f25a3f24e27f238385d43537b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:35:17 +0800 Subject: [PATCH 113/888] ci: update actions/checkout action to v4 (#419) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/release-openapi.yaml | 6 +++--- .github/workflows/release.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/test.yaml | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 722d5bfe0..2a62fcbb7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,7 +29,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 35365ca82..5dc51646d 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Node LTS uses: actions/setup-node@v3 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index c3a2f8a34..e0d57a7a0 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,7 +26,7 @@ jobs: lint: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 8a6a1a775..a3293ce94 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 907277218..99213d456 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -10,7 +10,7 @@ jobs: openapi: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 16 @@ -18,7 +18,7 @@ jobs: - run: npm ci - run: npm run build - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: repository: "bangumi/api" path: api @@ -35,7 +35,7 @@ jobs: branch: "update-upstream" author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: repository: "bangumi/dev-docs" path: dev-docs diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2efafffc1..e194dbf1e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,7 +9,7 @@ jobs: github: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index d23f8c4f8..562e33c05 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -25,7 +25,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: "lts/*" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 883c54ce3..0c52c7de4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env - run: cd ~/dev-env && docker-compose up -d - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive From 30f6484371603ac7f253ac15281274329933f0a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:35:24 +0800 Subject: [PATCH 114/888] ci: update docker/login-action action to v3 (#421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index a3293ce94..38fd3565f 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -67,7 +67,7 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - - uses: docker/login-action@v2 + - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} From 96f4074ad79c98ebe3b99cbe92866bbb41b0077c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:46:14 +0800 Subject: [PATCH 115/888] build(deps): update module golang.org/x/crypto to v0.13.0 (#418) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 6fd72a26f..cd79fcbd5 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 go.uber.org/zap v1.25.0 - golang.org/x/crypto v0.12.0 + golang.org/x/crypto v0.13.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 @@ -90,8 +90,8 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.12.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/sys v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect diff --git a/go.sum b/go.sum index 975ab0e22..8f8b7921c 100644 --- a/go.sum +++ b/go.sum @@ -473,8 +473,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -565,8 +565,8 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -579,8 +579,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= From e6cd4d36a12dd03a5402b49bae32ecfcaad3da5c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 00:51:40 +0800 Subject: [PATCH 116/888] build(deps): update module go.uber.org/zap to v1.26.0 (#417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cd79fcbd5..71141fcb2 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 - go.uber.org/zap v1.25.0 + go.uber.org/zap v1.26.0 golang.org/x/crypto v0.13.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 diff --git a/go.sum b/go.sum index 8f8b7921c..fc21a1f7a 100644 --- a/go.sum +++ b/go.sum @@ -462,8 +462,8 @@ go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= -go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= From 060e92c483e95b9143fbc29deb4e0af8c3d3b146 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:15:10 +0800 Subject: [PATCH 117/888] build(deps): update module github.com/aws/aws-sdk-go to v1.45.19 (#409) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 71141fcb2..dde9a985a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.0 - github.com/aws/aws-sdk-go v1.45.1 + github.com/aws/aws-sdk-go v1.45.19 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index fc21a1f7a..d093b5ede 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVis github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.45.1 h1:PXuxDZIo/Y9Bvtg2t055+dY4hRwNAEcq6bUMv9fXcjk= -github.com/aws/aws-sdk-go v1.45.1/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U= +github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From aa9b6185efe108f96a8de55afb10c8a1202e1fc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:17:02 +0800 Subject: [PATCH 118/888] build(deps): update module github.com/go-playground/validator/v10 to v10.15.4 (#410) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index dde9a985a..6e0caf836 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.15.3 + github.com/go-playground/validator/v10 v10.15.4 github.com/go-redis/redismock/v9 v9.0.3 github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index d093b5ede..34f49fc80 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.15.3 h1:S+sSpunYjNPDuXkWbK+x+bA7iXiW296KG4dL3X7xUZo= -github.com/go-playground/validator/v10 v10.15.3/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+WggpvnAKMsalBjs= +github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= From 4e17fc9d0f756cc0d1b905259f39566ddfed1322 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:29:31 +0800 Subject: [PATCH 119/888] build(deps): update module github.com/prometheus/client_golang to v1.17.0 (#415) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 9 ++++----- go.sum | 20 +++++++++----------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 6e0caf836..dfc5f613e 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.25.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.16.0 + github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.1.0 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.42 @@ -74,10 +74,9 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect - github.com/rogpeppe/go-internal v1.6.1 // indirect + github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/stretchr/objx v0.5.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect diff --git a/go.sum b/go.sum index 34f49fc80..5cf616c07 100644 --- a/go.sum +++ b/go.sum @@ -127,7 +127,6 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -328,39 +327,38 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= From 6023387d83366b2a8e83bda42b2951f45753fac0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:29:49 +0800 Subject: [PATCH 120/888] build(deps): update module github.com/go-resty/resty/v2 to v2.8.0 (#414) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index dfc5f613e..05918cdfb 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.15.4 github.com/go-redis/redismock/v9 v9.0.3 - github.com/go-resty/resty/v2 v2.7.0 + github.com/go-resty/resty/v2 v2.8.0 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 @@ -88,7 +88,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.12.0 // indirect + golang.org/x/net v0.15.0 // indirect golang.org/x/sys v0.12.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect diff --git a/go.sum b/go.sum index 5cf616c07..a9580f03e 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+W github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= -github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY= -github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I= +github.com/go-resty/resty/v2 v2.8.0 h1:J29d0JFWwSWrDCysnOK/YjsPMLQTx0TvgJEHVGvf2L8= +github.com/go-resty/resty/v2 v2.8.0/go.mod h1:UCui0cMHekLrSntoMyofdSTaPpinlRHFtPpizuyDW2w= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -486,6 +486,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -508,14 +509,15 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -526,6 +528,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -563,12 +566,15 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -577,6 +583,7 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -600,6 +607,7 @@ golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8= golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 52b7f0d48eaa567b297a503d6eadac33f9a0b1db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:30:17 +0800 Subject: [PATCH 121/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.43 (#412) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 05918cdfb..c9d6c93a1 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.1.0 github.com/samber/lo v1.38.1 - github.com/segmentio/kafka-go v0.4.42 + github.com/segmentio/kafka-go v0.4.43 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index a9580f03e..80014afd7 100644 --- a/go.sum +++ b/go.sum @@ -366,8 +366,8 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.42 h1:qffhBZCz4WcWyNuHEclHjIMLs2slp6mZO8px+5W5tfU= -github.com/segmentio/kafka-go v0.4.42/go.mod h1:d0g15xPMqoUookug0OU75DhGZxXwCFxSLeJ4uphwJzg= +github.com/segmentio/kafka-go v0.4.43 h1:yKVQ/i6BobbX7AWzwkhulsEn47wpLA8eO6H03bCMqYg= +github.com/segmentio/kafka-go v0.4.43/go.mod h1:d0g15xPMqoUookug0OU75DhGZxXwCFxSLeJ4uphwJzg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= From 25da2e77128aae570293cdeb53cf7a0b13be1ac5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 01:30:36 +0800 Subject: [PATCH 122/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.25.1 (#411) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c9d6c93a1..afc27bb42 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.1 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.25.0 + github.com/meilisearch/meilisearch-go v0.25.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.1.0 diff --git a/go.sum b/go.sum index 80014afd7..9432b4de6 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/meilisearch/meilisearch-go v0.25.0 h1:xIp+8YWterHuDvpdYlwQ4Qp7im3JlRHmSKiP0NvjyXs= -github.com/meilisearch/meilisearch-go v0.25.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.25.1 h1:D5wY22sn5kkpRH3uYMGlwltdUEq5regIFmO7awHz3Vo= +github.com/meilisearch/meilisearch-go v0.25.1/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= From 46269853e85a0a9bb7cd3edd2828039171b9d160 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 1 Oct 2023 01:40:16 +0800 Subject: [PATCH 123/888] ci: remove changelog scripts, use github actions --- .github/workflows/release.yaml | 18 +- package-lock.json | 1594 +------------------------------- package.json | 2 - readme.md | 2 + scripts/changelog.js | 70 -- 5 files changed, 17 insertions(+), 1669 deletions(-) delete mode 100644 scripts/changelog.js diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e194dbf1e..a0748b9e3 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,17 +13,17 @@ jobs: with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - name: Generate Changelog + id: changelog + uses: requarks/changelog-action@v1.9.0 with: - node-version: 16 - - - run: npm ci - - - run: node scripts/changelog.js > changelog.md - - - run: echo "TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV + token: ${{ github.token }} + tag: ${{ github.ref_name }} + writeToFile: false + includeTypes: feat,fix,revert - name: Upload GitHub Release - run: gh release create "$TAG" --title "$TAG" -F changelog.md + run: gh release create "${GITHUB_REF}" --notes "${CHANGELOG}" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CHANGELOG: "${{ steps.changelog.outputs.changes }}" diff --git a/package-lock.json b/package-lock.json index 62173aaff..22da73601 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,10 @@ "version": "0.33.14", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", - "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { - "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", "prettier": "^3.0.3" @@ -38,123 +36,17 @@ "url": "https://github.com/sponsors/philsturgeon" } }, - "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@exodus/schemasafe": { "version": "1.0.0-rc.6", "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz", "integrity": "sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==", "dev": true }, - "node_modules/@hutson/parse-repository-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", - "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, - "node_modules/@types/conventional-changelog": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog/-/conventional-changelog-3.1.1.tgz", - "integrity": "sha512-+Ei7ZUTHnWseUthn22+MVLQjcQZ0AitqOk/UMl3/3aX5FMPofGeKVn/0HZYabsLN+kCioP3FpBrucrWdcCoMJw==", - "dev": true, - "dependencies": { - "@types/conventional-changelog-core": "*", - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*", - "@types/node": "*" - } - }, - "node_modules/@types/conventional-changelog-core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog-core/-/conventional-changelog-core-4.2.1.tgz", - "integrity": "sha512-XdQKXrWvHYvnhuXal4JcvIh3sn9LpcER/WjWDDQHh0yz3/yt0r8TvE5AyJwX6xL9BwJRpE1Ce+A0Hj16nsfI6w==", - "dev": true, - "dependencies": { - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*", - "@types/conventional-recommended-bump": "*", - "@types/git-raw-commits": "*", - "@types/node": "*", - "@types/normalize-package-data": "*" - } - }, - "node_modules/@types/conventional-changelog-writer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog-writer/-/conventional-changelog-writer-4.0.1.tgz", - "integrity": "sha512-S7lJJByPMkkocMWnDKOtkSLi9yXu619+GhGejPnCiNK1Dgwjf5jjzBxXYgMv47tBG8MokmCCV1sWhI53lFl6FA==", - "dev": true, - "dependencies": { - "@types/conventional-commits-parser": "*", - "@types/node": "*" - } - }, - "node_modules/@types/conventional-commits-parser": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-3.0.2.tgz", - "integrity": "sha512-1kVPUHFaart1iGRFxKn8WNXYEDVAgMb+DLatgql2dGg9jTGf3bNxWtN//C/tDG3ckOLg4u7SSx+qcn8VjzI5zg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-AlhJsbzY2W+9xkn44qvEgeJGY6FbQIluPRZawwU2JgJw+o7PYB/yjeuRsJhNZRKto3j71hDj+hQik10w/7bI4Q==", - "dev": true, - "dependencies": { - "@types/conventional-changelog-core": "*", - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*" - } - }, - "node_modules/@types/git-raw-commits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/git-raw-commits/-/git-raw-commits-2.0.1.tgz", - "integrity": "sha512-vE2lbXxqJ0AqMDoP4N6d+WVfbcBla9+z8IL6e+37JNQIwYZCYY0z3J7hdpY8D/VGwFZ0yIYQLcqk8eCnfXsaEg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/json-schema": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", @@ -173,22 +65,6 @@ "@types/lodash": "*" } }, - "node_modules/@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==" - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -218,54 +94,12 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==" - }, "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -304,226 +138,12 @@ "node": ">=0.1.90" } }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/conventional-changelog": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.0.0.tgz", - "integrity": "sha512-k0c3lCtY3+k75gyrIoO7WEyBd4HLxu8QmTTPxM4D+vKk9wN06GZ/iaVJXQsGZae3Cezb02Is5PJ70fia3zZG8Q==", - "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-atom": "^4.0.0", - "conventional-changelog-codemirror": "^4.0.0", - "conventional-changelog-conventionalcommits": "^7.0.0", - "conventional-changelog-core": "^6.0.0", - "conventional-changelog-ember": "^4.0.0", - "conventional-changelog-eslint": "^5.0.0", - "conventional-changelog-express": "^4.0.0", - "conventional-changelog-jquery": "^5.0.0", - "conventional-changelog-jshint": "^4.0.0", - "conventional-changelog-preset-loader": "^4.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-atom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz", - "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-codemirror": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz", - "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.1.tgz", - "integrity": "sha512-VfFJxBmi+LYXeb4pIfZGbuaFCpWZh0qXbUAKP/s6B8tigV6R4D8j5PDlTtMMWawa7+DcNySVoF7kPWz0EMYuCQ==", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-6.0.0.tgz", - "integrity": "sha512-7WPwzTp3eRMot/2mbTAHF8m/0Ue4F/R/sMpSjmhBYi/+xnW2SqnXL/FMuYqEpNC2v3rjzRZ4p+9tYcKfHn02Cg==", - "dependencies": { - "@hutson/parse-repository-url": "^5.0.0", - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-parser": "^5.0.0", - "git-raw-commits": "^4.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^6.0.0", - "hosted-git-info": "^7.0.0", - "normalize-package-data": "^6.0.0", - "read-pkg": "^8.0.0", - "read-pkg-up": "^10.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-ember": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz", - "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-eslint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz", - "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-express": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz", - "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-jquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz", - "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-jshint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz", - "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.0.0.tgz", - "integrity": "sha512-xYGvKMkJs8o6vnKDbo2v5VcalZmH54lVU+OCvFQvxj3AQKRMJhbKwvBVsSXfQSuhaG9r6mdK8TIMOaiwiStasg==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.0.tgz", - "integrity": "sha512-9/6vTDd3wDbH9yayZNOq53UWI4QqYlbiLBtWf+alsQA/bBFHG+k3KnQ8Fu/xzHqsbQfzPg3w1H1piWYn/GD9Tw==", - "dependencies": { - "conventional-commits-filter": "^4.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", - "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -533,40 +153,12 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -576,134 +168,12 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", - "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-semver-tags": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz", - "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==", - "dependencies": { - "meow": "^12.0.1", - "semver": "^7.5.2" - }, - "bin": { - "git-semver-tags": "cli.mjs" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/hosted-git-info": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.0.tgz", - "integrity": "sha512-ICclEpTLhHj+zCuSb2/usoNXSVkxUSIopre+b1w8NDY9Dntp9LO4vLdHYI336TH8sAqwrRgnSfdkBG2/YpisHA==", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/http2-client": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -713,30 +183,6 @@ "node": ">=8" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -748,64 +194,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -816,38 +204,6 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", - "engines": { - "node": ">=16.10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, "node_modules/node-fetch-h2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", @@ -860,20 +216,6 @@ "node": "4.x || >=6.0.0" } }, - "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -971,79 +313,6 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prettier": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", @@ -1059,39 +328,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", - "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", - "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", - "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.1.0", - "type-fest": "^4.2.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reftools": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", @@ -1101,38 +337,13 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, "node_modules/should": { @@ -1189,50 +400,6 @@ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", "dev": true }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1259,70 +426,6 @@ "node": ">=8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -1349,11 +452,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", @@ -1362,17 +460,6 @@ "engines": { "node": ">= 6" } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } }, "dependencies": { @@ -1388,111 +475,17 @@ "lodash.clonedeep": "^4.5.0" } }, - "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" - }, - "@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, "@exodus/schemasafe": { "version": "1.0.0-rc.6", "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz", "integrity": "sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==", "dev": true }, - "@hutson/parse-repository-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz", - "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==" - }, "@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, - "@types/conventional-changelog": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog/-/conventional-changelog-3.1.1.tgz", - "integrity": "sha512-+Ei7ZUTHnWseUthn22+MVLQjcQZ0AitqOk/UMl3/3aX5FMPofGeKVn/0HZYabsLN+kCioP3FpBrucrWdcCoMJw==", - "dev": true, - "requires": { - "@types/conventional-changelog-core": "*", - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*", - "@types/node": "*" - } - }, - "@types/conventional-changelog-core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog-core/-/conventional-changelog-core-4.2.1.tgz", - "integrity": "sha512-XdQKXrWvHYvnhuXal4JcvIh3sn9LpcER/WjWDDQHh0yz3/yt0r8TvE5AyJwX6xL9BwJRpE1Ce+A0Hj16nsfI6w==", - "dev": true, - "requires": { - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*", - "@types/conventional-recommended-bump": "*", - "@types/git-raw-commits": "*", - "@types/node": "*", - "@types/normalize-package-data": "*" - } - }, - "@types/conventional-changelog-writer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/conventional-changelog-writer/-/conventional-changelog-writer-4.0.1.tgz", - "integrity": "sha512-S7lJJByPMkkocMWnDKOtkSLi9yXu619+GhGejPnCiNK1Dgwjf5jjzBxXYgMv47tBG8MokmCCV1sWhI53lFl6FA==", - "dev": true, - "requires": { - "@types/conventional-commits-parser": "*", - "@types/node": "*" - } - }, - "@types/conventional-commits-parser": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-3.0.2.tgz", - "integrity": "sha512-1kVPUHFaart1iGRFxKn8WNXYEDVAgMb+DLatgql2dGg9jTGf3bNxWtN//C/tDG3ckOLg4u7SSx+qcn8VjzI5zg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-AlhJsbzY2W+9xkn44qvEgeJGY6FbQIluPRZawwU2JgJw+o7PYB/yjeuRsJhNZRKto3j71hDj+hQik10w/7bI4Q==", - "dev": true, - "requires": { - "@types/conventional-changelog-core": "*", - "@types/conventional-changelog-writer": "*", - "@types/conventional-commits-parser": "*" - } - }, - "@types/git-raw-commits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/git-raw-commits/-/git-raw-commits-2.0.1.tgz", - "integrity": "sha512-vE2lbXxqJ0AqMDoP4N6d+WVfbcBla9+z8IL6e+37JNQIwYZCYY0z3J7hdpY8D/VGwFZ0yIYQLcqk8eCnfXsaEg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/json-schema": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", @@ -1511,22 +504,6 @@ "@types/lodash": "*" } }, - "@types/node": { - "version": "17.0.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", - "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==" - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1547,50 +524,12 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==" - }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - } - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -1623,320 +562,42 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "conventional-changelog": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-5.0.0.tgz", - "integrity": "sha512-k0c3lCtY3+k75gyrIoO7WEyBd4HLxu8QmTTPxM4D+vKk9wN06GZ/iaVJXQsGZae3Cezb02Is5PJ70fia3zZG8Q==", - "requires": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-atom": "^4.0.0", - "conventional-changelog-codemirror": "^4.0.0", - "conventional-changelog-conventionalcommits": "^7.0.0", - "conventional-changelog-core": "^6.0.0", - "conventional-changelog-ember": "^4.0.0", - "conventional-changelog-eslint": "^5.0.0", - "conventional-changelog-express": "^4.0.0", - "conventional-changelog-jquery": "^5.0.0", - "conventional-changelog-jshint": "^4.0.0", - "conventional-changelog-preset-loader": "^4.0.0" - } - }, - "conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "requires": { - "compare-func": "^2.0.0" - } - }, - "conventional-changelog-atom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-4.0.0.tgz", - "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==" - }, - "conventional-changelog-codemirror": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-4.0.0.tgz", - "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==" - }, - "conventional-changelog-conventionalcommits": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.1.tgz", - "integrity": "sha512-VfFJxBmi+LYXeb4pIfZGbuaFCpWZh0qXbUAKP/s6B8tigV6R4D8j5PDlTtMMWawa7+DcNySVoF7kPWz0EMYuCQ==", - "requires": { - "compare-func": "^2.0.0" - } - }, - "conventional-changelog-core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-6.0.0.tgz", - "integrity": "sha512-7WPwzTp3eRMot/2mbTAHF8m/0Ue4F/R/sMpSjmhBYi/+xnW2SqnXL/FMuYqEpNC2v3rjzRZ4p+9tYcKfHn02Cg==", - "requires": { - "@hutson/parse-repository-url": "^5.0.0", - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-parser": "^5.0.0", - "git-raw-commits": "^4.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^6.0.0", - "hosted-git-info": "^7.0.0", - "normalize-package-data": "^6.0.0", - "read-pkg": "^8.0.0", - "read-pkg-up": "^10.0.0" - } - }, - "conventional-changelog-ember": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-4.0.0.tgz", - "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==" - }, - "conventional-changelog-eslint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-5.0.0.tgz", - "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==" - }, - "conventional-changelog-express": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-4.0.0.tgz", - "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==" - }, - "conventional-changelog-jquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-5.0.0.tgz", - "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==" - }, - "conventional-changelog-jshint": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-4.0.0.tgz", - "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==", - "requires": { - "compare-func": "^2.0.0" - } - }, - "conventional-changelog-preset-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.0.0.tgz", - "integrity": "sha512-xYGvKMkJs8o6vnKDbo2v5VcalZmH54lVU+OCvFQvxj3AQKRMJhbKwvBVsSXfQSuhaG9r6mdK8TIMOaiwiStasg==" - }, - "conventional-changelog-writer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.0.tgz", - "integrity": "sha512-9/6vTDd3wDbH9yayZNOq53UWI4QqYlbiLBtWf+alsQA/bBFHG+k3KnQ8Fu/xzHqsbQfzPg3w1H1piWYn/GD9Tw==", - "requires": { - "conventional-commits-filter": "^4.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" - } - }, - "conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==" - }, - "conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", - "requires": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" - } - }, - "dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==" - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, "fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "requires": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", - "requires": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" - } - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - } - }, - "git-semver-tags": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-6.0.0.tgz", - "integrity": "sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==", - "requires": { - "meow": "^12.0.1", - "semver": "^7.5.2" - } - }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "requires": { - "ini": "^1.3.2" - } - }, - "handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "hosted-git-info": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.0.tgz", - "integrity": "sha512-ICclEpTLhHj+zCuSb2/usoNXSVkxUSIopre+b1w8NDY9Dntp9LO4vLdHYI336TH8sAqwrRgnSfdkBG2/YpisHA==", - "requires": { - "lru-cache": "^10.0.1" - } - }, "http2-client": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", - "requires": { - "has": "^1.0.3" - } - }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "requires": { - "text-extensions": "^2.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -1945,43 +606,6 @@ "argparse": "^2.0.1" } }, - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==" - }, - "locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "requires": { - "p-locate": "^6.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1992,26 +616,6 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - }, - "meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==" - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, "node-fetch-h2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", @@ -2021,17 +625,6 @@ "http2-client": "^1.2.5" } }, - "normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", - "requires": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, "oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -2110,78 +703,12 @@ "yaml": "^1.10.0" } }, - "p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "requires": { - "yocto-queue": "^1.0.0" - } - }, - "p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "requires": { - "p-limit": "^4.0.0" - } - }, - "parse-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.0.0.tgz", - "integrity": "sha512-kP+TQYAzAiVnzOlWOe0diD6L35s9bJh0SCn95PIbZFKrOYuIRQsQkeWEYxzVDuHTt9V9YqvYCJ2Qo4z9wdfZPw==", - "requires": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "dependencies": { - "type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" - } - } - }, - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, "prettier": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true }, - "read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", - "requires": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" - } - }, - "read-pkg-up": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", - "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", - "requires": { - "find-up": "^6.3.0", - "read-pkg": "^8.1.0", - "type-fest": "^4.2.0" - } - }, "reftools": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", @@ -2194,24 +721,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, "should": { "version": "13.2.3", "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", @@ -2266,44 +775,6 @@ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2324,49 +795,6 @@ "ansi-regex": "^5.0.1" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==" - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -2384,21 +812,11 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true - }, - "yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==" } } } diff --git a/package.json b/package.json index fe9b3dcb8..72acb4564 100644 --- a/package.json +++ b/package.json @@ -13,12 +13,10 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", - "conventional-changelog": "^5.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { - "@types/conventional-changelog": "^3.1.1", "colors": "^1.4.0", "oas-validator": "^5.0.8", "prettier": "^3.0.3" diff --git a/readme.md b/readme.md index 123eb9953..bc1411905 100644 --- a/readme.md +++ b/readme.md @@ -107,6 +107,8 @@ redis 和 mysql 都在此 docker-compose 内 value.trim()) - .join("\n") - .trim(); - - console.log(changelog); -}); From dc5aaeb83f9b7aa4f1abf83975225a3fc0661c9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 11:17:47 +0800 Subject: [PATCH 124/888] build(deps): update module github.com/go-resty/resty/v2 to v2.9.0 (#423) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index afc27bb42..b75c90bda 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.15.4 github.com/go-redis/redismock/v9 v9.0.3 - github.com/go-resty/resty/v2 v2.8.0 + github.com/go-resty/resty/v2 v2.9.0 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index 9432b4de6..e924cfcea 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+W github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= -github.com/go-resty/resty/v2 v2.8.0 h1:J29d0JFWwSWrDCysnOK/YjsPMLQTx0TvgJEHVGvf2L8= -github.com/go-resty/resty/v2 v2.8.0/go.mod h1:UCui0cMHekLrSntoMyofdSTaPpinlRHFtPpizuyDW2w= +github.com/go-resty/resty/v2 v2.9.0 h1:uWV3X49cz7iFZVVcC8u4RoYpopZfMvPaMxDDaOdJmZo= +github.com/go-resty/resty/v2 v2.9.0/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -588,6 +588,7 @@ golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From da1c485091975ccf884061e91113664891c61f8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Oct 2023 12:16:10 +0800 Subject: [PATCH 125/888] build(deps): update module github.com/go-resty/resty/v2 to v2.9.1 (#424) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b75c90bda..f5a6fd772 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.15.4 github.com/go-redis/redismock/v9 v9.0.3 - github.com/go-resty/resty/v2 v2.9.0 + github.com/go-resty/resty/v2 v2.9.1 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index e924cfcea..9184ff041 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+W github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= -github.com/go-resty/resty/v2 v2.9.0 h1:uWV3X49cz7iFZVVcC8u4RoYpopZfMvPaMxDDaOdJmZo= -github.com/go-resty/resty/v2 v2.9.0/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4= +github.com/go-resty/resty/v2 v2.9.1 h1:PIgGx4VrHvag0juCJ4dDv3MiFRlDmP0vicBucwf+gLM= +github.com/go-resty/resty/v2 v2.9.1/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= From 7d8ae80800e500d59a8074c61c08a6494ddf0d0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 12:03:49 +0800 Subject: [PATCH 126/888] build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 (#425) --- go.mod | 6 +++--- go.sum | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index f5a6fd772..48d754eb8 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/fx v1.20.0 go.uber.org/zap v1.26.0 - golang.org/x/crypto v0.13.0 + golang.org/x/crypto v0.14.0 google.golang.org/grpc v1.52.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 @@ -88,8 +88,8 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.15.0 // indirect - golang.org/x/sys v0.12.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect diff --git a/go.sum b/go.sum index 9184ff041..c12554a21 100644 --- a/go.sum +++ b/go.sum @@ -471,8 +471,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -516,8 +517,9 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -567,8 +569,9 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 32bc34d9cc399618b858eaf351e0c3b44f3cd353 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:30:20 +0800 Subject: [PATCH 127/888] build(deps): update module google.golang.org/grpc to v1.56.3 [security] (#427) --- go.mod | 12 +++++++----- go.sum | 24 ++++++++++++++---------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 48d754eb8..95b03104c 100644 --- a/go.mod +++ b/go.mod @@ -31,11 +31,11 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.9 + go.etcd.io/etcd/client/v3 v3.5.10 go.uber.org/fx v1.20.0 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.14.0 - google.golang.org/grpc v1.52.3 + google.golang.org/grpc v1.58.3 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 @@ -81,8 +81,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.9 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect + go.etcd.io/etcd/api/v3 v3.5.10 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.10.0 // indirect @@ -93,7 +93,9 @@ require ( golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect - google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect + google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index c12554a21..4f73b1c1a 100644 --- a/go.sum +++ b/go.sum @@ -435,12 +435,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs= -go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k= -go.etcd.io/etcd/client/pkg/v3 v3.5.9 h1:oidDC4+YEuSIQbsR94rY9gur91UPL6DnxDCIYd2IGsE= -go.etcd.io/etcd/client/pkg/v3 v3.5.9/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4= -go.etcd.io/etcd/client/v3 v3.5.9 h1:r5xghnU7CwbUxD/fbUtRyJGaYNfDun8sp/gTr1hew6E= -go.etcd.io/etcd/client/v3 v3.5.9/go.mod h1:i/Eo5LrZ5IKqpbtpPDuaUnDOUv471oDg8cjQaUr2MbA= +go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k= +go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI= +go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0= +go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U= +go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao= +go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -627,8 +627,12 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w= -google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -638,8 +642,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ= -google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From c531bbe05cacef62d3161e24fbc607907ce86f87 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 27 Oct 2023 21:35:54 +0800 Subject: [PATCH 128/888] chore: group go-redis in renovatebot --- .github/renovate.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/renovate.json b/.github/renovate.json index fb5db0a98..bebd2c743 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -28,6 +28,11 @@ "matchManagers": ["gomod"], "semanticCommitType": "build" }, + { + "groupName": "gomod-redis", + "matchManagers": ["gomod"], + "matchPackagePrefixes": ["github.com/go-redis/redismock", "github.com/redis/go-redis"] + }, { "groupName": "npm", "matchManagers": ["npm"], From b7ffd702ffffef6ec9d570448f6f0f15feef6102 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:40:19 +0800 Subject: [PATCH 129/888] build(deps): update gomod-redis (#434) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 95b03104c..61fd9b41f 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.15.4 - github.com/go-redis/redismock/v9 v9.0.3 + github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.9.1 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.25.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.17.0 - github.com/redis/go-redis/v9 v9.1.0 + github.com/redis/go-redis/v9 v9.2.1 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.43 github.com/spf13/cobra v1.7.0 diff --git a/go.sum b/go.sum index 4f73b1c1a..f506116fe 100644 --- a/go.sum +++ b/go.sum @@ -35,9 +35,9 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bsm/ginkgo/v2 v2.5.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= -github.com/bsm/ginkgo/v2 v2.9.5 h1:rtVBYPs3+TC5iLUVOis1B9tjLTup7Cj5IfzosKtvTJ0= +github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/gomega v1.20.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk= -github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= +github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -97,8 +97,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+WggpvnAKMsalBjs= github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= -github.com/go-redis/redismock/v9 v9.0.3 h1:mtHQi2l51lCmXIbTRTqb1EiHYe9tL5Yk5oorlSJJqR0= -github.com/go-redis/redismock/v9 v9.0.3/go.mod h1:F6tJRfnU8R/NZ0E+Gjvoluk14MqMC5ueSZX6vVQypc0= +github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= +github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.9.1 h1:PIgGx4VrHvag0juCJ4dDv3MiFRlDmP0vicBucwf+gLM= github.com/go-resty/resty/v2 v2.9.1/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -354,8 +354,8 @@ github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwa github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= -github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= +github.com/redis/go-redis/v9 v9.2.1 h1:WlYJg71ODF0dVspZZCpYmoF1+U1Jjk9Rwd7pq6QmlCg= +github.com/redis/go-redis/v9 v9.2.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From ce1f9a2054f37f973be03e2ee47500bf774f6cb3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:40:28 +0800 Subject: [PATCH 130/888] ci: update autofix-ci/action digest to d3e5915 (#431) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 5dc51646d..f536e6111 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -29,4 +29,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@8caa572fd27b0019a65e4c695447089c8d3138b9 + - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc From 3786f3372b06b7aca6b41432f2ea657d9c65cf06 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:40:36 +0800 Subject: [PATCH 131/888] chore(deps): update gcr.io/distroless/static docker digest to 6706c73 (#430) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 06bfc4842..6fcfe4ca9 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:e7e79fb2947f38ce0fab6061733f7e1959c12b843079042fe13f56ca7b9d178c +FROM gcr.io/distroless/static@sha256:6706c73aae2afaa8201d63cc3dda48753c09bcd6c300762251065c0f7e602b25 ENTRYPOINT ["/app/chii.exe"] From 2cfeac640314a04f83807be0e0a811c2746a42c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:40:58 +0800 Subject: [PATCH 132/888] build(deps): update module google.golang.org/grpc to v1.59.0 (#429) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 61fd9b41f..42c3c2327 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( go.uber.org/fx v1.20.0 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.14.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 @@ -93,9 +93,9 @@ require ( golang.org/x/text v0.13.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect - google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index f506116fe..fa035ddad 100644 --- a/go.sum +++ b/go.sum @@ -627,12 +627,12 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -642,8 +642,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From c19c5a631da5764a4390f151226af7e71fd2bd33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:45:33 +0800 Subject: [PATCH 133/888] build(deps): update module github.com/go-resty/resty/v2 to v2.10.0 (#436) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 42c3c2327..127f653e9 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.15.4 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.9.1 + github.com/go-resty/resty/v2 v2.10.0 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index fa035ddad..66ffc27c7 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+W github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.9.1 h1:PIgGx4VrHvag0juCJ4dDv3MiFRlDmP0vicBucwf+gLM= -github.com/go-resty/resty/v2 v2.9.1/go.mod h1:4/GYJVjh9nhkhGR6AUNW3XhpDYNUr+Uvy9gV/VGZIy4= +github.com/go-resty/resty/v2 v2.10.0 h1:Qla4W/+TMmv0fOeeRqzEpXPLfTUnR5HZ1+lGs+CkiCo= +github.com/go-resty/resty/v2 v2.10.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -471,7 +471,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -517,7 +516,6 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -569,7 +567,6 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -577,7 +574,7 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -591,7 +588,6 @@ golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From d66bccac62fdc3f9796f5570c3e87bbc30c4146b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:45:56 +0800 Subject: [PATCH 134/888] build(deps): update module github.com/labstack/echo/v4 to v4.11.2 (#435) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 127f653e9..a4f58557b 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 - github.com/labstack/echo/v4 v4.11.1 + github.com/labstack/echo/v4 v4.11.2 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.25.1 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index 66ffc27c7..059b53818 100644 --- a/go.sum +++ b/go.sum @@ -231,8 +231,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/labstack/echo/v4 v4.11.1 h1:dEpLU2FLg4UVmvCGPuk/APjlH6GDpbEPti61srUUUs4= -github.com/labstack/echo/v4 v4.11.1/go.mod h1:YuYRTSM3CHs2ybfrL8Px48bO6BAnYIN4l8wSTMP6BDQ= +github.com/labstack/echo/v4 v4.11.2 h1:T+cTLQxWCDfqDEoydYm5kCobjmHwOwcv4OJAPHilmdE= +github.com/labstack/echo/v4 v4.11.2/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= From 58c0346e55934a2db0e36b7967738924a2688dbe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 21:46:12 +0800 Subject: [PATCH 135/888] ci: update actions/setup-node action to v4 (#437) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index f536e6111..fe82e4961 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v4 - name: Install Node LTS - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 99213d456..243bc15bd 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 16 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 562e33c05..e14032bc4 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -26,7 +26,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: "lts/*" cache: "npm" From 892615a4073eed08b0e0e5aecdfb6f46ae74bda7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:47:09 +0800 Subject: [PATCH 136/888] build(deps): update module github.com/go-playground/validator/v10 to v10.15.5 (#438) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a4f58557b..7312446df 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.15.4 + github.com/go-playground/validator/v10 v10.15.5 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.10.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index 059b53818..d849590c0 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.15.4 h1:zMXza4EpOdooxPel5xDqXEdXG5r+WggpvnAKMsalBjs= -github.com/go-playground/validator/v10 v10.15.4/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= +github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.10.0 h1:Qla4W/+TMmv0fOeeRqzEpXPLfTUnR5HZ1+lGs+CkiCo= From 52c013e1ce8d482e29ef2188329c8d74cd18de09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:47:58 +0800 Subject: [PATCH 137/888] build(deps): update module github.com/redis/go-redis/v9 to v9.3.0 (#444) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7312446df..156089d68 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.25.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.17.0 - github.com/redis/go-redis/v9 v9.2.1 + github.com/redis/go-redis/v9 v9.3.0 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.43 github.com/spf13/cobra v1.7.0 diff --git a/go.sum b/go.sum index d849590c0..3f498e55f 100644 --- a/go.sum +++ b/go.sum @@ -354,8 +354,8 @@ github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwa github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.2.1 h1:WlYJg71ODF0dVspZZCpYmoF1+U1Jjk9Rwd7pq6QmlCg= -github.com/redis/go-redis/v9 v9.2.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0= +github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 820983985455769e3ed6924c7072b550d161d5c6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:48:05 +0800 Subject: [PATCH 138/888] build(deps): update module github.com/aws/aws-sdk-go to v1.47.0 (#443) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 156089d68..2470084cd 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.0 - github.com/aws/aws-sdk-go v1.45.19 + github.com/aws/aws-sdk-go v1.47.0 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 3f498e55f..5d659185d 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVis github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.45.19 h1:+4yXWhldhCVXWFOQRF99ZTJ92t4DtoHROZIbN7Ujk/U= -github.com/aws/aws-sdk-go v1.45.19/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.47.0 h1:/JUg9V1+xh+qBn8A6ec/l15ETPaMaBqxkjz+gg63dNk= +github.com/aws/aws-sdk-go v1.47.0/go.mod h1:DlEaEbWKZmsITVbqlSVvekPARM1HzeV9PMYg15ymSDA= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -512,7 +512,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= @@ -563,7 +562,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/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.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -571,7 +569,6 @@ golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= @@ -581,7 +578,6 @@ golang.org/x/text v0.3.3/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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= From 6735e0d030c5a760fc32634f909a08da7aa1b82b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:48:11 +0800 Subject: [PATCH 139/888] build(deps): update module gorm.io/gorm to v1.25.5 (#442) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2470084cd..545e5166f 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.1 gorm.io/gen v0.3.23 - gorm.io/gorm v1.25.4 + gorm.io/gorm v1.25.5 gorm.io/plugin/dbresolver v1.4.7 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 5d659185d..98fc7162b 100644 --- a/go.sum +++ b/go.sum @@ -692,8 +692,8 @@ gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqw gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.4 h1:iyNd8fNAe8W9dvtlgeRI5zSVZPsq3OpcTu37cYcpCmw= -gorm.io/gorm v1.25.4/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= +gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.4.7 h1:ZwtwmJQxTx9us7o6zEHFvH1q4OeEo1pooU7efmnunJA= From 94f2735ca3bbea9ebc36a6848a2b84b8890cabc1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:48:17 +0800 Subject: [PATCH 140/888] build(deps): update module gorm.io/driver/mysql to v1.5.2 (#441) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 545e5166f..dcda8372d 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.5.1 + gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.23 gorm.io/gorm v1.25.5 gorm.io/plugin/dbresolver v1.4.7 diff --git a/go.sum b/go.sum index 98fc7162b..8fabce45e 100644 --- a/go.sum +++ b/go.sum @@ -676,8 +676,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw= -gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o= +gorm.io/driver/mysql v1.5.2 h1:QC2HRskSE75wBuOxe0+iCkyJZ+RqpudsQtqkp+IMuXs= +gorm.io/driver/mysql v1.5.2/go.mod h1:pQLhh1Ut/WUAySdTHwBpBv6+JKcj+ua4ZFx1QQTBzb8= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= @@ -690,7 +690,7 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= From a319240cce3be7947b3c0db427a96c0793f5b9c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:48:29 +0800 Subject: [PATCH 141/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.44 (#439) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index dcda8372d..f9e152893 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.3.0 github.com/samber/lo v1.38.1 - github.com/segmentio/kafka-go v0.4.43 + github.com/segmentio/kafka-go v0.4.44 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 8fabce45e..f45037d3b 100644 --- a/go.sum +++ b/go.sum @@ -366,8 +366,8 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.43 h1:yKVQ/i6BobbX7AWzwkhulsEn47wpLA8eO6H03bCMqYg= -github.com/segmentio/kafka-go v0.4.43/go.mod h1:d0g15xPMqoUookug0OU75DhGZxXwCFxSLeJ4uphwJzg= +github.com/segmentio/kafka-go v0.4.44 h1:Vjjksniy0WSTZ7CuVJrz1k04UoZeTc77UV6Yyk6tLY4= +github.com/segmentio/kafka-go v0.4.44/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -513,7 +513,6 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= From b42c2f3d695bce7e4ea397249ac684bf4ae147f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 15:48:35 +0800 Subject: [PATCH 142/888] build(deps): update module go.uber.org/fx to v1.20.1 (#440) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f9e152893..3755db409 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.10 - go.uber.org/fx v1.20.0 + go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.14.0 google.golang.org/grpc v1.59.0 diff --git a/go.sum b/go.sum index f45037d3b..c691607cd 100644 --- a/go.sum +++ b/go.sum @@ -450,8 +450,8 @@ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= -go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= -go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= +go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk= +go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= From a7b32ea2e9e0288e7a6c05afe73e0f48a7b08305 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:57:33 +0800 Subject: [PATCH 143/888] build(deps): update module golang.org/x/crypto to v0.16.0 (#457) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 3755db409..bada32a7a 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.10 go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 - golang.org/x/crypto v0.14.0 + golang.org/x/crypto v0.16.0 google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 @@ -89,8 +89,8 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect diff --git a/go.sum b/go.sum index c691607cd..002267697 100644 --- a/go.sum +++ b/go.sum @@ -471,8 +471,9 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -564,8 +565,9 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -579,8 +581,9 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= From 8b4923edd2b058ab46d0a804edf9fa0174cc2c7c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:57:44 +0800 Subject: [PATCH 144/888] build(deps): update module github.com/spf13/cobra to v1.8.0 (#456) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index bada32a7a..31d2f7920 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/redis/go-redis/v9 v9.3.0 github.com/samber/lo v1.38.1 github.com/segmentio/kafka-go v0.4.44 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/trim21/errgo v0.0.2 diff --git a/go.sum b/go.sum index 002267697..5d75383ce 100644 --- a/go.sum +++ b/go.sum @@ -56,7 +56,7 @@ github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27 github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -378,8 +378,8 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= From 57fb263bf963fdb0880d1ec302a9590d7529e5a7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:57:58 +0800 Subject: [PATCH 145/888] build(deps): update module github.com/aws/aws-sdk-go to v1.48.10 (#453) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 31d2f7920..2e8cee4eb 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.0 - github.com/aws/aws-sdk-go v1.47.0 + github.com/aws/aws-sdk-go v1.48.10 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 5d75383ce..9d0feec76 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVis github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.47.0 h1:/JUg9V1+xh+qBn8A6ec/l15ETPaMaBqxkjz+gg63dNk= -github.com/aws/aws-sdk-go v1.47.0/go.mod h1:DlEaEbWKZmsITVbqlSVvekPARM1HzeV9PMYg15ymSDA= +github.com/aws/aws-sdk-go v1.48.10 h1:0LIFG3wp2Dt6PsxKWCg1Y1xRrn2vZnW5/gWdgaBalKg= +github.com/aws/aws-sdk-go v1.48.10/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From f624b4f213db2d469f7be03ad905b270fd6112f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:03:47 +0800 Subject: [PATCH 146/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.46 (#451) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2e8cee4eb..f158d3c14 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.3.0 github.com/samber/lo v1.38.1 - github.com/segmentio/kafka-go v0.4.44 + github.com/segmentio/kafka-go v0.4.46 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 9d0feec76..3b182e311 100644 --- a/go.sum +++ b/go.sum @@ -366,8 +366,8 @@ github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.44 h1:Vjjksniy0WSTZ7CuVJrz1k04UoZeTc77UV6Yyk6tLY4= -github.com/segmentio/kafka-go v0.4.44/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= +github.com/segmentio/kafka-go v0.4.46 h1:Sx8/kvtY+/G8nM0roTNnFezSJj3bT2sW0Xy/YY3CgBI= +github.com/segmentio/kafka-go v0.4.46/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= From 81759cb3ca8e6b03cafbfa015d3c35ed11c55b02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:03:54 +0800 Subject: [PATCH 147/888] build(deps): update module github.com/avast/retry-go/v4 to v4.5.1 (#449) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f158d3c14..a8a45f9de 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/bangumi/server go 1.20 require ( - github.com/avast/retry-go/v4 v4.5.0 + github.com/avast/retry-go/v4 v4.5.1 github.com/aws/aws-sdk-go v1.48.10 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 diff --git a/go.sum b/go.sum index 3b182e311..a212c9db9 100644 --- a/go.sum +++ b/go.sum @@ -21,8 +21,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.5.0 h1:QoRAZZ90cj5oni2Lsgl2GW8mNTnUCnmpx/iKpwVisHg= -github.com/avast/retry-go/v4 v4.5.0/go.mod h1:7hLEXp0oku2Nir2xBAsg0PTphp9z71bN5Aq1fboC3+I= +github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh7o= +github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.48.10 h1:0LIFG3wp2Dt6PsxKWCg1Y1xRrn2vZnW5/gWdgaBalKg= From 71d90d06865d350cb514f2e73cde31a60821d91b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:04:08 +0800 Subject: [PATCH 148/888] build(deps): update dependency prettier to ^3.1.0 (#452) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22da73601..9a7988163 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.0.3" + "prettier": "^3.1.0" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -314,9 +314,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -704,9 +704,9 @@ } }, "prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 72acb4564..03d341a64 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.0.3" + "prettier": "^3.1.0" }, "nodemonConfig": { "restartable": "rs", From 339e5b1552c42bdb36c9d83b679e19d9121ddd93 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:04:26 +0800 Subject: [PATCH 149/888] build(deps): update module gorm.io/plugin/dbresolver to v1.5.0 (#458) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a8a45f9de..4d42f42b0 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.23 gorm.io/gorm v1.25.5 - gorm.io/plugin/dbresolver v1.4.7 + gorm.io/plugin/dbresolver v1.5.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index a212c9db9..23d2c3db3 100644 --- a/go.sum +++ b/go.sum @@ -698,8 +698,8 @@ gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.4.7 h1:ZwtwmJQxTx9us7o6zEHFvH1q4OeEo1pooU7efmnunJA= -gorm.io/plugin/dbresolver v1.4.7/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= +gorm.io/plugin/dbresolver v1.5.0 h1:XVHLxh775eP0CqVh3vcfJtYqja3uFl5Wr3cKlY8jgDY= +gorm.io/plugin/dbresolver v1.5.0/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 870137a3a63055cc6309afb07de9fe15694c3936 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:04:35 +0800 Subject: [PATCH 150/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.26.0 (#455) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4d42f42b0..07faefbb3 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.2 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.25.1 + github.com/meilisearch/meilisearch-go v0.26.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.3.0 diff --git a/go.sum b/go.sum index 23d2c3db3..392f1c9d2 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/meilisearch/meilisearch-go v0.25.1 h1:D5wY22sn5kkpRH3uYMGlwltdUEq5regIFmO7awHz3Vo= -github.com/meilisearch/meilisearch-go v0.25.1/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.26.0 h1:6IdFC9S53gEp7FMkt99swIFyEZE+4TwJAgen3eQdw40= +github.com/meilisearch/meilisearch-go v0.26.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= From 643292ed2eb3e566abc7694c3eaa6fb8d1a7fa5a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:04:45 +0800 Subject: [PATCH 151/888] build(deps): update module github.com/go-playground/validator/v10 to v10.16.0 (#454) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 07faefbb3..ad6baddd9 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.15.5 + github.com/go-playground/validator/v10 v10.16.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.10.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index 392f1c9d2..17d77eecc 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= -github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqRRkz6M78GuJAfGE= +github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.10.0 h1:Qla4W/+TMmv0fOeeRqzEpXPLfTUnR5HZ1+lGs+CkiCo= From 1622d8ad6f7eed460ba6d94856fcd98a84fa70d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:04:55 +0800 Subject: [PATCH 152/888] build(deps): update module github.com/labstack/echo/v4 to v4.11.3 (#450) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ad6baddd9..ff7113951 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 - github.com/labstack/echo/v4 v4.11.2 + github.com/labstack/echo/v4 v4.11.3 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.0 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index 17d77eecc..eed095d7f 100644 --- a/go.sum +++ b/go.sum @@ -231,8 +231,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/labstack/echo/v4 v4.11.2 h1:T+cTLQxWCDfqDEoydYm5kCobjmHwOwcv4OJAPHilmdE= -github.com/labstack/echo/v4 v4.11.2/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= +github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM= +github.com/labstack/echo/v4 v4.11.3/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= From d0ccf9453f8bb4e12684bac0fbd2418633104d1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 16:26:10 +0800 Subject: [PATCH 153/888] ci: update autofix-ci/action digest to bee19d7 (#448) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index fe82e4961..75e47f789 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -29,4 +29,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc + - uses: autofix-ci/action@bee19d72e71787c12ca0f29de72f2833e437e4c9 From 5189770930784e6945c18d2a15523aa47113b91d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 12 Dec 2023 19:34:19 +0800 Subject: [PATCH 154/888] fix: new game subject platform --- pkg/vars/platform.go.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index 07a299a63..746f773ea 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -336,6 +336,34 @@ "search_string": "XSX|XSS|(Xbox Series X)|(Xbox Series S)", "type": "Xbox Series X/S", "type_cn": "Xbox Series X/S" + }, + "4001": { + "id": 4001, + "type": "games", + "type_cn": "游戏", + "alias": "games", + "enable_header": true + }, + "4003": { + "id": 4003, + "type": "dlc", + "type_cn": "扩展包", + "alias": "dlc", + "enable_header": true + }, + "4002": { + "id": 4002, + "type": "software", + "type_cn": "软件", + "alias": "software", + "enable_header": true + }, + "4005": { + "id": 4005, + "type": "tabletop", + "type_cn": "桌游", + "alias": "tabletop", + "enable_header": true } }, "6": { From b0953640b607dc5c08b49593775d6256d24ad908 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 12 Dec 2023 19:35:25 +0800 Subject: [PATCH 155/888] bump: 0.33.15 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a7988163..36ac5c2d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.14", + "version": "0.33.15", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.14", + "version": "0.33.15", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index 03d341a64..5d487d709 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.14", + "version": "0.33.15", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From b56e3b93b5ef018fbd68f18b9c812db7b1937a96 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 12 Dec 2023 20:54:13 +0800 Subject: [PATCH 156/888] ci: fix changelog generator --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a0748b9e3..0e305d6db 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,7 +20,7 @@ jobs: token: ${{ github.token }} tag: ${{ github.ref_name }} writeToFile: false - includeTypes: feat,fix,revert + restrictToTypes: feat,fix,revert - name: Upload GitHub Release run: gh release create "${GITHUB_REF}" --notes "${CHANGELOG}" From 6515dcc81142d2d5258a23ec0c273c75eccbb1ba Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 12 Dec 2023 23:54:22 +0800 Subject: [PATCH 157/888] fix: new game subject platform --- pkg/vars/platform.go.json | 245 +------------------------------------- 1 file changed, 6 insertions(+), 239 deletions(-) diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index 746f773ea..574b0fea7 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -98,245 +98,6 @@ } }, "4": { - "0": { - "id": 0, - "type": "", - "type_cn": "全部游戏" - }, - "4": { - "alias": "pc", - "id": 4, - "search_string": "pc|windows", - "type": "PC", - "type_cn": "PC" - }, - "5": { - "alias": "nds", - "id": 5, - "search_string": "nds", - "type": "NDS", - "type_cn": "NDS" - }, - "6": { - "alias": "psp", - "id": 6, - "search_string": "psp", - "type": "PSP", - "type_cn": "PSP" - }, - "7": { - "alias": "ps2", - "id": 7, - "search_string": "PS2", - "type": "PS2", - "type_cn": "PS2" - }, - "8": { - "alias": "ps3", - "id": 8, - "search_string": "PS3|(PlayStation 3)", - "type": "PS3", - "type_cn": "PS3" - }, - "9": { - "alias": "xbox360", - "id": 9, - "search_string": "xbox360", - "type": "Xbox360", - "type_cn": "Xbox360" - }, - "10": { - "alias": "wii", - "id": 10, - "search_string": "Wii", - "type": "Wii", - "type_cn": "Wii" - }, - "11": { - "alias": "iphone", - "id": 11, - "search_string": "iphone|ipad|ios", - "type": "iOS", - "type_cn": "iOS" - }, - "12": { - "alias": "arc", - "id": 12, - "search_string": "ARC|街机", - "type": "ARC", - "type_cn": "街机" - }, - "15": { - "alias": "xbox", - "id": 15, - "search_string": "XBOX", - "type": "XBOX", - "type_cn": "XBOX" - }, - "16": { - "id": 16, - "type": "GameCube", - "type_cn": "GameCube" - }, - "17": { - "alias": "gamecube", - "id": 17, - "search_string": "GameCube|ngc", - "type": "GameCube", - "type_cn": "GameCube" - }, - "18": { - "alias": "ngp", - "id": 18, - "search_string": "ngp", - "type": "NEOGEO Pocket Color", - "type_cn": "NEOGEO Pocket Color" - }, - "19": { - "alias": "sfc", - "id": 19, - "search_string": "SFC", - "type": "SFC", - "type_cn": "SFC" - }, - "20": { - "alias": "fc", - "id": 20, - "search_string": "FC", - "type": "FC", - "type_cn": "FC" - }, - "21": { - "alias": "n64", - "id": 21, - "search_string": "n64", - "type": "Nintendo 64", - "type_cn": "Nintendo 64" - }, - "22": { - "alias": "GBA", - "id": 22, - "search_string": "GBA", - "type": "GBA", - "type_cn": "GBA" - }, - "23": { - "alias": "GB", - "id": 23, - "search_string": "GB", - "type": "GB", - "type_cn": "GB" - }, - "24": { - "id": 24, - "type": "GBC", - "type_cn": "GBC" - }, - "25": { - "alias": "vb", - "id": 25, - "search_string": "Virtual Boy", - "type": "Virtual Boy", - "type_cn": "Virtual Boy" - }, - "26": { - "alias": "wsc", - "id": 26, - "search_string": "wsc", - "type": "WonderSwan Color", - "type_cn": "WonderSwan Color" - }, - "27": { - "alias": "dreamcast", - "id": 27, - "search_string": "dc", - "type": "Dreamcast", - "type_cn": "Dreamcast" - }, - "28": { - "alias": "ps", - "id": 28, - "search_string": "ps", - "type": "PlayStation", - "type_cn": "PlayStation" - }, - "29": { - "alias": "ws", - "id": 29, - "search_string": "ws", - "type": "WonderSwan", - "type_cn": "WonderSwan" - }, - "30": { - "alias": "psv", - "id": 30, - "search_string": "psv|vita", - "type": "PSVita", - "type_cn": "PS Vita" - }, - "31": { - "alias": "3ds", - "id": 31, - "search_string": "3ds", - "type": "3DS", - "type_cn": "3DS" - }, - "32": { - "alias": "android", - "id": 32, - "search_string": "android", - "type": "Android", - "type_cn": "Android" - }, - "33": { - "alias": "mac", - "id": 33, - "search_string": "mac", - "type": "Mac OS", - "type_cn": "Mac OS" - }, - "34": { - "alias": "ps4", - "id": 34, - "search_string": "PS4", - "type": "PS4", - "type_cn": "PS4" - }, - "35": { - "alias": "xbox_one", - "id": 35, - "search_string": "(Xbox One)", - "type": "Xbox One", - "type_cn": "Xbox One" - }, - "36": { - "alias": "wii_u", - "id": 36, - "search_string": "(Wii U)|WiiU", - "type": "Wii U", - "type_cn": "Wii U" - }, - "37": { - "alias": "ns", - "id": 37, - "search_string": "(Nintendo Switch)|NS", - "type": "Nintendo Switch", - "type_cn": "Nintendo Switch" - }, - "38": { - "alias": "ps5", - "id": 38, - "search_string": "PS5", - "type": "PS5", - "type_cn": "PS5" - }, - "39": { - "alias": "xbox_series_xs", - "id": 39, - "search_string": "XSX|XSS|(Xbox Series X)|(Xbox Series S)", - "type": "Xbox Series X/S", - "type_cn": "Xbox Series X/S" - }, "4001": { "id": 4001, "type": "games", @@ -364,6 +125,12 @@ "type_cn": "桌游", "alias": "tabletop", "enable_header": true + }, + "0": { + "id": 0, + "type": "other", + "type_cn": "其他", + "alias": "misc" } }, "6": { From e11708f5b4fd8a88d5eddfd08e1b6e4f4558ddf6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 12 Dec 2023 23:55:12 +0800 Subject: [PATCH 158/888] bump: 0.33.16 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 36ac5c2d1..85b6659d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.15", + "version": "0.33.16", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.15", + "version": "0.33.16", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index 5d487d709..52d2034aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.15", + "version": "0.33.16", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 07026bc1bfd05e9844d17d3d5c2e7a426ed9a0fa Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 13 Dec 2023 00:05:58 +0800 Subject: [PATCH 159/888] fix(collection): update eps (#459) --- ctrl/update_subject_collection.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index f54cdb3fb..a75481ec9 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -84,7 +84,7 @@ func (ctl Ctrl) UpdateSubjectCollection( } if req.EpStatus.Set { - s.UpdateVols(req.EpStatus.Value) + s.UpdateEps(req.EpStatus.Value) } if req.Type.Set { From d7c3054c02a06990c86536531247e750551c096b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 13 Dec 2023 00:06:11 +0800 Subject: [PATCH 160/888] bump: 0.33.17 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85b6659d6..5794e67c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.16", + "version": "0.33.17", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.16", + "version": "0.33.17", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index 52d2034aa..dfa101be5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.16", + "version": "0.33.17", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From c663144881ce47b365cdd0c3f32ced8c9c18e0b7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 13 Dec 2023 00:28:03 +0800 Subject: [PATCH 161/888] fix: new person relation --- pkg/vars/index.go | 5 ++- pkg/vars/staff.go.json | 76 +++++++++++++++++++++++++++++++++----- web/handler/subject/get.go | 2 +- 3 files changed, 70 insertions(+), 13 deletions(-) diff --git a/pkg/vars/index.go b/pkg/vars/index.go index 6fb142cca..27554be1b 100644 --- a/pkg/vars/index.go +++ b/pkg/vars/index.go @@ -20,6 +20,7 @@ package vars import ( _ "embed" "encoding/json" + "fmt" "log" "github.com/bangumi/server/internal/model" @@ -99,7 +100,7 @@ type Relation struct { Description string `json:"description"` } -func (r Relation) String() string { +func (r Relation) String(id uint16) string { switch { case r.CN != "": return r.CN @@ -108,6 +109,6 @@ func (r Relation) String() string { case r.EN != "": return r.EN default: - return "unknown" + return fmt.Sprintf("unknown(%d)", id) } } diff --git a/pkg/vars/staff.go.json b/pkg/vars/staff.go.json index 37a24cef0..198929657 100644 --- a/pkg/vars/staff.go.json +++ b/pkg/vars/staff.go.json @@ -80,22 +80,12 @@ "JP": "コンテ ストーリーボード 画コンテ 絵コンテ", "RDF": "" }, - "89": { - "EN": "Chief Episode Direction", - "CN": "主演出'", - "JP": "チーフ演出" - }, "5": { "CN": "演出", "EN": "Episode Director", "JP": "", "RDF": "" }, - "91": { - "en": "Assistant Episode Direction", - "cn": "演出助理", - "jp": "演出助手 演出補佐 演出協力" - }, "6": { "CN": "音乐", "EN": "Music", @@ -515,6 +505,72 @@ "EN": "Action Animation Direction", "JP": "アクション作画監督", "RDF": "" + }, + "80": { + "cn": "监制", + "jp": "", + "en": "Supervising Producer" + }, + "81": { + "en": "Assistance", + "cn": "协力", + "jp": "協力" + }, + "82": { + "en": "Photography", + "cn": "摄影", + "jp": "撮影" + }, + "83": { + "en": "Assistant Production Manager Assistance", + "cn": "制作进行协力", + "jp": "制作進行協力" + }, + "84": { + "en": "Design Manager", + "cn": "设定制作", + "jp": "設定制作 制作設定", + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" + }, + "85": { + "en": "Music Producer", + "cn": "音乐制作人", + "jp": "音楽プロデューサー" + }, + "86": { + "en": "3DCG Director", + "cn": "3DCG 导演", + "jp": "3DCG 監督" + }, + "87": { + "en": "Animation Producer", + "cn": "动画制片人", + "jp": "アニメプロデューサー アニメーションプロデューサー" + }, + "88": { + "en": "Special Effects Animation Direction", + "cn": "特效作画监督", + "jp": "エフェクト作画監督" + }, + "89": { + "en": "Chief Episode Direction", + "cn": "主演出", + "jp": "チーフ演出" + }, + "90": { + "en": "Assistant Animation Direction", + "cn": "作画监督助理", + "jp": "作画監督補佐" + }, + "91": { + "en": "Assistant Episode Direction", + "cn": "演出助理", + "jp": "演出助手 演出補佐 演出協力" + }, + "92": { + "en": "Main Animator", + "cn": "主动画师", + "jp": "メインアニメーター" } }, "3": { diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 5b8e3ca4e..6e57bfbc4 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -170,5 +170,5 @@ func readableRelation(destSubjectType model.SubjectType, relation uint16) string return model.SubjectTypeString(destSubjectType) } - return r.String() + return r.String(relation) } From 972a007593364e6aa0ae5d7e9860ac9e43461926 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 13 Dec 2023 00:28:28 +0800 Subject: [PATCH 162/888] bump: 0.33.18 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5794e67c7..bfae6d3e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.17", + "version": "0.33.18", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.17", + "version": "0.33.18", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index dfa101be5..1d57c6bf0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.17", + "version": "0.33.18", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 34f093491c8ebf9f58e8237ef53ac5542b535920 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 02:16:27 +0800 Subject: [PATCH 163/888] ci: update actions/setup-go action to v5 (#460) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/test.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2a62fcbb7..1d92a938f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" cache: false diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 75e47f789..ad4656034 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -19,7 +19,7 @@ jobs: uses: actions/setup-node@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index e0d57a7a0..a0ffbc506 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" cache: false diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 38fd3565f..d0e160a68 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" cache: false diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0c52c7de4..8fddc956b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -34,7 +34,7 @@ jobs: submodules: recursive - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" cache: false From 49559f337484aa2bb21fd77abb485d6c4963831a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 16 Dec 2023 23:55:16 +0800 Subject: [PATCH 164/888] fix: new real subject platform --- pkg/vars/platform.go.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index 574b0fea7..35fd949c1 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -164,6 +164,38 @@ "type": "cn", "type_cn": "华语剧", "wiki_tpl": "TV" + }, + "6001": { + "id": 6001, + "type": "tv", + "type_cn": "电视剧", + "alias": "tv", + "enable_header": true, + "wiki_tpl": "TV" + }, + "6002": { + "id": 6002, + "type": "movie", + "type_cn": "电影", + "alias": "movie", + "enable_header": true, + "wiki_tpl": "realMovie" + }, + "6003": { + "id": 6003, + "type": "live", + "type_cn": "演出", + "alias": "live", + "enable_header": true, + "wiki_tpl": "TV" + }, + "6004": { + "id": 6004, + "type": "show", + "type_cn": "综艺", + "alias": "show", + "enable_header": true, + "wiki_tpl": "TV" } } } From 5a76be5b061a65e42c32af1702f4b0a27d2101e0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 17 Dec 2023 00:01:29 +0800 Subject: [PATCH 165/888] bump: 0.33.19 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfae6d3e9..c52adb714 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.18", + "version": "0.33.19", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.18", + "version": "0.33.19", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.1.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index 1d57c6bf0..95719e8ec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.18", + "version": "0.33.19", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 1eb8a58f7c9c108147c7a9d963fe501b8c1b0170 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 02:06:19 +0800 Subject: [PATCH 166/888] build(deps): update module github.com/samber/lo to v1.39.0 (#461) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ff7113951..ac2d3a30d 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.17.0 github.com/redis/go-redis/v9 v9.3.0 - github.com/samber/lo v1.38.1 + github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.46 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index eed095d7f..154fcce52 100644 --- a/go.sum +++ b/go.sum @@ -362,8 +362,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM= -github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= +github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= +github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/kafka-go v0.4.46 h1:Sx8/kvtY+/G8nM0roTNnFezSJj3bT2sW0Xy/YY3CgBI= From f4b963879c6502b92813780762c06cb676f0eb53 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 18 Dec 2023 18:49:16 +0800 Subject: [PATCH 167/888] fix: support timeline v2 --- ctrl/update_subject_collection.go | 10 +- generated/proto/go/api/v1/timeline.pb.go | 202 ++++++++++-------- .../collections/domain/collection/model.go | 1 + internal/collections/infra/mysql_repo.go | 1 + internal/mocks/TimeLineService.go | 21 +- internal/pkg/test/web.go | 2 +- internal/timeline/domain.go | 1 + internal/timeline/grpc.go | 39 +--- proto | 2 +- .../user/patch_subject_collection_test.go | 3 +- .../user/post_subject_collection_test.go | 6 +- 11 files changed, 158 insertions(+), 130 deletions(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index a75481ec9..911d7e002 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -116,7 +116,15 @@ func (ctl Ctrl) mayCreateTimeline( if err != nil { return err } - err = ctl.timeline.ChangeSubjectCollection(ctx, u.ID, sj, req.Type.Default(0), req.Comment.Value, req.Rate.Value) + + collect, err := ctl.collection.GetSubjectCollection(ctx, u.ID, sj.ID) + if err != nil { + ctl.log.Error("failed to create associated timeline, can't get collection ID", zap.Error(err)) + return err + } + + err = ctl.timeline.ChangeSubjectCollection(ctx, + u.ID, sj, req.Type.Value, collect.ID, req.Comment.Value, req.Rate.Value) if err != nil { ctl.log.Error("failed to create associated timeline", zap.Error(err)) return errgo.Wrap(err, "timelineRepo.Create") diff --git a/generated/proto/go/api/v1/timeline.pb.go b/generated/proto/go/api/v1/timeline.pb.go index b46b91bb6..057b7c216 100644 --- a/generated/proto/go/api/v1/timeline.pb.go +++ b/generated/proto/go/api/v1/timeline.pb.go @@ -262,11 +262,16 @@ type Subject struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` - Image string `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"` + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Image string `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. Series bool `protobuf:"varint,6,opt,name=series,proto3" json:"series,omitempty"` VolsTotal uint32 `protobuf:"varint,7,opt,name=vols_total,json=volsTotal,proto3" json:"vols_total,omitempty"` EpsTotal uint32 `protobuf:"varint,8,opt,name=eps_total,json=epsTotal,proto3" json:"eps_total,omitempty"` @@ -311,6 +316,7 @@ func (x *Subject) GetId() uint32 { return 0 } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetType() uint32 { if x != nil { return x.Type @@ -318,6 +324,7 @@ func (x *Subject) GetType() uint32 { return 0 } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetName() string { if x != nil { return x.Name @@ -325,6 +332,7 @@ func (x *Subject) GetName() string { return "" } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetNameCn() string { if x != nil { return x.NameCn @@ -332,6 +340,7 @@ func (x *Subject) GetNameCn() string { return "" } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetImage() string { if x != nil { return x.Image @@ -339,6 +348,7 @@ func (x *Subject) GetImage() string { return "" } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetSeries() bool { if x != nil { return x.Series @@ -365,11 +375,15 @@ type Episode struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` - Sort float64 `protobuf:"fixed64,5,opt,name=sort,proto3" json:"sort,omitempty"` + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` + // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Sort float64 `protobuf:"fixed64,5,opt,name=sort,proto3" json:"sort,omitempty"` } func (x *Episode) Reset() { @@ -411,6 +425,7 @@ func (x *Episode) GetId() uint32 { return 0 } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Episode) GetType() uint32 { if x != nil { return x.Type @@ -418,6 +433,7 @@ func (x *Episode) GetType() uint32 { return 0 } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Episode) GetName() string { if x != nil { return x.Name @@ -425,6 +441,7 @@ func (x *Episode) GetName() string { return "" } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Episode) GetNameCn() string { if x != nil { return x.NameCn @@ -432,6 +449,7 @@ func (x *Episode) GetNameCn() string { return "" } +// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Episode) GetSort() float64 { if x != nil { return x.Sort @@ -445,11 +463,12 @@ type SubjectCollectRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Subject *Subject `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - Collection uint32 `protobuf:"varint,3,opt,name=collection,proto3" json:"collection,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Rate uint32 `protobuf:"varint,5,opt,name=rate,proto3" json:"rate,omitempty"` + UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Subject *Subject `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` + Collection uint32 `protobuf:"varint,3,opt,name=collection,proto3" json:"collection,omitempty"` + Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` + Rate uint32 `protobuf:"varint,5,opt,name=rate,proto3" json:"rate,omitempty"` + CollectionId uint64 `protobuf:"varint,6,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` } func (x *SubjectCollectRequest) Reset() { @@ -519,6 +538,13 @@ func (x *SubjectCollectRequest) GetRate() uint32 { return 0 } +func (x *SubjectCollectRequest) GetCollectionId() uint64 { + if x != nil { + return x.CollectionId + } + return 0 +} + // 标记剧集为看过 type EpisodeCollectRequest struct { state protoimpl.MessageState @@ -671,79 +697,83 @@ var file_api_v1_timeline_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x28, 0x0a, 0x16, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xc4, 0x01, + 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd8, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6f, - 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x70, 0x73, 0x5f, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x70, 0x73, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x6e, 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, - 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, - 0x73, 0x6f, 0x72, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, - 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, - 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, - 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x70, 0x69, 0x73, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, + 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x70, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x65, 0x70, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x7e, 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, + 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, + 0x12, 0x16, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, + 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, + 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x72, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, + 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, + 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, + 0x74, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, + 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x65, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, + 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x76, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, + 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x36, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x67, 0x75, 0x6d, 0x69, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x67, 0x75, 0x6d, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/collections/domain/collection/model.go b/internal/collections/domain/collection/model.go index 5792c5aac..f2f229ba4 100644 --- a/internal/collections/domain/collection/model.go +++ b/internal/collections/domain/collection/model.go @@ -32,6 +32,7 @@ const ( ) type UserSubjectCollection struct { + ID uint64 UpdatedAt time.Time Comment string Tags []string diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index bf8a60e91..a42e46dec 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -300,6 +300,7 @@ func (r mysqlRepo) GetSubjectCollection( } return collection.UserSubjectCollection{ + ID: uint64(c.ID), UpdatedAt: time.Unix(int64(c.UpdatedTime), 0), Comment: string(c.Comment), Tags: gstr.Split(c.Tag, " "), diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index ab59f19f2..c2aa5d6ee 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -73,13 +73,13 @@ func (_c *TimeLineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(contex return _c } -// ChangeSubjectCollection provides a mock function with given fields: ctx, u, sbj, collect, comment, rate -func (_m *TimeLineService) ChangeSubjectCollection(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, comment string, rate uint8) error { - ret := _m.Called(ctx, u, sbj, collect, comment, rate) +// ChangeSubjectCollection provides a mock function with given fields: ctx, u, sbj, collect, collectID, comment, rate +func (_m *TimeLineService) ChangeSubjectCollection(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8) error { + ret := _m.Called(ctx, u, sbj, collect, collectID, comment, rate) var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, collection.SubjectCollection, string, uint8) error); ok { - r0 = rf(ctx, u, sbj, collect, comment, rate) + if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, collection.SubjectCollection, uint64, string, uint8) error); ok { + r0 = rf(ctx, u, sbj, collect, collectID, comment, rate) } else { r0 = ret.Error(0) } @@ -97,15 +97,16 @@ type TimeLineService_ChangeSubjectCollection_Call struct { // - u uint32 // - sbj model.Subject // - collect collection.SubjectCollection +// - collectID uint64 // - comment string // - rate uint8 -func (_e *TimeLineService_Expecter) ChangeSubjectCollection(ctx interface{}, u interface{}, sbj interface{}, collect interface{}, comment interface{}, rate interface{}) *TimeLineService_ChangeSubjectCollection_Call { - return &TimeLineService_ChangeSubjectCollection_Call{Call: _e.mock.On("ChangeSubjectCollection", ctx, u, sbj, collect, comment, rate)} +func (_e *TimeLineService_Expecter) ChangeSubjectCollection(ctx interface{}, u interface{}, sbj interface{}, collect interface{}, collectID interface{}, comment interface{}, rate interface{}) *TimeLineService_ChangeSubjectCollection_Call { + return &TimeLineService_ChangeSubjectCollection_Call{Call: _e.mock.On("ChangeSubjectCollection", ctx, u, sbj, collect, collectID, comment, rate)} } -func (_c *TimeLineService_ChangeSubjectCollection_Call) Run(run func(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, comment string, rate uint8)) *TimeLineService_ChangeSubjectCollection_Call { +func (_c *TimeLineService_ChangeSubjectCollection_Call) Run(run func(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8)) *TimeLineService_ChangeSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(collection.SubjectCollection), args[4].(string), args[5].(uint8)) + run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(collection.SubjectCollection), args[4].(uint64), args[5].(string), args[6].(uint8)) }) return _c } @@ -115,7 +116,7 @@ func (_c *TimeLineService_ChangeSubjectCollection_Call) Return(_a0 error) *TimeL return _c } -func (_c *TimeLineService_ChangeSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, collection.SubjectCollection, string, uint8) error) *TimeLineService_ChangeSubjectCollection_Call { +func (_c *TimeLineService_ChangeSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, collection.SubjectCollection, uint64, string, uint8) error) *TimeLineService_ChangeSubjectCollection_Call { _c.Call.Return(run) return _c } diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 7c3a60b41..1984e3b15 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -272,7 +272,7 @@ func MockTimeLineSrv(m timeline.Service) fx.Option { mocker := &mocks.TimeLineService{} mocker.EXPECT().ChangeSubjectCollection(mock.Anything, mock.Anything, - mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) mocker.EXPECT().ChangeEpisodeStatus(mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) mocker.EXPECT().ChangeSubjectProgress(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) diff --git a/internal/timeline/domain.go b/internal/timeline/domain.go index c480b38e5..00f3a460e 100644 --- a/internal/timeline/domain.go +++ b/internal/timeline/domain.go @@ -29,6 +29,7 @@ type Service interface { u model.UserID, sbj model.Subject, collect collection.SubjectCollection, + collectID uint64, comment string, rate uint8, ) error diff --git a/internal/timeline/grpc.go b/internal/timeline/grpc.go index 1db3a17ba..0586137e7 100644 --- a/internal/timeline/grpc.go +++ b/internal/timeline/grpc.go @@ -44,16 +44,16 @@ func NewMysqlRepo(q *query.Query, log *zap.Logger, cfg config.AppConfig) (Servic return nil, err } - return mysqlRepo{q: q, log: log.Named("timeline.mysqlRepo"), rpc: rpc}, nil + return grpcClient{q: q, log: log.Named("timeline.grpcClient"), rpc: rpc}, nil } -type mysqlRepo struct { +type grpcClient struct { q *query.Query log *zap.Logger rpc pb.TimeLineServiceClient } -func (m mysqlRepo) ChangeSubjectProgress(ctx context.Context, u model.UserID, sbj model.Subject, +func (m grpcClient) ChangeSubjectProgress(ctx context.Context, u model.UserID, sbj model.Subject, epsUpdate uint32, volsUpdate uint32) error { ctx, canal := context.WithTimeout(ctx, defaultTimeout) defer canal() @@ -62,11 +62,6 @@ func (m mysqlRepo) ChangeSubjectProgress(ctx context.Context, u model.UserID, sb UserId: uint64(u), Subject: &pb.Subject{ Id: sbj.ID, - Type: uint32(sbj.TypeID), - Name: sbj.Name, - NameCn: sbj.NameCN, - Image: sbj.Image, - Series: sbj.Series, VolsTotal: sbj.Volumes, EpsTotal: sbj.Eps, }, @@ -77,11 +72,12 @@ func (m mysqlRepo) ChangeSubjectProgress(ctx context.Context, u model.UserID, sb return errgo.Wrap(err, "grpc") } -func (m mysqlRepo) ChangeSubjectCollection( +func (m grpcClient) ChangeSubjectCollection( ctx context.Context, u model.UserID, sbj model.Subject, collect collection.SubjectCollection, + collectID uint64, comment string, rate uint8, ) error { @@ -92,17 +88,13 @@ func (m mysqlRepo) ChangeSubjectCollection( UserId: uint64(u), Subject: &pb.Subject{ Id: sbj.ID, - Type: uint32(sbj.TypeID), - Name: sbj.Name, - NameCn: sbj.NameCN, - Image: sbj.Image, - Series: false, VolsTotal: sbj.Volumes, EpsTotal: sbj.Eps, }, - Collection: uint32(collect), - Comment: comment, - Rate: uint32(rate), + Collection: uint32(collect), + CollectionId: collectID, + Comment: comment, + Rate: uint32(rate), }) if err != nil { @@ -112,7 +104,7 @@ func (m mysqlRepo) ChangeSubjectCollection( return nil } -func (m mysqlRepo) ChangeEpisodeStatus( +func (m grpcClient) ChangeEpisodeStatus( ctx context.Context, u auth.Auth, sbj model.Subject, @@ -124,19 +116,10 @@ func (m mysqlRepo) ChangeEpisodeStatus( _, err := m.rpc.EpisodeCollect(ctx, &pb.EpisodeCollectRequest{ UserId: uint64(u.ID), Last: &pb.Episode{ - Id: episode.ID, - Type: uint32(episode.Type), - Name: episode.Name, - NameCn: episode.NameCN, - Sort: float64(episode.Sort), + Id: episode.ID, }, Subject: &pb.Subject{ Id: sbj.ID, - Type: uint32(sbj.TypeID), - Name: sbj.Name, - NameCn: sbj.Name, - Image: sbj.Image, - Series: sbj.Series, VolsTotal: sbj.Volumes, EpsTotal: sbj.Eps, }, diff --git a/proto b/proto index 9433a45b3..1818d3715 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 9433a45b3d3a273870d9c3da2b8406622360f31e +Subproject commit 1818d37157ba0fd274d95792d08f8734897f684d diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 9d4d5fadf..c455db251 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -51,7 +51,8 @@ func TestUser_PatchSubjectCollection(t *testing.T) { tl := mocks.NewTimeLineService(t) tl.EXPECT(). - ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + ChangeSubjectCollection(mock.Anything, + mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return(nil) c := mocks.NewCollectionRepo(t) diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index ca99e72b1..1f177af70 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -50,7 +50,8 @@ func TestUser_PostSubjectCollection(t *testing.T) { tl := mocks.NewTimeLineService(t) tl.EXPECT(). - ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, + mock.Anything, mock.Anything, mock.Anything). Return(nil) c := mocks.NewCollectionRepo(t) @@ -99,7 +100,8 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { tl := mocks.NewTimeLineService(t) tl.EXPECT(). - ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). + ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, + mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return(nil) c := mocks.NewCollectionRepo(t) From 1a8f85d29dba7cbbfc8899f421bc95884ea3929d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 18 Dec 2023 19:11:19 +0800 Subject: [PATCH 168/888] fix: skip timeline creation on private collection --- ctrl/update_subject_collection.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index 911d7e002..b7971dd14 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -102,6 +102,7 @@ func (ctl Ctrl) UpdateSubjectCollection( if err != nil { return err } + return ctl.mayCreateTimeline(ctx, u, req, subject.ID) } @@ -111,18 +112,22 @@ func (ctl Ctrl) mayCreateTimeline( req UpdateCollectionRequest, subjectID model.SubjectID, ) error { + collect, err := ctl.collection.GetSubjectCollection(ctx, u.ID, subjectID) + if err != nil { + ctl.log.Error("failed to create associated timeline, can't get collection ID", zap.Error(err)) + return err + } + + if collect.Private { + return nil + } + if req.Type.Set { sj, err := ctl.subjectCached.Get(ctx, subjectID, subject.Filter{}) if err != nil { return err } - collect, err := ctl.collection.GetSubjectCollection(ctx, u.ID, sj.ID) - if err != nil { - ctl.log.Error("failed to create associated timeline, can't get collection ID", zap.Error(err)) - return err - } - err = ctl.timeline.ChangeSubjectCollection(ctx, u.ID, sj, req.Type.Value, collect.ID, req.Comment.Value, req.Rate.Value) if err != nil { From 8ec201daf3c953d3d048c8b707e9614ccfe9141e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 18 Dec 2023 19:21:45 +0800 Subject: [PATCH 169/888] fix: timeline v2 creation rpc call --- generated/proto/go/api/v1/timeline.pb.go | 154 +++++++++++------------ internal/timeline/grpc.go | 1 + proto | 2 +- 3 files changed, 78 insertions(+), 79 deletions(-) diff --git a/generated/proto/go/api/v1/timeline.pb.go b/generated/proto/go/api/v1/timeline.pb.go index 057b7c216..864c35ffd 100644 --- a/generated/proto/go/api/v1/timeline.pb.go +++ b/generated/proto/go/api/v1/timeline.pb.go @@ -262,8 +262,7 @@ type Subject struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` // Deprecated: Marked as deprecated in api/v1/timeline.proto. Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` @@ -316,7 +315,6 @@ func (x *Subject) GetId() uint32 { return 0 } -// Deprecated: Marked as deprecated in api/v1/timeline.proto. func (x *Subject) GetType() uint32 { if x != nil { return x.Type @@ -697,83 +695,83 @@ var file_api_v1_timeline_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x28, 0x0a, 0x16, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd8, 0x01, + 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd4, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, - 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, - 0x70, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x65, 0x70, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x7e, 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, - 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, - 0x12, 0x16, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, - 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, + 0x43, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x06, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x73, + 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6f, + 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x70, 0x73, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x70, 0x73, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x7e, 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x16, 0x0a, 0x04, + 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, + 0x73, 0x6f, 0x72, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, + 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x0a, + 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, - 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, - 0x74, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, - 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, - 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x65, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, - 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x76, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, - 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x36, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x67, 0x75, 0x6d, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, + 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x6c, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, + 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, + 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x1f, 0x5a, 0x1d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, + 0x6e, 0x67, 0x75, 0x6d, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/internal/timeline/grpc.go b/internal/timeline/grpc.go index 0586137e7..b096c7ba5 100644 --- a/internal/timeline/grpc.go +++ b/internal/timeline/grpc.go @@ -88,6 +88,7 @@ func (m grpcClient) ChangeSubjectCollection( UserId: uint64(u), Subject: &pb.Subject{ Id: sbj.ID, + Type: uint32(sbj.TypeID), VolsTotal: sbj.Volumes, EpsTotal: sbj.Eps, }, diff --git a/proto b/proto index 1818d3715..134977239 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 1818d37157ba0fd274d95792d08f8734897f684d +Subproject commit 134977239d0a241d32ae029076c31b55b070650f From 9f6ba32fcbe00c0fc9cdb330aa12a9eca29cfd01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 08:09:08 +0800 Subject: [PATCH 170/888] build(deps): update module golang.org/x/crypto to v0.17.0 [security] (#463) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ac2d3a30d..388a07eb3 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.10 go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 - golang.org/x/crypto v0.16.0 + golang.org/x/crypto v0.17.0 google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 diff --git a/go.sum b/go.sum index 154fcce52..876f24e02 100644 --- a/go.sum +++ b/go.sum @@ -472,8 +472,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= From cbbe074dbb1d396de002a32164936cf5199d913c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 19 Dec 2023 17:29:32 +0800 Subject: [PATCH 171/888] tests: fix --- web/handler/user/patch_subject_collection_test.go | 3 +++ web/handler/user/post_subject_collection_test.go | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index c455db251..25c59234d 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -65,6 +65,9 @@ func TestUser_PatchSubjectCollection(t *testing.T) { s = lo.Must(update(context.Background(), s)) }).Return(nil) + c.EXPECT().GetSubjectCollection(mock.Anything, mock.Anything, mock.Anything). + Return(collection.UserSubjectCollection{}, nil) + d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) require.NoError(t, err) diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index 1f177af70..c4a9cb99f 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -63,6 +63,8 @@ func TestUser_PostSubjectCollection(t *testing.T) { s = lo.Must(update(context.Background(), s)) }). Return(nil) + c.EXPECT().GetSubjectCollection(mock.Anything, mock.Anything, mock.Anything). + Return(collection.UserSubjectCollection{}, nil) d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) require.NoError(t, err) @@ -113,6 +115,8 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { s = lo.Must(update(context.Background(), s)) }). Return(nil) + c.EXPECT().GetSubjectCollection(mock.Anything, mock.Anything, mock.Anything). + Return(collection.UserSubjectCollection{}, nil) d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) require.NoError(t, err) From 10c1592cba57b85835c6711093aaf9c940da7bf3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 01:52:04 +0800 Subject: [PATCH 172/888] ci: update autofix-ci/action digest to ea32e3a (#465) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index ad4656034..5d22de19f 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -29,4 +29,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@bee19d72e71787c12ca0f29de72f2833e437e4c9 + - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84 From 1b25a57eada11b7e03d800d9bfe282a725352f00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 01:52:18 +0800 Subject: [PATCH 173/888] chore(deps): update gcr.io/distroless/static docker digest to 9be3fcc (#464) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 6fcfe4ca9..7be8e1d5e 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:6706c73aae2afaa8201d63cc3dda48753c09bcd6c300762251065c0f7e602b25 +FROM gcr.io/distroless/static@sha256:9be3fcc6abeaf985b5ecce59451acbcbb15e7be39472320c538d0d55a0834edc ENTRYPOINT ["/app/chii.exe"] From 2d2850f0ebc1fffc6287f4d4f08bd04013fb763b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jan 2024 05:35:29 +0800 Subject: [PATCH 174/888] build(deps): update dependency prettier to ^3.1.1 (#466) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c52adb714..4df508284 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.1.0" + "prettier": "^3.1.1" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -314,9 +314,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -704,9 +704,9 @@ } }, "prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 95719e8ec..12e6a716b 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.1.0" + "prettier": "^3.1.1" }, "nodemonConfig": { "restartable": "rs", From f84d63b39662fc754c8ed192dfda9d6086c56c4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jan 2024 05:36:44 +0800 Subject: [PATCH 175/888] build(deps): update module github.com/aws/aws-sdk-go to v1.49.14 (#472) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 388a07eb3..f19eb77bb 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.1 - github.com/aws/aws-sdk-go v1.48.10 + github.com/aws/aws-sdk-go v1.49.14 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 876f24e02..b2eebe300 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.48.10 h1:0LIFG3wp2Dt6PsxKWCg1Y1xRrn2vZnW5/gWdgaBalKg= -github.com/aws/aws-sdk-go v1.48.10/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.49.14 h1:AZ7wfESxXuqQElXRnDCaohJSUSaf2s7c2uPB7g5js/w= +github.com/aws/aws-sdk-go v1.49.14/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 0707d3843c170e90a2cee289db783be5f717e234 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:31:01 +0800 Subject: [PATCH 176/888] build(deps): update module github.com/go-resty/resty/v2 to v2.11.0 [security] (#479) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f19eb77bb..59b179f43 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.16.0 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.10.0 + github.com/go-resty/resty/v2 v2.11.0 github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index b2eebe300..0230170aa 100644 --- a/go.sum +++ b/go.sum @@ -99,8 +99,8 @@ github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqR github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.10.0 h1:Qla4W/+TMmv0fOeeRqzEpXPLfTUnR5HZ1+lGs+CkiCo= -github.com/go-resty/resty/v2 v2.10.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= +github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= From 95324996212201da8f8f41da7544c1281085a8ff Mon Sep 17 00:00:00 2001 From: RanKKI Date: Sun, 14 Jan 2024 17:52:28 +1100 Subject: [PATCH 177/888] fix(config): duplicate key "key" (#481) --- config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.go b/config/config.go index 7cdee34bf..32b7b510f 100644 --- a/config/config.go +++ b/config/config.go @@ -57,7 +57,7 @@ type AppConfig struct { MeiliSearch struct { URL string `yaml:"url" env:"MEILISEARCH_URL"` Key string `yaml:"key" env:"MEILISEARCH_KEY"` - Timeout time.Duration `yaml:"key" env:"MEILISEARCH_REQUEST_TIMEOUT" env-default:"2s"` + Timeout time.Duration `yaml:"timeout" env:"MEILISEARCH_REQUEST_TIMEOUT" env-default:"2s"` } `yaml:"meilisearch"` SearchBatchSize int `env:"SEARCH_BATCH_SIZE" yaml:"batch_size" env-default:"100"` From 9da8bf625fc08501fa3edb394c5d988ec94779ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:41:07 +0800 Subject: [PATCH 178/888] build(deps): update module google.golang.org/grpc to v1.61.0 (#475) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 23 ++++++++++++----------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 59b179f43..1a9afb824 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.17.0 - google.golang.org/grpc v1.59.0 + google.golang.org/grpc v1.61.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 @@ -88,14 +88,14 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.17.0 // indirect + golang.org/x/net v0.18.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/tools v0.11.0 // indirect - google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 0230170aa..104f0db44 100644 --- a/go.sum +++ b/go.sum @@ -146,7 +146,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -515,8 +515,9 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -528,7 +529,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -621,12 +622,12 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= -google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= -google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -636,8 +637,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= +google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 5e4238dc75ed2eafd363dd1c6a86a07ef87540d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 19:31:31 +0800 Subject: [PATCH 179/888] build(deps): update module github.com/labstack/echo/v4 to v4.11.4 (#467) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 27 ++++++++++----------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 1a9afb824..cbd66f5d7 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-sql-driver/mysql v1.7.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 - github.com/labstack/echo/v4 v4.11.3 + github.com/labstack/echo/v4 v4.11.4 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.0 github.com/mitchellh/mapstructure v1.5.0 @@ -67,10 +67,10 @@ require ( github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/labstack/gommon v0.4.0 // indirect + github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -88,10 +88,10 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.18.0 // indirect + golang.org/x/net v0.19.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.3.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.11.0 // indirect google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect diff --git a/go.sum b/go.sum index 104f0db44..7b0cd859c 100644 --- a/go.sum +++ b/go.sum @@ -231,10 +231,10 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM= -github.com/labstack/echo/v4 v4.11.3/go.mod h1:UcGuQ8V6ZNRmSweBIJkPvGfwCMIlFmiqrPqiEBfPYws= -github.com/labstack/gommon v0.4.0 h1:y7cvthEAEbU0yHOf4axH8ZG2NH8knB9iNSoTO8dyIk8= -github.com/labstack/gommon v0.4.0/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= +github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= @@ -243,15 +243,13 @@ github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0Q github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= @@ -394,7 +392,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= @@ -418,7 +415,6 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d h1:xS9QTPgKl9ewGsAOPc+xW7DeStJDqYPfisDmeSCcbco= github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= -github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= @@ -516,8 +512,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -554,9 +550,6 @@ golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -587,8 +580,9 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -673,7 +667,6 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= From 6476d88782014d51f5dd68270b6843f9ee79bfa8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 19:41:14 +0800 Subject: [PATCH 180/888] build(deps): update module github.com/prometheus/client_golang to v1.18.0 (#474) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index cbd66f5d7..82559fbff 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.17.0 + github.com/prometheus/client_golang v1.18.0 github.com/redis/go-redis/v9 v9.3.0 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.46 @@ -71,12 +71,12 @@ require ( github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/stretchr/objx v0.5.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect diff --git a/go.sum b/go.sum index 7b0cd859c..b5d1d64ab 100644 --- a/go.sum +++ b/go.sum @@ -256,8 +256,8 @@ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/meilisearch/meilisearch-go v0.26.0 h1:6IdFC9S53gEp7FMkt99swIFyEZE+4TwJAgen3eQdw40= github.com/meilisearch/meilisearch-go v0.26.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= @@ -325,31 +325,31 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0= From f0501c70e46a3518803848a5d7b4f460d4d5c2c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 21:16:53 +0800 Subject: [PATCH 181/888] build(deps): update module github.com/redis/go-redis/v9 to v9.4.0 (#468) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 82559fbff..476a9747d 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.26.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.18.0 - github.com/redis/go-redis/v9 v9.3.0 + github.com/redis/go-redis/v9 v9.4.0 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.46 github.com/spf13/cobra v1.8.0 diff --git a/go.sum b/go.sum index b5d1d64ab..8bee22d02 100644 --- a/go.sum +++ b/go.sum @@ -352,8 +352,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0= -github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwyKk= +github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 75ff0c796ee5ef4161b82c610918e1eb082224cb Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 27 Jan 2024 02:33:29 +0800 Subject: [PATCH 182/888] fix: staff person image url --- web/handler/character/get_related_persons.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/handler/character/get_related_persons.go b/web/handler/character/get_related_persons.go index 106d216c9..d974d485b 100644 --- a/web/handler/character/get_related_persons.go +++ b/web/handler/character/get_related_persons.go @@ -61,7 +61,7 @@ func (h Character) GetRelatedPersons(c echo.Context) error { ID: cast.Person.ID, Name: cast.Person.Name, Type: cast.Person.Type, - Images: res.PersonImage(cast.Subject.Image), + Images: res.PersonImage(cast.Person.Image), SubjectID: cast.Subject.ID, SubjectName: cast.Subject.Name, SubjectNameCn: cast.Subject.NameCN, From f00e5a0f39da4cdc645d978d39ea7635ffcec9a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:18:50 +0800 Subject: [PATCH 183/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.11 (#470) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 476a9747d..22b13fa1c 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.10 + go.etcd.io/etcd/client/v3 v3.5.11 go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.17.0 @@ -81,8 +81,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.10 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect + go.etcd.io/etcd/api/v3 v3.5.11 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.11 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.10.0 // indirect diff --git a/go.sum b/go.sum index 8bee22d02..10b507182 100644 --- a/go.sum +++ b/go.sum @@ -431,12 +431,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.10 h1:szRajuUUbLyppkhs9K6BRtjY37l66XQQmw7oZRANE4k= -go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI= -go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JByiT0= -go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U= -go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao= -go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc= +go.etcd.io/etcd/api/v3 v3.5.11 h1:B54KwXbWDHyD3XYAwprxNzTe7vlhR69LuBgZnMVvS7E= +go.etcd.io/etcd/api/v3 v3.5.11/go.mod h1:Ot+o0SWSyT6uHhA56al1oCED0JImsRiU9Dc26+C2a+4= +go.etcd.io/etcd/client/pkg/v3 v3.5.11 h1:bT2xVspdiCj2910T0V+/KHcVKjkUrCZVtk8J2JF2z1A= +go.etcd.io/etcd/client/pkg/v3 v3.5.11/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= +go.etcd.io/etcd/client/v3 v3.5.11 h1:ajWtgoNSZJ1gmS8k+icvPtqsqEav+iUorF7b0qozgUU= +go.etcd.io/etcd/client/v3 v3.5.11/go.mod h1:a6xQUEqFJ8vztO1agJh/KQKOMfFI8og52ZconzcDJwE= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= From 6243a417dfc866440da254eef1390266884bbeb3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:23:56 +0800 Subject: [PATCH 184/888] build(deps): update module gorm.io/gen to v0.3.25 (#471) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- dal/dao/chii_index_collects.gen.go | 2 +- dal/dao/chii_index_related.gen.go | 2 +- dal/dao/chii_person_cs_index.gen.go | 2 +- dal/dao/chii_persons.gen.go | 2 +- dal/dao/chii_subject_relations.gen.go | 2 +- dal/query/chii_index_collects.gen.go | 1 + dal/query/chii_index_related.gen.go | 1 + dal/query/chii_person_cs_index.gen.go | 1 + dal/query/chii_persons.gen.go | 1 + dal/query/chii_subject_relations.gen.go | 1 + go.mod | 12 ++++++------ go.sum | 23 ++++++++++++----------- 12 files changed, 28 insertions(+), 22 deletions(-) diff --git a/dal/dao/chii_index_collects.gen.go b/dal/dao/chii_index_collects.gen.go index 1b7e7113c..13b3a9df0 100644 --- a/dal/dao/chii_index_collects.gen.go +++ b/dal/dao/chii_index_collects.gen.go @@ -6,7 +6,7 @@ package dao const TableNameIndexCollect = "chii_index_collects" -// IndexCollect mapped from table +// IndexCollect 目录收藏 type IndexCollect struct { CltID uint32 `gorm:"column:idx_clt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` IndexID uint32 `gorm:"column:idx_clt_mid;type:mediumint(8) unsigned;not null;comment:目录ID"` // 目录ID diff --git a/dal/dao/chii_index_related.gen.go b/dal/dao/chii_index_related.gen.go index eda7ee19c..48e8a9d14 100644 --- a/dal/dao/chii_index_related.gen.go +++ b/dal/dao/chii_index_related.gen.go @@ -10,7 +10,7 @@ import ( const TableNameIndexSubject = "chii_index_related" -// IndexSubject mapped from table +// IndexSubject 目录关联表 type IndexSubject struct { ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null"` diff --git a/dal/dao/chii_person_cs_index.gen.go b/dal/dao/chii_person_cs_index.gen.go index 3ed64b25a..9a05ec04a 100644 --- a/dal/dao/chii_person_cs_index.gen.go +++ b/dal/dao/chii_person_cs_index.gen.go @@ -6,7 +6,7 @@ package dao const TableNamePersonSubjects = "chii_person_cs_index" -// PersonSubjects mapped from table +// PersonSubjects subjects' credits/creator & staff (c&s)index type PersonSubjects struct { PrsnType string `gorm:"column:prsn_type;type:enum('prsn','crt');primaryKey"` PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey"` diff --git a/dal/dao/chii_persons.gen.go b/dal/dao/chii_persons.gen.go index 7aee6067f..887a4f2dc 100644 --- a/dal/dao/chii_persons.gen.go +++ b/dal/dao/chii_persons.gen.go @@ -6,7 +6,7 @@ package dao const TableNamePerson = "chii_persons" -// Person mapped from table +// Person (现实)人物表 type Person struct { ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` Name string `gorm:"column:prsn_name;type:varchar(255);not null"` diff --git a/dal/dao/chii_subject_relations.gen.go b/dal/dao/chii_subject_relations.gen.go index b92a9fa01..8c21911ae 100644 --- a/dal/dao/chii_subject_relations.gen.go +++ b/dal/dao/chii_subject_relations.gen.go @@ -6,7 +6,7 @@ package dao const TableNameSubjectRelation = "chii_subject_relations" -// SubjectRelation mapped from table +// SubjectRelation 条目关联表 type SubjectRelation struct { SubjectID uint32 `gorm:"column:rlt_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联主 ID"` // 关联主 ID SubjectTypeID uint8 `gorm:"column:rlt_subject_type_id;type:tinyint(3) unsigned;not null"` diff --git a/dal/query/chii_index_collects.gen.go b/dal/query/chii_index_collects.gen.go index 21b49da63..bbf4802c9 100644 --- a/dal/query/chii_index_collects.gen.go +++ b/dal/query/chii_index_collects.gen.go @@ -37,6 +37,7 @@ func newIndexCollect(db *gorm.DB, opts ...gen.DOOption) indexCollect { return _indexCollect } +// indexCollect 目录收藏 type indexCollect struct { indexCollectDo indexCollectDo diff --git a/dal/query/chii_index_related.gen.go b/dal/query/chii_index_related.gen.go index 0995e766c..973feba02 100644 --- a/dal/query/chii_index_related.gen.go +++ b/dal/query/chii_index_related.gen.go @@ -52,6 +52,7 @@ func newIndexSubject(db *gorm.DB, opts ...gen.DOOption) indexSubject { return _indexSubject } +// indexSubject 目录关联表 type indexSubject struct { indexSubjectDo indexSubjectDo diff --git a/dal/query/chii_person_cs_index.gen.go b/dal/query/chii_person_cs_index.gen.go index 6ffc636cc..46b908c48 100644 --- a/dal/query/chii_person_cs_index.gen.go +++ b/dal/query/chii_person_cs_index.gen.go @@ -61,6 +61,7 @@ func newPersonSubjects(db *gorm.DB, opts ...gen.DOOption) personSubjects { return _personSubjects } +// personSubjects subjects' credits/creator & staff (c&s)index type personSubjects struct { personSubjectsDo personSubjectsDo diff --git a/dal/query/chii_persons.gen.go b/dal/query/chii_persons.gen.go index a8c556d18..6922a861d 100644 --- a/dal/query/chii_persons.gen.go +++ b/dal/query/chii_persons.gen.go @@ -61,6 +61,7 @@ func newPerson(db *gorm.DB, opts ...gen.DOOption) person { return _person } +// person (现实)人物表 type person struct { personDo personDo diff --git a/dal/query/chii_subject_relations.gen.go b/dal/query/chii_subject_relations.gen.go index 2f8190558..01f786f63 100644 --- a/dal/query/chii_subject_relations.gen.go +++ b/dal/query/chii_subject_relations.gen.go @@ -50,6 +50,7 @@ func newSubjectRelation(db *gorm.DB, opts ...gen.DOOption) subjectRelation { return _subjectRelation } +// subjectRelation 条目关联表 type subjectRelation struct { subjectRelationDo subjectRelationDo diff --git a/go.mod b/go.mod index 22b13fa1c..252f977a8 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.2 - gorm.io/gen v0.3.23 + gorm.io/gen v0.3.25 gorm.io/gorm v1.25.5 gorm.io/plugin/dbresolver v1.5.0 gorm.io/plugin/soft_delete v1.2.1 @@ -48,7 +48,7 @@ require ( require ( github.com/BurntSushi/toml v1.2.1 // indirect - github.com/andybalholm/brotli v1.0.4 // indirect + github.com/andybalholm/brotli v1.0.6 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect @@ -66,13 +66,13 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.16.7 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect - github.com/pierrec/lz4/v4 v4.1.17 // indirect + github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.5.0 // indirect github.com/prometheus/common v0.45.0 // indirect @@ -87,12 +87,12 @@ require ( go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/mod v0.12.0 // indirect + golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/sys v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.11.0 // indirect + golang.org/x/tools v0.15.0 // indirect google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect diff --git a/go.sum b/go.sum index 10b507182..13d7cf369 100644 --- a/go.sum +++ b/go.sum @@ -13,8 +13,9 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= +github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -221,8 +222,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -310,8 +311,8 @@ github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= -github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -484,8 +485,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -601,8 +602,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8= -golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -679,8 +680,8 @@ gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB4 gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= -gorm.io/gen v0.3.23 h1:TL+q3bXvOzeIXBRp9vqIaD4/iaEzdU1Kgy5QSHsxDEQ= -gorm.io/gen v0.3.23/go.mod h1:G9uxGfkfNFxPoOrV5P6KQxRMgZsQSCyp9vJP8xiKTGg= +gorm.io/gen v0.3.25 h1:uT/1YfvcnYUdike4XPYyi89FEnVHZF115GUXQm2Sfug= +gorm.io/gen v0.3.25/go.mod h1:p+t0iCKjaPz+pKRxcx63nXdRgnrah/QD2l92747ihyA= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= From 2ac969e7cd5bd7d644b3260cc947b797fc03a21e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:24:06 +0800 Subject: [PATCH 185/888] build(deps): update module google.golang.org/protobuf to v1.32.0 (#476) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 252f977a8..22c28c4e3 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( golang.org/x/crypto v0.17.0 google.golang.org/grpc v1.61.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.31.0 + google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.25 diff --git a/go.sum b/go.sum index 13d7cf369..30dc0bfdb 100644 --- a/go.sum +++ b/go.sum @@ -644,8 +644,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From e100525f98fe95213f5ab3eba17129405a9ef58d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:24:15 +0800 Subject: [PATCH 186/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.47 (#469) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 22c28c4e3..0f81d0a62 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/prometheus/client_golang v1.18.0 github.com/redis/go-redis/v9 v9.4.0 github.com/samber/lo v1.39.0 - github.com/segmentio/kafka-go v0.4.46 + github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 30dc0bfdb..ab30a0ad4 100644 --- a/go.sum +++ b/go.sum @@ -365,8 +365,8 @@ github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/kafka-go v0.4.46 h1:Sx8/kvtY+/G8nM0roTNnFezSJj3bT2sW0Xy/YY3CgBI= -github.com/segmentio/kafka-go v0.4.46/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= +github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= +github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= From bacc2767c75c1d531f5f643feb158ff16f6da943 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 Jan 2024 16:51:49 +0800 Subject: [PATCH 187/888] fix: subjects of indices --- internal/index/mysql_repository.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index 22eddcb45..5e9672788 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -126,7 +126,7 @@ func (r mysqlRepo) ListSubjects( ) ([]Subject, error) { q := r.q.IndexSubject.WithContext(ctx).Joins(r.q.IndexSubject.Subject). Preload(r.q.IndexSubject.Subject.Fields). - Where(r.q.IndexSubject.IndexID.Eq(id)). + Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.Cat.Eq(0)). Order(r.q.IndexSubject.Order). Limit(limit).Offset(offset) if subjectType != 0 { From 513d41edfe2458105cb083422d486836ff063042 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 Jan 2024 17:04:11 +0800 Subject: [PATCH 188/888] fix: subjects of indices --- internal/index/mysql_repository.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index 5e9672788..d1ee2d172 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -43,7 +43,7 @@ type mysqlRepo struct { func (r mysqlRepo) isNsfw(ctx context.Context, id model.IndexID) (bool, error) { i, err := r.q.IndexSubject.WithContext(ctx). Join(r.q.Subject, r.q.IndexSubject.SubjectID.EqCol(r.q.Subject.ID)). - Where(r.q.IndexSubject.IndexID.Eq(id), r.q.Subject.Nsfw.Is(true)).Count() + Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.Cat.Eq(0), r.q.Subject.Nsfw.Is(true)).Count() if err != nil { r.log.Error("unexpected error when checking index nsfw", zap.Uint32("index_id", id)) return false, errgo.Wrap(err, "dal") @@ -105,7 +105,7 @@ func (r mysqlRepo) Delete(ctx context.Context, id model.IndexID) error { func (r mysqlRepo) CountSubjects( ctx context.Context, id model.IndexID, subjectType model.SubjectType, ) (int64, error) { - q := r.q.IndexSubject.WithContext(ctx).Where(r.q.IndexSubject.IndexID.Eq(id)) + q := r.q.IndexSubject.WithContext(ctx).Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.Cat.Eq(0)) if subjectType != 0 { q = q.Where(r.q.IndexSubject.SubjectType.Eq(subjectType)) } From 2b8fbe30f3b6742195adde160dfe432e95d24ee9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:32:55 +0800 Subject: [PATCH 189/888] ci: update codecov/codecov-action action to v4 (#493) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8fddc956b..74c8e21f5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -70,6 +70,6 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v4 with: files: coverage.out From 05cb7eab65f1bbed5f6c7d54a837a00b8ca91e0a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:48:40 +0800 Subject: [PATCH 190/888] ci: update actions/cache action to v4 (#491) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/test.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1d92a938f..bf67a7e50 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,7 +38,7 @@ jobs: cache: false - name: Go Build Cache (build) - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cache/go-build diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index a0ffbc506..128c4ab1c 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -35,7 +35,7 @@ jobs: cache: false - name: Go Build Cache (lint) - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cache/go-build diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index d0e160a68..ec4bf6c84 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -28,7 +28,7 @@ jobs: cache: false - name: Go Build Cache (build) - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cache/go-build diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 74c8e21f5..817acbc21 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -45,7 +45,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Go Build Cache (test) - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | ~/.cache/go-build From 42c0f89069f650109f6e5081da1382d874d03f67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:58:30 +0800 Subject: [PATCH 191/888] ci: update requarks/changelog-action action to v1.10.0 (#490) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0e305d6db..8ed77963a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,7 +15,7 @@ jobs: - name: Generate Changelog id: changelog - uses: requarks/changelog-action@v1.9.0 + uses: requarks/changelog-action@v1.10.0 with: token: ${{ github.token }} tag: ${{ github.ref_name }} From c626469ebcc1125b8501a61a50b66bb6f69ea615 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:58:45 +0800 Subject: [PATCH 192/888] ci: update peter-evans/create-pull-request action to v6 (#492) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 243bc15bd..6c4ac250e 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -26,7 +26,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v6 with: path: api token: ${{ secrets.PAT }} From 12e20740c4293cb9658e542307388b404414f633 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 05:59:54 +0800 Subject: [PATCH 193/888] build(deps): update module golang.org/x/crypto to v0.18.0 (#489) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 0f81d0a62..1f08812bd 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.11 go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 - golang.org/x/crypto v0.17.0 + golang.org/x/crypto v0.18.0 google.golang.org/grpc v1.61.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.32.0 @@ -89,7 +89,7 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect - golang.org/x/sys v0.15.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect diff --git a/go.sum b/go.sum index ab30a0ad4..35f2b09e3 100644 --- a/go.sum +++ b/go.sum @@ -469,8 +469,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -561,8 +561,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 652907d33da0013b3e318f8006e247c0da5fd62b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:03:24 +0800 Subject: [PATCH 194/888] build(deps): update module github.com/aws/aws-sdk-go to v1.50.9 (#486) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1f08812bd..1190568b3 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.1 - github.com/aws/aws-sdk-go v1.49.14 + github.com/aws/aws-sdk-go v1.50.9 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 35f2b09e3..b858acccc 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.49.14 h1:AZ7wfESxXuqQElXRnDCaohJSUSaf2s7c2uPB7g5js/w= -github.com/aws/aws-sdk-go v1.49.14/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.50.9 h1:yX66aKnEtRc/uNV/1EH8CudRT5aLwVwcSwTBphuVPt8= +github.com/aws/aws-sdk-go v1.50.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 1f72d237c9d32f7e3682bad3670db50c4f532052 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:06:20 +0800 Subject: [PATCH 195/888] build(deps): update dependency prettier to ^3.2.4 (#485) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4df508284..bf661d27f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.1.1" + "prettier": "^3.2.4" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -314,9 +314,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -704,9 +704,9 @@ } }, "prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", + "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 12e6a716b..2bad47ad6 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.1.1" + "prettier": "^3.2.4" }, "nodemonConfig": { "restartable": "rs", From 7e7efd4b9bc95b8cf567a6754f4e5f8eca483d26 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:06:28 +0800 Subject: [PATCH 196/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.12 (#483) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 1190568b3..d3a83ad87 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.11 + go.etcd.io/etcd/client/v3 v3.5.12 go.uber.org/fx v1.20.1 go.uber.org/zap v1.26.0 golang.org/x/crypto v0.18.0 @@ -81,8 +81,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.11 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.11 // indirect + go.etcd.io/etcd/api/v3 v3.5.12 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/dig v1.17.0 // indirect go.uber.org/multierr v1.10.0 // indirect diff --git a/go.sum b/go.sum index b858acccc..185655bb5 100644 --- a/go.sum +++ b/go.sum @@ -432,12 +432,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.11 h1:B54KwXbWDHyD3XYAwprxNzTe7vlhR69LuBgZnMVvS7E= -go.etcd.io/etcd/api/v3 v3.5.11/go.mod h1:Ot+o0SWSyT6uHhA56al1oCED0JImsRiU9Dc26+C2a+4= -go.etcd.io/etcd/client/pkg/v3 v3.5.11 h1:bT2xVspdiCj2910T0V+/KHcVKjkUrCZVtk8J2JF2z1A= -go.etcd.io/etcd/client/pkg/v3 v3.5.11/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= -go.etcd.io/etcd/client/v3 v3.5.11 h1:ajWtgoNSZJ1gmS8k+icvPtqsqEav+iUorF7b0qozgUU= -go.etcd.io/etcd/client/v3 v3.5.11/go.mod h1:a6xQUEqFJ8vztO1agJh/KQKOMfFI8og52ZconzcDJwE= +go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c= +go.etcd.io/etcd/api/v3 v3.5.12/go.mod h1:Ot+o0SWSyT6uHhA56al1oCED0JImsRiU9Dc26+C2a+4= +go.etcd.io/etcd/client/pkg/v3 v3.5.12 h1:EYDL6pWwyOsylrQyLp2w+HkQ46ATiOvoEdMarindU2A= +go.etcd.io/etcd/client/pkg/v3 v3.5.12/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= +go.etcd.io/etcd/client/v3 v3.5.12 h1:v5lCPXn1pf1Uu3M4laUE2hp/geOTc5uPcYYsNe1lDxg= +go.etcd.io/etcd/client/v3 v3.5.12/go.mod h1:tSbBCakoWmmddL+BKVAJHa9km+O/E+bumDe9mSbPiqw= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= From e807f5abe23608a59ced821c2829fb3cb26d0234 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:06:37 +0800 Subject: [PATCH 197/888] build(deps): update module gorm.io/gorm to v1.25.6 (#484) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d3a83ad87..7080f2607 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.25 - gorm.io/gorm v1.25.5 + gorm.io/gorm v1.25.6 gorm.io/plugin/dbresolver v1.5.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 185655bb5..6147fa99f 100644 --- a/go.sum +++ b/go.sum @@ -689,8 +689,8 @@ gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqw gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= -gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.6 h1:V92+vVda1wEISSOMtodHVRcUIOPYa2tgQtyF+DfFx+A= +gorm.io/gorm v1.25.6/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.5.0 h1:XVHLxh775eP0CqVh3vcfJtYqja3uFl5Wr3cKlY8jgDY= From 32f8a4b5c4bfd630c9cdadf9121b3d3a31d9303a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:06:46 +0800 Subject: [PATCH 198/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.26.1 (#482) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7080f2607..82c30cfec 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.4 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.26.0 + github.com/meilisearch/meilisearch-go v0.26.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.18.0 github.com/redis/go-redis/v9 v9.4.0 diff --git a/go.sum b/go.sum index 6147fa99f..1af6c9ac0 100644 --- a/go.sum +++ b/go.sum @@ -260,8 +260,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/meilisearch/meilisearch-go v0.26.0 h1:6IdFC9S53gEp7FMkt99swIFyEZE+4TwJAgen3eQdw40= -github.com/meilisearch/meilisearch-go v0.26.0/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.26.1 h1:3bmo2uLijX7kvBmiZ9LupVfC95TFcRJDgrRTzbOoE4A= +github.com/meilisearch/meilisearch-go v0.26.1/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= From 0e3799b587ef0106e629f2268cc58110a6603ed2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 06:06:57 +0800 Subject: [PATCH 199/888] build(deps): update module github.com/go-playground/validator/v10 to v10.17.0 (#488) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 82c30cfec..5b78d267a 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.3.3 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.16.0 + github.com/go-playground/validator/v10 v10.17.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.11.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index 1af6c9ac0..d4729693a 100644 --- a/go.sum +++ b/go.sum @@ -96,8 +96,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqRRkz6M78GuJAfGE= -github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ4E5T9gDA0AIH74= +github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= From 687254368245c8c07d9b8e0a0fa37d6c40438cf4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 23:48:46 +0800 Subject: [PATCH 200/888] build(deps): update module github.com/trim21/go-phpserialize to v0.0.21 (#494) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 5b78d267a..5d1e79b69 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.4 github.com/trim21/errgo v0.0.2 - github.com/trim21/go-phpserialize v0.0.20 + github.com/trim21/go-phpserialize v0.0.21 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index d4729693a..e9555bb04 100644 --- a/go.sum +++ b/go.sum @@ -76,7 +76,7 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -402,8 +402,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= -github.com/trim21/go-phpserialize v0.0.20 h1:0ZirMrbc1oqK/shAhU5hGO7KgG8b+FDfwmyCSoo9nHw= -github.com/trim21/go-phpserialize v0.0.20/go.mod h1:dChIuKK9wuBHDd5yqaYm0oFxtcmB+qIzbC8pvj06tIQ= +github.com/trim21/go-phpserialize v0.0.21 h1:/RaseAU8bDOVJRzmogTD/WNLjcqKJlGueKTs5eF1FJE= +github.com/trim21/go-phpserialize v0.0.21/go.mod h1:vNqVtkwoZtQuK3VMD0KoytIGUEmofWvujEwxvPKjHyo= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From eea8687eceb2f47f74d8bdb467636f162aad3a78 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 17 Feb 2024 06:01:39 +0800 Subject: [PATCH 201/888] fix: empty subject tags --- internal/collections/domain/collection/subject.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index b8f6d1445..a28270e50 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -131,7 +131,7 @@ func (s *Subject) UpdateTags(tags []string) error { slice.Map(tags, strings.TrimSpace) - if !lo.ContainsBy(tags, dam.AllPrintableChar) { + if lo.ContainsBy(tags, func(item string) bool { return !dam.AllPrintableChar(item) }) { return gerr.ErrInvisibleChar } From b98723e1468e6b2dca1e68b3d7f71c69368c3a44 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 17 Feb 2024 14:08:33 +0800 Subject: [PATCH 202/888] fix: trim tag spaces --- internal/collections/domain/collection/subject.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index a28270e50..58618a1c8 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -129,7 +129,7 @@ func (s *Subject) UpdateTags(tags []string) error { return nil } - slice.Map(tags, strings.TrimSpace) + tags = slice.Map(tags, strings.TrimSpace) if lo.ContainsBy(tags, func(item string) bool { return !dam.AllPrintableChar(item) }) { return gerr.ErrInvisibleChar From cd324b382cec6bfac9d1c53f8ab24a0ea24222ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 04:57:26 +0800 Subject: [PATCH 203/888] ci: update golangci/golangci-lint-action action to v4 (#509) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 128c4ab1c..2ef51b906 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -48,7 +48,7 @@ jobs: - run: go get -t ./... - name: Run linters - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v4 with: version: v1.53.3 skip-pkg-cache: true From 7bd62003f4fbabcead9aacfd0e3fd86c552411f6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 05:16:57 +0800 Subject: [PATCH 204/888] ci: update requarks/changelog-action action to v1.10.1 (#502) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8ed77963a..65a433ebb 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,7 +15,7 @@ jobs: - name: Generate Changelog id: changelog - uses: requarks/changelog-action@v1.10.0 + uses: requarks/changelog-action@v1.10.1 with: token: ${{ github.token }} tag: ${{ github.ref_name }} From 92d04ae7f07461916d5ece15df3ca8f4eedfaf74 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 05:17:09 +0800 Subject: [PATCH 205/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.26.2 (#498) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5d1e79b69..cf003bb4f 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.4 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.26.1 + github.com/meilisearch/meilisearch-go v0.26.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.18.0 github.com/redis/go-redis/v9 v9.4.0 diff --git a/go.sum b/go.sum index e9555bb04..1154951fe 100644 --- a/go.sum +++ b/go.sum @@ -260,8 +260,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/meilisearch/meilisearch-go v0.26.1 h1:3bmo2uLijX7kvBmiZ9LupVfC95TFcRJDgrRTzbOoE4A= -github.com/meilisearch/meilisearch-go v0.26.1/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.26.2 h1:3gTlmiV1dHHumVUhYdJbvh3camiNiyqQ1hNveVsU2OE= +github.com/meilisearch/meilisearch-go v0.26.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= From 7c7dcf0b3162889e11ef8e47fa1e6d6c901d316e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:32:43 +0800 Subject: [PATCH 206/888] build(deps): update module go.uber.org/zap to v1.27.0 (#506) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index cf003bb4f..7b5a08534 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.12 go.uber.org/fx v1.20.1 - go.uber.org/zap v1.26.0 + go.uber.org/zap v1.27.0 golang.org/x/crypto v0.18.0 google.golang.org/grpc v1.61.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 diff --git a/go.sum b/go.sum index 1154951fe..acdefc7e8 100644 --- a/go.sum +++ b/go.sum @@ -449,7 +449,7 @@ go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk= go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg= -go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= @@ -457,8 +457,8 @@ go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= From b9cd49add4fa2bee16a060ebac40e395419bdcff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:43:31 +0800 Subject: [PATCH 207/888] build(deps): update module github.com/redis/go-redis/v9 to v9.5.1 (#505) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7b5a08534..a59b2629c 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/meilisearch/meilisearch-go v0.26.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.18.0 - github.com/redis/go-redis/v9 v9.4.0 + github.com/redis/go-redis/v9 v9.5.1 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.0 diff --git a/go.sum b/go.sum index acdefc7e8..eb61c7c56 100644 --- a/go.sum +++ b/go.sum @@ -353,8 +353,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwyKk= -github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8= +github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 30547adbfebb20ec7ac275c553b696c1165f86b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:44:52 +0800 Subject: [PATCH 208/888] chore(deps): update gcr.io/distroless/static docker digest to 072d78b (#495) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 7be8e1d5e..5807da8cc 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:9be3fcc6abeaf985b5ecce59451acbcbb15e7be39472320c538d0d55a0834edc +FROM gcr.io/distroless/static@sha256:072d78bc452a2998929a9579464e55067db4bf6d2c5f9cde582e33c10a415bd1 ENTRYPOINT ["/app/chii.exe"] From c6c7b75140bf3012136919519dae3c18e14bc319 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:54:08 +0800 Subject: [PATCH 209/888] build(deps): update module github.com/prometheus/client_golang to v1.19.0 (#504) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 7 +++---- go.sum | 14 ++++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index a59b2629c..0e459ccee 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.2 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.18.0 + github.com/prometheus/client_golang v1.19.0 github.com/redis/go-redis/v9 v9.5.1 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 @@ -71,11 +71,10 @@ require ( github.com/leodido/go-urn v1.2.4 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/common v0.48.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect github.com/stretchr/objx v0.5.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect @@ -88,7 +87,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/go.sum b/go.sum index eb61c7c56..4dcc9fb42 100644 --- a/go.sum +++ b/go.sum @@ -257,8 +257,6 @@ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/meilisearch/meilisearch-go v0.26.2 h1:3gTlmiV1dHHumVUhYdJbvh3camiNiyqQ1hNveVsU2OE= github.com/meilisearch/meilisearch-go v0.26.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= @@ -326,8 +324,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -341,8 +339,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= +github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -513,8 +511,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From e465536cbc66844894f980632a9755a14ca9809b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 04:46:00 +0800 Subject: [PATCH 210/888] build(deps): update module github.com/stretchr/testify to v1.9.0 (#510) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 0e459ccee..8cd6f015d 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.2 github.com/trim21/go-phpserialize v0.0.21 github.com/trim21/go-redis-prometheus v0.0.0 @@ -76,7 +76,7 @@ require ( github.com/prometheus/client_model v0.5.0 // indirect github.com/prometheus/common v0.48.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect - github.com/stretchr/objx v0.5.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect diff --git a/go.sum b/go.sum index 4dcc9fb42..c5d750142 100644 --- a/go.sum +++ b/go.sum @@ -386,8 +386,9 @@ github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5J github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -395,8 +396,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= From 1ca5c615ba5da64b795dc7e3d87fa42494c3893b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 05:03:11 +0800 Subject: [PATCH 211/888] build(deps): update module github.com/elliotchance/phpserialize to v1.4.0 (#487) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8cd6f015d..4bcf0d4e8 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/avast/retry-go/v4 v4.5.1 github.com/aws/aws-sdk-go v1.50.9 github.com/davecgh/go-spew v1.1.1 - github.com/elliotchance/phpserialize v1.3.3 + github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.17.0 diff --git a/go.sum b/go.sum index c5d750142..585b6be50 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/elliotchance/phpserialize v1.3.3 h1:hV4QVmGdCiYgoBbw+ADt6fNgyZ2mYX0OgpnON1adTCM= -github.com/elliotchance/phpserialize v1.3.3/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= +github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= +github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= From 0fb2a3e15081c7a3b9c9ad2dba9060e60bdf877b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 05:03:28 +0800 Subject: [PATCH 212/888] build(deps): update dependency prettier to ^3.2.5 (#496) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf661d27f..7ed0c828a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.2.4" + "prettier": "^3.2.5" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -314,9 +314,9 @@ } }, "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -704,9 +704,9 @@ } }, "prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 2bad47ad6..957ab10b0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.2.4" + "prettier": "^3.2.5" }, "nodemonConfig": { "restartable": "rs", From dd840a1ed276cc744277fbf332975cbbe4c0a9c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 05:03:35 +0800 Subject: [PATCH 213/888] build(deps): update module github.com/aws/aws-sdk-go to v1.50.30 (#497) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4bcf0d4e8..5145a1621 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.1 - github.com/aws/aws-sdk-go v1.50.9 + github.com/aws/aws-sdk-go v1.50.30 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 585b6be50..6a1deaf21 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.50.9 h1:yX66aKnEtRc/uNV/1EH8CudRT5aLwVwcSwTBphuVPt8= -github.com/aws/aws-sdk-go v1.50.9/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.50.30 h1:2OelKH1eayeaH7OuL1Y9Ombfw4HK+/k0fEnJNWjyLts= +github.com/aws/aws-sdk-go v1.50.30/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 3783a3f9bcf0765e93d83909f8f79170ea2c7d5d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 05:18:25 +0800 Subject: [PATCH 214/888] build(deps): update module gorm.io/plugin/dbresolver to v1.5.1 (#501) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5145a1621..ba4ff5ed0 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.25 gorm.io/gorm v1.25.6 - gorm.io/plugin/dbresolver v1.5.0 + gorm.io/plugin/dbresolver v1.5.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 6a1deaf21..7b3c05719 100644 --- a/go.sum +++ b/go.sum @@ -692,8 +692,8 @@ gorm.io/gorm v1.25.6 h1:V92+vVda1wEISSOMtodHVRcUIOPYa2tgQtyF+DfFx+A= gorm.io/gorm v1.25.6/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.5.0 h1:XVHLxh775eP0CqVh3vcfJtYqja3uFl5Wr3cKlY8jgDY= -gorm.io/plugin/dbresolver v1.5.0/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= +gorm.io/plugin/dbresolver v1.5.1 h1:s9Dj9f7r+1rE3nx/Ywzc85nXptUEaeOO0pt27xdopM8= +gorm.io/plugin/dbresolver v1.5.1/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From be22815d3e9bcdeb7dbefaca6f3be821e89f883b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 07:25:50 +0800 Subject: [PATCH 215/888] build(deps): update module google.golang.org/grpc to v1.62.0 (#508) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index ba4ff5ed0..29531f1fa 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( go.uber.org/fx v1.20.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.18.0 - google.golang.org/grpc v1.61.0 + google.golang.org/grpc v1.62.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.32.0 gopkg.in/yaml.v3 v3.0.1 @@ -92,9 +92,9 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect - google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 7b3c05719..8ea858469 100644 --- a/go.sum +++ b/go.sum @@ -525,7 +525,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -616,12 +616,12 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -631,8 +631,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= -google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 06fd9ecce98fffc16d7225a292607101784fc2bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 07:31:55 +0800 Subject: [PATCH 216/888] build(deps): update module github.com/go-playground/validator/v10 to v10.18.0 (#503) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 29531f1fa..53165d128 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.17.0 + github.com/go-playground/validator/v10 v10.18.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.11.0 github.com/go-sql-driver/mysql v1.7.1 @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.12 go.uber.org/fx v1.20.1 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.18.0 + golang.org/x/crypto v0.19.0 google.golang.org/grpc v1.62.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.32.0 @@ -55,7 +55,7 @@ require ( github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect @@ -68,7 +68,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/labstack/gommon v0.4.2 // indirect - github.com/leodido/go-urn v1.2.4 // indirect + github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect @@ -87,8 +87,8 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect diff --git a/go.sum b/go.sum index 8ea858469..33d91a76c 100644 --- a/go.sum +++ b/go.sum @@ -82,8 +82,8 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -96,8 +96,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ4E5T9gDA0AIH74= -github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.18.0 h1:BvolUXjp4zuvkZ5YN5t7ebzbhlUtPsPm2S9NAZ5nl9U= +github.com/go-playground/validator/v10 v10.18.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= @@ -236,8 +236,8 @@ github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zG github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= -github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= -github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= @@ -468,8 +468,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -512,8 +512,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -560,8 +560,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 7cd92e99e04807b313e9859c12b24c4d4c27a7b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 22:48:21 +0800 Subject: [PATCH 217/888] build(deps): update module golang.org/x/crypto to v0.20.0 (#507) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 53165d128..699ce3b6f 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.12 go.uber.org/fx v1.20.1 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.19.0 + golang.org/x/crypto v0.20.0 google.golang.org/grpc v1.62.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.32.0 diff --git a/go.sum b/go.sum index 33d91a76c..79375b85c 100644 --- a/go.sum +++ b/go.sum @@ -468,8 +468,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= +golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= From 133b51aac81144a74fe3cb9b7976ad9f05dcb9a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:33:55 +0800 Subject: [PATCH 218/888] build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#511) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 699ce3b6f..84a23cdee 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( golang.org/x/crypto v0.20.0 google.golang.org/grpc v1.62.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.32.0 + google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.25 diff --git a/go.sum b/go.sum index 79375b85c..5a27369c0 100644 --- a/go.sum +++ b/go.sum @@ -643,8 +643,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From d14e2079a4ed9f3d5b1b2a334f423e1ee17777bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:34:03 +0800 Subject: [PATCH 219/888] build(deps): update module google.golang.org/protobuf to v1.33.0 [security] (#512) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> From 0407cdf8a5101982d8129534f51cae2c636c8dbc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 02:44:20 +0800 Subject: [PATCH 220/888] build(deps): update module gorm.io/gorm to v1.25.8 (#500) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 84a23cdee..f66cd3d79 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.2 gorm.io/gen v0.3.25 - gorm.io/gorm v1.25.6 + gorm.io/gorm v1.25.8 gorm.io/plugin/dbresolver v1.5.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 5a27369c0..d866a5a94 100644 --- a/go.sum +++ b/go.sum @@ -688,8 +688,8 @@ gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqw gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.6 h1:V92+vVda1wEISSOMtodHVRcUIOPYa2tgQtyF+DfFx+A= -gorm.io/gorm v1.25.6/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.8 h1:WAGEZ/aEcznN4D03laj8DKnehe1e9gYQAjW8xyPRdeo= +gorm.io/gorm v1.25.8/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.5.1 h1:s9Dj9f7r+1rE3nx/Ywzc85nXptUEaeOO0pt27xdopM8= From 4e04cd986d98c283ed5f6c51aa8dedca5fa97a14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 05:29:23 +0800 Subject: [PATCH 221/888] build(deps): update module gorm.io/driver/mysql to v1.5.5 (#499) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index f66cd3d79..7a81b9e65 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.5.2 + gorm.io/driver/mysql v1.5.5 gorm.io/gen v0.3.25 gorm.io/gorm v1.25.8 gorm.io/plugin/dbresolver v1.5.1 diff --git a/go.sum b/go.sum index d866a5a94..e712ea73d 100644 --- a/go.sum +++ b/go.sum @@ -672,8 +672,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.5.2 h1:QC2HRskSE75wBuOxe0+iCkyJZ+RqpudsQtqkp+IMuXs= -gorm.io/driver/mysql v1.5.2/go.mod h1:pQLhh1Ut/WUAySdTHwBpBv6+JKcj+ua4ZFx1QQTBzb8= +gorm.io/driver/mysql v1.5.5 h1:WxklwX6FozMs1gk9yVadxGfjGiJjrBKPvIIvYZOMyws= +gorm.io/driver/mysql v1.5.5/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= @@ -686,8 +686,8 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.8 h1:WAGEZ/aEcznN4D03laj8DKnehe1e9gYQAjW8xyPRdeo= gorm.io/gorm v1.25.8/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= From f69beac1e5c9f24e20846cb8d68ab5a291d95a4d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:51:43 +0800 Subject: [PATCH 222/888] chore(deps): update gcr.io/distroless/static docker digest to 046b92c (#514) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 5807da8cc..f290af7de 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:072d78bc452a2998929a9579464e55067db4bf6d2c5f9cde582e33c10a415bd1 +FROM gcr.io/distroless/static@sha256:046b92c933032a8ca99a66f4c79a68ac029d9a4ababd1a806a82140b3b899fd3 ENTRYPOINT ["/app/chii.exe"] From e88d3d2c3f68253ff384e1d321183fcf81638864 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:03 +0800 Subject: [PATCH 223/888] build(deps): update module google.golang.org/grpc to v1.62.1 (#516) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7a81b9e65..0493d1294 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( go.uber.org/fx v1.20.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.20.0 - google.golang.org/grpc v1.62.0 + google.golang.org/grpc v1.62.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index e712ea73d..fbfc0f245 100644 --- a/go.sum +++ b/go.sum @@ -631,8 +631,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= -google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 4f9855af018b76512e59f14f0e1d2dbd41a55f41 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:09 +0800 Subject: [PATCH 224/888] build(deps): update module gorm.io/driver/mysql to v1.5.6 (#517) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0493d1294..b9ca1cd9f 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.5.5 + gorm.io/driver/mysql v1.5.6 gorm.io/gen v0.3.25 gorm.io/gorm v1.25.8 gorm.io/plugin/dbresolver v1.5.1 diff --git a/go.sum b/go.sum index fbfc0f245..c112b813e 100644 --- a/go.sum +++ b/go.sum @@ -672,8 +672,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.5.5 h1:WxklwX6FozMs1gk9yVadxGfjGiJjrBKPvIIvYZOMyws= -gorm.io/driver/mysql v1.5.5/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= +gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= +gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= From 43fc7c73ccb9407a1271479cf6ddd7f50dd01d2d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:16 +0800 Subject: [PATCH 225/888] build(deps): update module gorm.io/gorm to v1.25.9 (#518) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b9ca1cd9f..4a0caa06b 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.6 gorm.io/gen v0.3.25 - gorm.io/gorm v1.25.8 + gorm.io/gorm v1.25.9 gorm.io/plugin/dbresolver v1.5.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index c112b813e..710eea343 100644 --- a/go.sum +++ b/go.sum @@ -688,8 +688,8 @@ gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqw gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.8 h1:WAGEZ/aEcznN4D03laj8DKnehe1e9gYQAjW8xyPRdeo= -gorm.io/gorm v1.25.8/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= +gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.5.1 h1:s9Dj9f7r+1rE3nx/Ywzc85nXptUEaeOO0pt27xdopM8= From 29d8784d729b472f9ba0e32bc18618ec9d8eff65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:25 +0800 Subject: [PATCH 226/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^11.5.4 (#519) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 74 +++++++++++------------------------------------ package.json | 2 +- 2 files changed, 18 insertions(+), 58 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7ed0c828a..53f57fe9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.1.0", + "@apidevtools/json-schema-ref-parser": "^11.5.4", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -19,15 +19,13 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz", - "integrity": "sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==", + "version": "11.5.4", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz", + "integrity": "sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg==", "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.13", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" }, "engines": { "node": ">= 16" @@ -48,22 +46,9 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - }, - "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" - }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", - "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", - "dependencies": { - "@types/lodash": "*" - } + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/ansi-regex": { "version": "5.0.1", @@ -199,11 +184,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, "node_modules/node-fetch-h2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", @@ -464,15 +444,13 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz", - "integrity": "sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==", + "version": "11.5.4", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz", + "integrity": "sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg==", "requires": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.13", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" } }, "@exodus/schemasafe": { @@ -487,22 +465,9 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==" - }, - "@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" - }, - "@types/lodash.clonedeep": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.7.tgz", - "integrity": "sha512-ccNqkPptFIXrpVqUECi60/DFxjNKsfoQxSQsgcBJCX/fuX1wgyQieojkcWH/KpE3xzLoWN/2k+ZeGqIN3paSvw==", - "requires": { - "@types/lodash": "*" - } + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "ansi-regex": { "version": "5.0.1", @@ -611,11 +576,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, "node-fetch-h2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", diff --git a/package.json b/package.json index 957ab10b0..3a3a01122 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.1.0", + "@apidevtools/json-schema-ref-parser": "^11.5.4", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From 7ecfaf029eca712fc7098d66911c1ffee5629966 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:46 +0800 Subject: [PATCH 227/888] build(deps): update module github.com/aws/aws-sdk-go to v1.51.11 (#520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4a0caa06b..29b47e441 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/avast/retry-go/v4 v4.5.1 - github.com/aws/aws-sdk-go v1.50.30 + github.com/aws/aws-sdk-go v1.51.11 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 710eea343..db83310ae 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,8 @@ github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.50.30 h1:2OelKH1eayeaH7OuL1Y9Ombfw4HK+/k0fEnJNWjyLts= -github.com/aws/aws-sdk-go v1.50.30/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.11 h1:El5VypsMIz7sFwAAj/j06JX9UGs4KAbAIEaZ57bNY4s= +github.com/aws/aws-sdk-go v1.51.11/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From 056859920d6409c81621a85aa062f9708da7ff61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:52:52 +0800 Subject: [PATCH 228/888] build(deps): update module github.com/go-playground/validator/v10 to v10.19.0 (#521) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 29b47e441..5bec284b9 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.18.0 + github.com/go-playground/validator/v10 v10.19.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.11.0 github.com/go-sql-driver/mysql v1.7.1 diff --git a/go.sum b/go.sum index db83310ae..ee61feb8d 100644 --- a/go.sum +++ b/go.sum @@ -96,8 +96,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.18.0 h1:BvolUXjp4zuvkZ5YN5t7ebzbhlUtPsPm2S9NAZ5nl9U= -github.com/go-playground/validator/v10 v10.18.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= +github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= From 3ff21eea0e595b2af6e31f566e5021e4e3cc7580 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:53:02 +0800 Subject: [PATCH 229/888] build(deps): update module github.com/go-sql-driver/mysql to v1.8.1 (#523) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5bec284b9..11f670d40 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/go-playground/validator/v10 v10.19.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.11.0 - github.com/go-sql-driver/mysql v1.7.1 + github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.11.4 @@ -47,6 +47,7 @@ require ( ) require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/andybalholm/brotli v1.0.6 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/go.sum b/go.sum index ee61feb8d..42afbd438 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -105,8 +107,8 @@ github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5 github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= -github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= From 242028a0cdcbba9015af717f8e2fc7ea2b52d647 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:53:08 +0800 Subject: [PATCH 230/888] build(deps): update module go.uber.org/fx to v1.21.0 (#524) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 5 ++--- go.sum | 11 ++++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index 11f670d40..45425a4ed 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.12 - go.uber.org/fx v1.20.1 + go.uber.org/fx v1.21.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.20.0 google.golang.org/grpc v1.62.1 @@ -83,8 +83,7 @@ require ( github.com/valyala/fasttemplate v1.2.2 // indirect go.etcd.io/etcd/api/v3 v3.5.12 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect - go.uber.org/atomic v1.9.0 // indirect - go.uber.org/dig v1.17.0 // indirect + go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect diff --git a/go.sum b/go.sum index 42afbd438..3c82e0481 100644 --- a/go.sum +++ b/go.sum @@ -31,7 +31,6 @@ github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.51.11 h1:El5VypsMIz7sFwAAj/j06JX9UGs4KAbAIEaZ57bNY4s= github.com/aws/aws-sdk-go v1.51.11/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -444,12 +443,10 @@ go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= -go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= -go.uber.org/fx v1.20.1 h1:zVwVQGS8zYvhh9Xxcu4w1M6ESyeMzebzj2NbSayZ4Mk= -go.uber.org/fx v1.20.1/go.mod h1:iSYNbHf2y55acNCwCXKx7LbWb5WG1Bnue5RDXz1OREg= +go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= +go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= +go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= From d1452ae3ff1ac140921d4d4f882002c5a2e7e34d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 02:56:58 +0800 Subject: [PATCH 231/888] build(deps): update module golang.org/x/crypto to v0.21.0 (#525) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 45425a4ed..dd48d3e2b 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.12 go.uber.org/fx v1.21.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.20.0 + golang.org/x/crypto v0.21.0 google.golang.org/grpc v1.62.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 @@ -88,7 +88,7 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.17.0 // indirect + golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect diff --git a/go.sum b/go.sum index 3c82e0481..b67b74c87 100644 --- a/go.sum +++ b/go.sum @@ -467,8 +467,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg= -golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -559,8 +559,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From e2f68298afb6c4512a2e663f5dc158e2ac1d6ab3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 03:00:22 +0800 Subject: [PATCH 232/888] build(deps): update module github.com/go-resty/resty/v2 to v2.12.0 (#522) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index dd48d3e2b..e0e3ed0ab 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.19.0 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.11.0 + github.com/go-resty/resty/v2 v2.12.0 github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 @@ -87,7 +87,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.21.0 // indirect + golang.org/x/net v0.22.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/go.sum b/go.sum index b67b74c87..29619f2c1 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.11.0 h1:i7jMfNOJYMp69lq7qozJP+bjgzfAzeOhuGlyDrqxT/8= -github.com/go-resty/resty/v2 v2.11.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= +github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= +github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -467,6 +467,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -511,8 +512,9 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -559,6 +561,7 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -566,6 +569,8 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -579,7 +584,6 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 7e25a54636ce024ab4bbe6ec6acbc52f23447a22 Mon Sep 17 00:00:00 2001 From: Zhoukun Cheng Date: Sat, 13 Apr 2024 20:44:50 +0800 Subject: [PATCH 233/888] docs(openapi): correct person image api tag (#528) --- openapi/v0.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index dc2e6e584..10d03ec39 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -602,7 +602,7 @@ paths: "/v0/persons/{person_id}/image": get: tags: - - 角色 + - 人物 summary: Get Person Image operationId: getPersonImageById parameters: From 09502218eb78ac4c8be6ee0a933c6df47b777788 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 Apr 2024 16:21:05 +0800 Subject: [PATCH 234/888] fix: only update rate --- ctrl/update_subject_collection.go | 4 ++-- internal/collections/domain/collection/subject.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index b7971dd14..aa3c9edca 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -91,8 +91,8 @@ func (ctl Ctrl) UpdateSubjectCollection( s.UpdateType(req.Type.Value) } - if req.Rate.Set && req.Type.Set { - if e := s.UpdateRate(req.Rate.Value, req.Type.Value); e != nil { + if req.Rate.Set { + if e := s.UpdateRate(req.Rate.Value); e != nil { return nil, e } } diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 58618a1c8..8fc8227ae 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -144,12 +144,12 @@ func (s *Subject) UpdateType(r SubjectCollection) { s.typeID = r } -func (s *Subject) UpdateRate(r uint8, state SubjectCollection) error { +func (s *Subject) UpdateRate(r uint8) error { if r > 10 { return errgo.Wrap(gerr.ErrInput, "rate overflow") } - if state == SubjectCollectionWish { + if s.typeID == SubjectCollectionWish { s.rate = 0 } else { s.rate = r From 025bf033746543ba29644f9ba41023bc9af5e930 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 Apr 2024 16:38:20 +0800 Subject: [PATCH 235/888] tests: fix --- internal/collections/infra/mysql_repo_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index ed27c4144..bcadabd1c 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -244,7 +244,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) - require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) + require.NoError(t, s.UpdateRate(1)) s.UpdateType(collection.SubjectCollectionDropped) return s, nil }) @@ -266,7 +266,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { // When update to wish state err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { - require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionWish)) + require.NoError(t, s.UpdateRate(1)) s.UpdateType(collection.SubjectCollectionWish) return s, nil }) @@ -324,7 +324,7 @@ func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { err = repo.UpdateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { require.NoError(t, s.UpdateComment("c")) - require.NoError(t, s.UpdateRate(1, collection.SubjectCollectionDropped)) + require.NoError(t, s.UpdateRate(1)) s.UpdateType(collection.SubjectCollectionDropped) return s, nil }) From 30889c6f0a6ffd7b1ff86b10211abc4b6ef888f5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 16 Apr 2024 16:44:27 +0800 Subject: [PATCH 236/888] tests: fix --- internal/collections/infra/mysql_repo_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index bcadabd1c..c38945548 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -243,9 +243,9 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { // 更新 err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { + s.UpdateType(collection.SubjectCollectionDropped) require.NoError(t, s.UpdateComment("c")) require.NoError(t, s.UpdateRate(1)) - s.UpdateType(collection.SubjectCollectionDropped) return s, nil }) require.NoError(t, err) @@ -266,8 +266,8 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { // When update to wish state err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { - require.NoError(t, s.UpdateRate(1)) s.UpdateType(collection.SubjectCollectionWish) + require.NoError(t, s.UpdateRate(1)) return s, nil }) require.NoError(t, err) From a4e8b014bdaa8f55e0f1d3f61adca23849651c63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 15:42:10 +0800 Subject: [PATCH 237/888] build(deps): update module golang.org/x/net to v0.23.0 [security] (#535) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index e0e3ed0ab..afb7b9d48 100644 --- a/go.mod +++ b/go.mod @@ -87,7 +87,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.22.0 // indirect + golang.org/x/net v0.23.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/go.sum b/go.sum index 29619f2c1..f3c278459 100644 --- a/go.sum +++ b/go.sum @@ -513,8 +513,9 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From a69a23b8ac539cdb7a7c286798782e06a51a2ecf Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 21 Apr 2024 15:57:15 +0800 Subject: [PATCH 238/888] chore: bump golangci-lint to 1.57.2 (#536) --- .github/workflows/build.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/test.yaml | 2 +- .golangci.yaml | 37 ++++++++++++--------------- 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bf67a7e50..b934988dd 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -49,7 +49,7 @@ jobs: go-cache-119- - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2ef51b906..a004c1d6e 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -50,6 +50,6 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v4 with: - version: v1.53.3 + version: v1.57.2 skip-pkg-cache: true skip-build-cache: true diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index ec4bf6c84..d4ead6acd 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -49,7 +49,7 @@ jobs: - run: node .github/scripts/write-version.js - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 817acbc21..fcf3498bc 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -40,7 +40,7 @@ jobs: cache: false - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.golangci.yaml b/.golangci.yaml index 0c7bf641d..8f9fca20b 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -20,13 +20,13 @@ run: skip-files: [] - go: "1.20" + go: "1.21" # output configuration options output: # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions # default is "colored-line-number" - format: colored-line-number + formats: colored-line-number # print lines of code with issue, default is true print-issued-lines: true @@ -45,6 +45,10 @@ output: # all available settings of specific linters linters-settings: + revive: + rules: + - name: unused-parameter + disabled: true errcheck: # report about not checking of errors in type assertions: `a := b.(MyStruct)`; # default is false: such cases aren't reported by default. @@ -128,21 +132,20 @@ linters-settings: desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' gomnd: - settings: - mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: - - argument - - case - - operation - - return - - assign - ignored-functions: strconv\..*,time\..*,make,math\..*,strings\..* - ignored-numbers: 1,2,3,10,100,1000,10000 + # settings: + # mnd: + # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. + checks: + - argument + - case + - operation + - return + - assign + ignored-functions: strconv\..*,time\..*,make,math\..*,strings\..* + ignored-numbers: 1,2,3,10,100,1000,10000 gosimple: # Select the Go version to target. The default is '1.13'. - go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] @@ -174,22 +177,16 @@ linters-settings: staticcheck: # Select the Go version to target. The default is '1.13'. - go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] stylecheck: # Select the Go version to target. The default is '1.13'. - go: "1.20" testpackage: # regexp pattern to skip files skip-regexp: (export|internal)_test\.go - unused: - # Select the Go version to target. The default is '1.13'. - go: "1.20" - exhaustive: # check switch statements in generated files also check-generated: false From 04722870d947e93f101af766099f0498fb3524ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:02:40 +0800 Subject: [PATCH 239/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.13 (#515) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 12 +++++++----- go.sum | 46 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index afb7b9d48..763e84113 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/bangumi/server -go 1.20 +go 1.21 + +toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.5.1 @@ -31,7 +33,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.12 + go.etcd.io/etcd/client/v3 v3.5.13 go.uber.org/fx v1.21.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.21.0 @@ -60,7 +62,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect @@ -81,8 +83,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.12 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect + go.etcd.io/etcd/api/v3 v3.5.13 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect diff --git a/go.sum b/go.sum index f3c278459..3439c9bdc 100644 --- a/go.sum +++ b/go.sum @@ -38,8 +38,10 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bsm/ginkgo/v2 v2.5.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= +github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= github.com/bsm/gomega v1.20.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= +github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -78,6 +80,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -93,6 +96,7 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= @@ -121,7 +125,9 @@ github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzq github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -136,9 +142,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -147,8 +152,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -189,8 +194,11 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= +github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= @@ -230,9 +238,11 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= @@ -259,9 +269,11 @@ github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwp github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= +github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/meilisearch/meilisearch-go v0.26.2 h1:3gTlmiV1dHHumVUhYdJbvh3camiNiyqQ1hNveVsU2OE= github.com/meilisearch/meilisearch-go v0.26.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= +github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -286,14 +298,17 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.25.0 h1:Vw7br2PCDYijJHSfBOWhov+8cAnUf8MfMaIOV323l6Y= +github.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= @@ -357,6 +372,7 @@ github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -367,6 +383,7 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -420,6 +437,7 @@ github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQ github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= +github.com/volatiletech/null/v9 v9.0.0/go.mod h1:zRFghPVahaiIMRXiUJrc6gsoG83Cm3ZoAfSTw7VHGQc= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -432,12 +450,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c= -go.etcd.io/etcd/api/v3 v3.5.12/go.mod h1:Ot+o0SWSyT6uHhA56al1oCED0JImsRiU9Dc26+C2a+4= -go.etcd.io/etcd/client/pkg/v3 v3.5.12 h1:EYDL6pWwyOsylrQyLp2w+HkQ46ATiOvoEdMarindU2A= -go.etcd.io/etcd/client/pkg/v3 v3.5.12/go.mod h1:seTzl2d9APP8R5Y2hFL3NVlD6qC/dOT+3kvrqPyTas4= -go.etcd.io/etcd/client/v3 v3.5.12 h1:v5lCPXn1pf1Uu3M4laUE2hp/geOTc5uPcYYsNe1lDxg= -go.etcd.io/etcd/client/v3 v3.5.12/go.mod h1:tSbBCakoWmmddL+BKVAJHa9km+O/E+bumDe9mSbPiqw= +go.etcd.io/etcd/api/v3 v3.5.13 h1:8WXU2/NBge6AUF1K1gOexB6e07NgsN1hXK0rSTtgSp4= +go.etcd.io/etcd/api/v3 v3.5.13/go.mod h1:gBqlqkcMMZMVTMm4NDZloEVJzxQOQIls8splbqBDa0c= +go.etcd.io/etcd/client/pkg/v3 v3.5.13 h1:RVZSAnWWWiI5IrYAXjQorajncORbS0zI48LQlE2kQWg= +go.etcd.io/etcd/client/pkg/v3 v3.5.13/go.mod h1:XxHT4u1qU12E2+po+UVPrEeL94Um6zL58ppuJWXSAB8= +go.etcd.io/etcd/client/v3 v3.5.13 h1:o0fHTNJLeO0MyVbc7I3fsCf6nrOqn5d+diSarKnB2js= +go.etcd.io/etcd/client/v3 v3.5.13/go.mod h1:cqiAeY8b5DEEcpxvgWKsbLIWNM/8Wy2xJSDMtioMcoI= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -448,6 +466,7 @@ go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= @@ -528,6 +547,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -645,8 +665,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -654,6 +672,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= @@ -670,6 +689,7 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -679,10 +699,12 @@ gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10 gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= +gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= +gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= gorm.io/gen v0.3.25 h1:uT/1YfvcnYUdike4XPYyi89FEnVHZF115GUXQm2Sfug= gorm.io/gen v0.3.25/go.mod h1:p+t0iCKjaPz+pKRxcx63nXdRgnrah/QD2l92747ihyA= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= From 3b450f781a0587602824bc7e0ba6485c8b4cefe2 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 21 Apr 2024 16:06:51 +0800 Subject: [PATCH 240/888] build: upgrade to go1.22 --- .github/workflows/build.yaml | 6 +++--- .github/workflows/lint.yaml | 6 +++--- .github/workflows/release-docker.yaml | 6 +++--- .github/workflows/test.yaml | 6 +++--- .golangci.yaml | 2 +- go.mod | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b934988dd..55fb7c2ad 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,10 +43,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-119-${{ hashFiles('**/go.sum') }}-build + key: go-cache-122-${{ hashFiles('**/go.sum') }}-build restore-keys: | - go-cache-119-${{ hashFiles('**/go.sum') }}- - go-cache-119- + go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-122- - name: Install Task uses: arduino/setup-task@v2 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index a004c1d6e..872eb6ce2 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -40,10 +40,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-119-${{ hashFiles('**/go.sum') }}-lint + key: go-cache-122-${{ hashFiles('**/go.sum') }}-lint restore-keys: | - go-cache-119-${{ hashFiles('**/go.sum') }}- - go-cache-119- + go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-122- - run: go get -t ./... diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index d4ead6acd..00aa61915 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -33,10 +33,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-119-${{ hashFiles('**/go.sum') }}-build + key: go-cache-122-${{ hashFiles('**/go.sum') }}-build restore-keys: | - go-cache-119-${{ hashFiles('**/go.sum') }}- - go-cache-119- + go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-122- - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index fcf3498bc..23be3eadd 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -50,10 +50,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-119-${{ hashFiles('**/go.sum') }}-test + key: go-cache-122-${{ hashFiles('**/go.sum') }}-test restore-keys: | - go-cache-119-${{ hashFiles('**/go.sum') }}- - go-cache-119- + go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-122- - run: go get -t ./... diff --git a/.golangci.yaml b/.golangci.yaml index 8f9fca20b..12d004952 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -20,7 +20,7 @@ run: skip-files: [] - go: "1.21" + go: "1.22" # output configuration options output: diff --git a/go.mod b/go.mod index 763e84113..1a6d2a228 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.21 +go 1.22 toolchain go1.22.2 From fc1fa4c23b6f43dda9e752f258c17a203bdb4e51 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 21 Apr 2024 16:12:24 +0800 Subject: [PATCH 241/888] ci: fix codecov token --- .github/workflows/test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 23be3eadd..9cd675630 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -73,3 +73,4 @@ jobs: - uses: codecov/codecov-action@v4 with: files: coverage.out + token: ${{ secrets.CODECOV_TOKEN }} # required From 05994c8e2333b9944187d0222f4c1b108e56fe5a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 21 Apr 2024 16:22:15 +0800 Subject: [PATCH 242/888] docs: require go1.22 --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index bc1411905..91016cd9e 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ ## Requirements -- [Go 1.20](https://go.dev/) +- [Go 1.22](https://go.dev/) - [go-task](https://taskfile.dev/installation/),使用 `task` 查看所有的构建目标。 - [golangci-lint](https://golangci-lint.run/),使用 `task lint` 运行 linter。 From 6b473d15de0fcb8af2db3a1b2697b038b620673b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:23:40 +0800 Subject: [PATCH 243/888] chore(deps): update gcr.io/distroless/static docker digest to 6d31326 (#537) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index f290af7de..8a0168bb7 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:046b92c933032a8ca99a66f4c79a68ac029d9a4ababd1a806a82140b3b899fd3 +FROM gcr.io/distroless/static@sha256:6d31326376a7834b106f281b04f67b5d015c31732f594930f2ea81365f99d60c ENTRYPOINT ["/app/chii.exe"] From 22e7b28b2c908ebcb210c00de58748ac7dc02c1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:28:56 +0800 Subject: [PATCH 244/888] build(deps): update module golang.org/x/crypto to v0.22.0 (#538) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 1a6d2a228..588893540 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.13 go.uber.org/fx v1.21.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.21.0 + golang.org/x/crypto v0.22.0 google.golang.org/grpc v1.62.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 @@ -90,7 +90,7 @@ require ( golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.23.0 // indirect - golang.org/x/sys v0.18.0 // indirect + golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect diff --git a/go.sum b/go.sum index 3439c9bdc..9d98c5f35 100644 --- a/go.sum +++ b/go.sum @@ -487,8 +487,9 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -583,8 +584,9 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 46917b4b3c3f907e51565dfa06b5bcf1897a233f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:31:00 +0800 Subject: [PATCH 245/888] build(deps): update module google.golang.org/grpc to v1.63.2 (#539) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 588893540..7050566e0 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.21.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.22.0 - google.golang.org/grpc v1.62.1 + google.golang.org/grpc v1.63.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 @@ -94,9 +94,9 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.15.0 // indirect - google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 9d98c5f35..2e5cc2f3f 100644 --- a/go.sum +++ b/go.sum @@ -642,12 +642,12 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= -google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -657,8 +657,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 8339c2142c65487adb542e95c8482a8dbb9b3459 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:32:56 +0800 Subject: [PATCH 246/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^11.5.5 (#540) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53f57fe9a..324d3a53f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.5.4", + "@apidevtools/json-schema-ref-parser": "^11.5.5", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -19,9 +19,9 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz", - "integrity": "sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg==", + "version": "11.5.5", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.5.tgz", + "integrity": "sha512-hv/aXDILyroHioVW27etFMV+IX6FyNn41YwbeGIAt5h/7fUTQvHI5w3ols8qYAT8aQt3kzexq5ZwxFDxNHIhdQ==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz", - "integrity": "sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg==", + "version": "11.5.5", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.5.tgz", + "integrity": "sha512-hv/aXDILyroHioVW27etFMV+IX6FyNn41YwbeGIAt5h/7fUTQvHI5w3ols8qYAT8aQt3kzexq5ZwxFDxNHIhdQ==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", diff --git a/package.json b/package.json index 3a3a01122..1a8fa68f7 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.5.4", + "@apidevtools/json-schema-ref-parser": "^11.5.5", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From f754c99a5012672356e8db1c497e6a7267b78153 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:34:33 +0800 Subject: [PATCH 247/888] build(deps): update module github.com/labstack/echo/v4 to v4.12.0 (#543) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 7050566e0..c5f4a22b9 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 - github.com/labstack/echo/v4 v4.11.4 + github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.2 github.com/mitchellh/mapstructure v1.5.0 @@ -89,7 +89,7 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.24.0 // indirect golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/go.sum b/go.sum index 2e5cc2f3f..2c0fc71ad 100644 --- a/go.sum +++ b/go.sum @@ -243,8 +243,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= -github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0= +github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -534,8 +534,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From d2d11aed9dc2ac0cdb2cdaa91a73494f44155288 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:34:43 +0800 Subject: [PATCH 248/888] build(deps): update module github.com/avast/retry-go/v4 to v4.6.0 (#542) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c5f4a22b9..09068ce6a 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22 toolchain go1.22.2 require ( - github.com/avast/retry-go/v4 v4.5.1 + github.com/avast/retry-go/v4 v4.6.0 github.com/aws/aws-sdk-go v1.51.11 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 diff --git a/go.sum b/go.sum index 2c0fc71ad..9f9a2db46 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/avast/retry-go/v4 v4.5.1 h1:AxIx0HGi4VZ3I02jr78j5lZ3M6x1E0Ivxa6b0pUUh7o= -github.com/avast/retry-go/v4 v4.5.1/go.mod h1:/sipNsvNB3RRuT5iNcb6h73nw3IBmXJ/H3XrCQYSOpc= +github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= +github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.51.11 h1:El5VypsMIz7sFwAAj/j06JX9UGs4KAbAIEaZ57bNY4s= From ab2b89cd303c4ebce569f8247446f3f81ff08da7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:35:35 +0800 Subject: [PATCH 249/888] build(deps): update module github.com/aws/aws-sdk-go to v1.51.25 (#541) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 09068ce6a..e6c98b9e7 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.51.11 + github.com/aws/aws-sdk-go v1.51.25 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 9f9a2db46..5a72c12dc 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.51.11 h1:El5VypsMIz7sFwAAj/j06JX9UGs4KAbAIEaZ57bNY4s= -github.com/aws/aws-sdk-go v1.51.11/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.25 h1:DjTT8mtmsachhV6yrXR8+yhnG6120dazr720nopRsls= +github.com/aws/aws-sdk-go v1.51.25/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= From 5763deccba02ba532ac4b2a8bde18c151efe2dcb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 16:51:05 +0800 Subject: [PATCH 250/888] build(deps): update module gorm.io/gen to v0.3.26 (#544) --- dal/dao/chii_characters.gen.go | 32 ++++++++-------- dal/dao/chii_crt_cast_index.gen.go | 10 ++--- dal/dao/chii_crt_subject_index.gen.go | 12 +++--- dal/dao/chii_ep_status.gen.go | 12 +++--- dal/dao/chii_episodes.gen.go | 36 +++++++++--------- dal/dao/chii_friends.gen.go | 10 ++--- dal/dao/chii_index.gen.go | 24 ++++++------ dal/dao/chii_index_collects.gen.go | 8 ++-- dal/dao/chii_index_related.gen.go | 18 ++++----- dal/dao/chii_memberfields.gen.go | 12 +++--- dal/dao/chii_members.gen.go | 36 +++++++++--------- dal/dao/chii_notify.gen.go | 16 ++++---- dal/dao/chii_notify_field.gen.go | 8 ++-- dal/dao/chii_oauth_access_tokens.gen.go | 16 ++++---- dal/dao/chii_os_web_sessions.gen.go | 10 ++--- dal/dao/chii_person_cs_index.gen.go | 14 +++---- dal/dao/chii_person_fields.gen.go | 14 +++---- dal/dao/chii_persons.gen.go | 46 +++++++++++------------ dal/dao/chii_pms.gen.go | 24 ++++++------ dal/dao/chii_rev_history.gen.go | 14 +++---- dal/dao/chii_rev_text.gen.go | 4 +- dal/dao/chii_subject_fields.gen.go | 40 ++++++++++---------- dal/dao/chii_subject_interests.gen.go | 40 ++++++++++---------- dal/dao/chii_subject_relations.gen.go | 14 +++---- dal/dao/chii_subject_revisions.gen.go | 28 +++++++------- dal/dao/chii_subjects.gen.go | 50 ++++++++++++------------- dal/dao/chii_usergroup.gen.go | 8 ++-- go.mod | 4 +- go.sum | 8 ++-- 29 files changed, 284 insertions(+), 284 deletions(-) diff --git a/dal/dao/chii_characters.gen.go b/dal/dao/chii_characters.gen.go index e06df5500..e7afdee98 100644 --- a/dal/dao/chii_characters.gen.go +++ b/dal/dao/chii_characters.gen.go @@ -8,22 +8,22 @@ const TableNameCharacter = "chii_characters" // Character mapped from table type Character struct { - ID uint32 `gorm:"column:crt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Name string `gorm:"column:crt_name;type:varchar(255);not null"` - Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null;comment:角色,机体,组织。。"` // 角色,机体,组织。。 - Infobox string `gorm:"column:crt_infobox;type:mediumtext;not null"` - Summary string `gorm:"column:crt_summary;type:mediumtext;not null"` - Img string `gorm:"column:crt_img;type:varchar(255);not null"` - Comment uint32 `gorm:"column:crt_comment;type:mediumint(9) unsigned;not null"` - Collects uint32 `gorm:"column:crt_collects;type:mediumint(8) unsigned;not null"` - Dateline uint32 `gorm:"column:crt_dateline;type:int(10) unsigned;not null"` - Lastpost uint32 `gorm:"column:crt_lastpost;type:int(11) unsigned;not null"` - Lock int8 `gorm:"column:crt_lock;type:tinyint(4);not null"` - ImgAnidb string `gorm:"column:crt_img_anidb;type:varchar(255);not null"` // Deprecated - AnidbID uint32 `gorm:"column:crt_anidb_id;type:mediumint(8) unsigned;not null"` // Deprecated - Ban uint8 `gorm:"column:crt_ban;type:tinyint(3) unsigned;not null"` - Redirect uint32 `gorm:"column:crt_redirect;type:int(10) unsigned;not null"` - Nsfw bool `gorm:"column:crt_nsfw;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:crt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name string `gorm:"column:crt_name;type:varchar(255);not null" json:""` + Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null;comment:角色,机体,组织。。" json:""` // 角色,机体,组织。。 + Infobox string `gorm:"column:crt_infobox;type:mediumtext;not null" json:""` + Summary string `gorm:"column:crt_summary;type:mediumtext;not null" json:""` + Img string `gorm:"column:crt_img;type:varchar(255);not null" json:""` + Comment uint32 `gorm:"column:crt_comment;type:mediumint(9) unsigned;not null" json:""` + Collects uint32 `gorm:"column:crt_collects;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:crt_dateline;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:crt_lastpost;type:int(11) unsigned;not null" json:""` + Lock int8 `gorm:"column:crt_lock;type:tinyint(4);not null" json:""` + ImgAnidb string `gorm:"column:crt_img_anidb;type:varchar(255);not null" json:""` // Deprecated + AnidbID uint32 `gorm:"column:crt_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated + Ban uint8 `gorm:"column:crt_ban;type:tinyint(3) unsigned;not null" json:""` + Redirect uint32 `gorm:"column:crt_redirect;type:int(10) unsigned;not null" json:""` + Nsfw bool `gorm:"column:crt_nsfw;type:tinyint(1) unsigned;not null" json:""` Fields PersonField `gorm:"foreignKey:crt_id;polymorphic:Owner;polymorphicValue:crt" json:"fields"` } diff --git a/dal/dao/chii_crt_cast_index.gen.go b/dal/dao/chii_crt_cast_index.gen.go index 3e3beeace..71ab5eb01 100644 --- a/dal/dao/chii_crt_cast_index.gen.go +++ b/dal/dao/chii_crt_cast_index.gen.go @@ -8,11 +8,11 @@ const TableNameCast = "chii_crt_cast_index" // Cast mapped from table type Cast struct { - CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey"` - PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey"` - SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` - SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(3) unsigned;not null;comment:根据人物归类查询角色,动画,书籍,游戏"` // 根据人物归类查询角色,动画,书籍,游戏 - Summary string `gorm:"column:summary;type:varchar(255);not null;comment:幼年,男乱马,女乱马,变身形态,少女形态。。"` // 幼年,男乱马,女乱马,变身形态,少女形态。。 + CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` + PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey" json:""` + SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` + SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(3) unsigned;not null;comment:根据人物归类查询角色,动画,书籍,游戏" json:""` // 根据人物归类查询角色,动画,书籍,游戏 + Summary string `gorm:"column:summary;type:varchar(255);not null;comment:幼年,男乱马,女乱马,变身形态,少女形态。。" json:""` // 幼年,男乱马,女乱马,变身形态,少女形态。。 Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` Person Person `gorm:"foreignKey:prsn_id;references:prsn_id" json:"person"` diff --git a/dal/dao/chii_crt_subject_index.gen.go b/dal/dao/chii_crt_subject_index.gen.go index ebf8e4f18..09671e218 100644 --- a/dal/dao/chii_crt_subject_index.gen.go +++ b/dal/dao/chii_crt_subject_index.gen.go @@ -8,12 +8,12 @@ const TableNameCharacterSubjects = "chii_crt_subject_index" // CharacterSubjects mapped from table type CharacterSubjects struct { - CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey"` - SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` - SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null"` - CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角"` // 主角,配角 - CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节"` // 可选,角色出场的的章节 - CrtOrder uint8 `gorm:"column:crt_order;type:tinyint(3) unsigned;not null"` + CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` + SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` + SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null" json:""` + CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 + CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节" json:""` // 可选,角色出场的的章节 + CrtOrder uint8 `gorm:"column:crt_order;type:tinyint(3) unsigned;not null" json:""` Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_ep_status.gen.go b/dal/dao/chii_ep_status.gen.go index 4bbf2ab77..5d04a8b8a 100644 --- a/dal/dao/chii_ep_status.gen.go +++ b/dal/dao/chii_ep_status.gen.go @@ -8,12 +8,12 @@ const TableNameEpCollection = "chii_ep_status" // EpCollection mapped from table type EpCollection struct { - ID uint32 `gorm:"column:ep_stt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - UserID uint32 `gorm:"column:ep_stt_uid;type:mediumint(8) unsigned;not null"` - SubjectID uint32 `gorm:"column:ep_stt_sid;type:mediumint(8) unsigned;not null"` - OnPrg bool `gorm:"column:ep_stt_on_prg;type:tinyint(1) unsigned;not null"` - Status []byte `gorm:"column:ep_stt_status;type:mediumtext;not null"` - UpdatedTime uint32 `gorm:"column:ep_stt_lasttouch;type:int(10) unsigned;not null"` + ID uint32 `gorm:"column:ep_stt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + UserID uint32 `gorm:"column:ep_stt_uid;type:mediumint(8) unsigned;not null" json:""` + SubjectID uint32 `gorm:"column:ep_stt_sid;type:mediumint(8) unsigned;not null" json:""` + OnPrg bool `gorm:"column:ep_stt_on_prg;type:tinyint(1) unsigned;not null" json:""` + Status []byte `gorm:"column:ep_stt_status;type:mediumtext;not null" json:""` + UpdatedTime uint32 `gorm:"column:ep_stt_lasttouch;type:int(10) unsigned;not null" json:""` } // TableName EpCollection's table name diff --git a/dal/dao/chii_episodes.gen.go b/dal/dao/chii_episodes.gen.go index d9b4035e5..a442dbd30 100644 --- a/dal/dao/chii_episodes.gen.go +++ b/dal/dao/chii_episodes.gen.go @@ -8,24 +8,24 @@ const TableNameEpisode = "chii_episodes" // Episode mapped from table type Episode struct { - ID uint32 `gorm:"column:ep_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - SubjectID uint32 `gorm:"column:ep_subject_id;type:mediumint(8) unsigned;not null"` - Sort float32 `gorm:"column:ep_sort;type:float unsigned;not null"` - Type uint8 `gorm:"column:ep_type;type:tinyint(1) unsigned;not null"` - Disc uint8 `gorm:"column:ep_disc;type:tinyint(3) unsigned;not null;comment:碟片数"` // 碟片数 - Name string `gorm:"column:ep_name;type:varchar(80);not null"` - NameCn string `gorm:"column:ep_name_cn;type:varchar(80);not null"` - Rate int8 `gorm:"column:ep_rate;type:tinyint(3);not null"` - Duration string `gorm:"column:ep_duration;type:varchar(80);not null"` - Airdate string `gorm:"column:ep_airdate;type:varchar(80);not null"` - Online string `gorm:"column:ep_online;type:mediumtext;not null"` - Comment uint32 `gorm:"column:ep_comment;type:mediumint(8) unsigned;not null"` - Resources uint32 `gorm:"column:ep_resources;type:mediumint(8) unsigned;not null"` - Desc string `gorm:"column:ep_desc;type:mediumtext;not null"` - Dateline uint32 `gorm:"column:ep_dateline;type:int(10) unsigned;not null"` - Lastpost uint32 `gorm:"column:ep_lastpost;type:int(10) unsigned;not null"` - Lock uint8 `gorm:"column:ep_lock;type:tinyint(3) unsigned;not null"` - Ban uint8 `gorm:"column:ep_ban;type:tinyint(3) unsigned;not null"` + ID uint32 `gorm:"column:ep_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + SubjectID uint32 `gorm:"column:ep_subject_id;type:mediumint(8) unsigned;not null" json:""` + Sort float32 `gorm:"column:ep_sort;type:float unsigned;not null" json:""` + Type uint8 `gorm:"column:ep_type;type:tinyint(1) unsigned;not null" json:""` + Disc uint8 `gorm:"column:ep_disc;type:tinyint(3) unsigned;not null;comment:碟片数" json:""` // 碟片数 + Name string `gorm:"column:ep_name;type:varchar(80);not null" json:""` + NameCn string `gorm:"column:ep_name_cn;type:varchar(80);not null" json:""` + Rate int8 `gorm:"column:ep_rate;type:tinyint(3);not null" json:""` + Duration string `gorm:"column:ep_duration;type:varchar(80);not null" json:""` + Airdate string `gorm:"column:ep_airdate;type:varchar(80);not null" json:""` + Online string `gorm:"column:ep_online;type:mediumtext;not null" json:""` + Comment uint32 `gorm:"column:ep_comment;type:mediumint(8) unsigned;not null" json:""` + Resources uint32 `gorm:"column:ep_resources;type:mediumint(8) unsigned;not null" json:""` + Desc string `gorm:"column:ep_desc;type:mediumtext;not null" json:""` + Dateline uint32 `gorm:"column:ep_dateline;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:ep_lastpost;type:int(10) unsigned;not null" json:""` + Lock uint8 `gorm:"column:ep_lock;type:tinyint(3) unsigned;not null" json:""` + Ban uint8 `gorm:"column:ep_ban;type:tinyint(3) unsigned;not null" json:""` Subject Subject `gorm:"foreignKey:ep_subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_friends.gen.go b/dal/dao/chii_friends.gen.go index 1cc232e4e..c8c72a59c 100644 --- a/dal/dao/chii_friends.gen.go +++ b/dal/dao/chii_friends.gen.go @@ -8,11 +8,11 @@ const TableNameFriend = "chii_friends" // Friend mapped from table type Friend struct { - UserID uint32 `gorm:"column:frd_uid;type:mediumint(8) unsigned;not null"` - FriendID uint32 `gorm:"column:frd_fid;type:mediumint(8) unsigned;not null"` - Grade uint8 `gorm:"column:frd_grade;type:tinyint(3) unsigned;not null;default:1"` - CreatedTime uint32 `gorm:"column:frd_dateline;type:int(10) unsigned;not null"` - Description string `gorm:"column:frd_description;type:char(255);not null"` + UserID uint32 `gorm:"column:frd_uid;type:mediumint(8) unsigned;not null" json:""` + FriendID uint32 `gorm:"column:frd_fid;type:mediumint(8) unsigned;not null" json:""` + Grade uint8 `gorm:"column:frd_grade;type:tinyint(3) unsigned;not null;default:1" json:""` + CreatedTime uint32 `gorm:"column:frd_dateline;type:int(10) unsigned;not null" json:""` + Description string `gorm:"column:frd_description;type:char(255);not null" json:""` } // TableName Friend's table name diff --git a/dal/dao/chii_index.gen.go b/dal/dao/chii_index.gen.go index 97daf8a77..16506cb19 100644 --- a/dal/dao/chii_index.gen.go +++ b/dal/dao/chii_index.gen.go @@ -12,18 +12,18 @@ const TableNameIndex = "chii_index" // Index mapped from table type Index struct { - ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id"` // 自动id - Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null"` - Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题"` // 标题 - Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介"` // 简介 - ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数"` // 回复数 - SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数"` // 内含条目总数 - CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数"` // 收藏数 - Stats string `gorm:"column:idx_stats;type:mediumtext;not null"` - CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间"` // 创建时间 - UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null"` - CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID"` // 创建人UID - Deleted soft_delete.DeletedAt `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null;softDelete:flag"` + ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id" json:""` // 自动id + Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null" json:""` + Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题" json:""` // 标题 + Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介" json:""` // 简介 + ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数" json:""` // 回复数 + SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数" json:""` // 内含条目总数 + CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数" json:""` // 收藏数 + Stats string `gorm:"column:idx_stats;type:mediumtext;not null" json:""` + CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间" json:""` // 创建时间 + UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null" json:""` + CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID" json:""` // 创建人UID + Deleted soft_delete.DeletedAt `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null;softDelete:flag" json:""` } // TableName Index's table name diff --git a/dal/dao/chii_index_collects.gen.go b/dal/dao/chii_index_collects.gen.go index 13b3a9df0..8aefc4e17 100644 --- a/dal/dao/chii_index_collects.gen.go +++ b/dal/dao/chii_index_collects.gen.go @@ -8,10 +8,10 @@ const TableNameIndexCollect = "chii_index_collects" // IndexCollect 目录收藏 type IndexCollect struct { - CltID uint32 `gorm:"column:idx_clt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - IndexID uint32 `gorm:"column:idx_clt_mid;type:mediumint(8) unsigned;not null;comment:目录ID"` // 目录ID - UserID uint32 `gorm:"column:idx_clt_uid;type:mediumint(8) unsigned;not null;comment:用户UID"` // 用户UID - CreatedTime uint32 `gorm:"column:idx_clt_dateline;type:int(10) unsigned;not null"` + CltID uint32 `gorm:"column:idx_clt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + IndexID uint32 `gorm:"column:idx_clt_mid;type:mediumint(8) unsigned;not null;comment:目录ID" json:""` // 目录ID + UserID uint32 `gorm:"column:idx_clt_uid;type:mediumint(8) unsigned;not null;comment:用户UID" json:""` // 用户UID + CreatedTime uint32 `gorm:"column:idx_clt_dateline;type:int(10) unsigned;not null" json:""` } // TableName IndexCollect's table name diff --git a/dal/dao/chii_index_related.gen.go b/dal/dao/chii_index_related.gen.go index 48e8a9d14..c3584afe0 100644 --- a/dal/dao/chii_index_related.gen.go +++ b/dal/dao/chii_index_related.gen.go @@ -12,15 +12,15 @@ const TableNameIndexSubject = "chii_index_related" // IndexSubject 目录关联表 type IndexSubject struct { - ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null"` - IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null;comment:关联目录"` // 关联目录 - SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型"` // 关联条目类型 - SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID"` // 关联条目ID - Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null"` - Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null"` - CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null"` - Deleted soft_delete.DeletedAt `gorm:"column:idx_rlt_ban;type:tinyint(1) unsigned;not null;softDelete:flag"` + ID uint32 `gorm:"column:idx_rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Cat int8 `gorm:"column:idx_rlt_cat;type:tinyint(3);not null" json:""` + IndexID uint32 `gorm:"column:idx_rlt_rid;type:mediumint(8) unsigned;not null;comment:关联目录" json:""` // 关联目录 + SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型" json:""` // 关联条目类型 + SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID" json:""` // 关联条目ID + Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null" json:""` + Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null" json:""` + CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null" json:""` + Deleted soft_delete.DeletedAt `gorm:"column:idx_rlt_ban;type:tinyint(1) unsigned;not null;softDelete:flag" json:""` Subject Subject `gorm:"foreignKey:idx_rlt_sid;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_memberfields.gen.go b/dal/dao/chii_memberfields.gen.go index 028fa6175..e65745250 100644 --- a/dal/dao/chii_memberfields.gen.go +++ b/dal/dao/chii_memberfields.gen.go @@ -8,12 +8,12 @@ const TableNameMemberField = "chii_memberfields" // MemberField mapped from table type MemberField struct { - UID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey"` - Site string `gorm:"column:site;type:varchar(75);not null"` - Location string `gorm:"column:location;type:varchar(30);not null"` - Bio string `gorm:"column:bio;type:text;not null"` - Privacy []byte `gorm:"column:privacy;type:mediumtext;not null"` - Blocklist string `gorm:"column:blocklist;type:mediumtext;not null"` + UID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey" json:""` + Site string `gorm:"column:site;type:varchar(75);not null" json:""` + Location string `gorm:"column:location;type:varchar(30);not null" json:""` + Bio string `gorm:"column:bio;type:text;not null" json:""` + Privacy []byte `gorm:"column:privacy;type:mediumtext;not null" json:""` + Blocklist string `gorm:"column:blocklist;type:mediumtext;not null" json:""` } // TableName MemberField's table name diff --git a/dal/dao/chii_members.gen.go b/dal/dao/chii_members.gen.go index 337d2bf3b..b5cdebd31 100644 --- a/dal/dao/chii_members.gen.go +++ b/dal/dao/chii_members.gen.go @@ -12,24 +12,24 @@ const TableNameMember = "chii_members" // Member mapped from table type Member struct { - ID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Username string `gorm:"column:username;type:char(15);not null"` - Nickname string `gorm:"column:nickname;type:varchar(30);not null"` - Avatar string `gorm:"column:avatar;type:varchar(255);not null"` - Groupid uint8 `gorm:"column:groupid;type:smallint(6) unsigned;not null"` - Regdate int64 `gorm:"column:regdate;type:int(10) unsigned;not null"` - Lastvisit uint32 `gorm:"column:lastvisit;type:int(10) unsigned;not null"` - Lastactivity uint32 `gorm:"column:lastactivity;type:int(10) unsigned;not null"` - Lastpost uint32 `gorm:"column:lastpost;type:int(10) unsigned;not null"` - Dateformat string `gorm:"column:dateformat;type:char(10);not null"` - Timeformat bool `gorm:"column:timeformat;type:tinyint(1);not null"` - Timeoffset string `gorm:"column:timeoffset;type:char(4);not null"` - Newpm bool `gorm:"column:newpm;type:tinyint(1);not null"` - NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null;comment:新提醒"` // 新提醒 - Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null"` - PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null"` - Email string `gorm:"column:email;type:char(50);not null"` - Acl string `gorm:"column:acl;type:mediumtext;not null"` + ID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Username string `gorm:"column:username;type:char(15);not null" json:""` + Nickname string `gorm:"column:nickname;type:varchar(30);not null" json:""` + Avatar string `gorm:"column:avatar;type:varchar(255);not null" json:""` + Groupid uint8 `gorm:"column:groupid;type:smallint(6) unsigned;not null" json:""` + Regdate int64 `gorm:"column:regdate;type:int(10) unsigned;not null" json:""` + Lastvisit uint32 `gorm:"column:lastvisit;type:int(10) unsigned;not null" json:""` + Lastactivity uint32 `gorm:"column:lastactivity;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:lastpost;type:int(10) unsigned;not null" json:""` + Dateformat string `gorm:"column:dateformat;type:char(10);not null" json:""` + Timeformat bool `gorm:"column:timeformat;type:tinyint(1);not null" json:""` + Timeoffset string `gorm:"column:timeoffset;type:char(4);not null" json:""` + Newpm bool `gorm:"column:newpm;type:tinyint(1);not null" json:""` + NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null;comment:新提醒" json:""` // 新提醒 + Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null" json:""` + PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null" json:""` + Email string `gorm:"column:email;type:char(50);not null" json:""` + Acl string `gorm:"column:acl;type:mediumtext;not null" json:""` Fields MemberField `gorm:"foreignKey:uid;references:uid" json:"fields"` } diff --git a/dal/dao/chii_notify.gen.go b/dal/dao/chii_notify.gen.go index 6e145f395..cc5d7a1f1 100644 --- a/dal/dao/chii_notify.gen.go +++ b/dal/dao/chii_notify.gen.go @@ -8,14 +8,14 @@ const TableNameNotification = "chii_notify" // Notification mapped from table type Notification struct { - ID uint32 `gorm:"column:nt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - ReceiverID uint32 `gorm:"column:nt_uid;type:mediumint(8) unsigned;not null"` - SenderID uint32 `gorm:"column:nt_from_uid;type:mediumint(8) unsigned;not null"` - Status uint8 `gorm:"column:nt_status;type:tinyint(1) unsigned;not null;default:1"` - Type uint8 `gorm:"column:nt_type;type:tinyint(3) unsigned;not null"` - FieldID uint32 `gorm:"column:nt_mid;type:mediumint(8) unsigned;not null;comment:ID in notify_field"` // ID in notify_field - RelatedID uint32 `gorm:"column:nt_related_id;type:int(10) unsigned;not null"` - CreatedTime uint32 `gorm:"column:nt_dateline;type:int(10) unsigned;not null"` + ID uint32 `gorm:"column:nt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + ReceiverID uint32 `gorm:"column:nt_uid;type:mediumint(8) unsigned;not null" json:""` + SenderID uint32 `gorm:"column:nt_from_uid;type:mediumint(8) unsigned;not null" json:""` + Status uint8 `gorm:"column:nt_status;type:tinyint(1) unsigned;not null;default:1" json:""` + Type uint8 `gorm:"column:nt_type;type:tinyint(3) unsigned;not null" json:""` + FieldID uint32 `gorm:"column:nt_mid;type:mediumint(8) unsigned;not null;comment:ID in notify_field" json:""` // ID in notify_field + RelatedID uint32 `gorm:"column:nt_related_id;type:int(10) unsigned;not null" json:""` + CreatedTime uint32 `gorm:"column:nt_dateline;type:int(10) unsigned;not null" json:""` } // TableName Notification's table name diff --git a/dal/dao/chii_notify_field.gen.go b/dal/dao/chii_notify_field.gen.go index 0f502ba2b..1af835240 100644 --- a/dal/dao/chii_notify_field.gen.go +++ b/dal/dao/chii_notify_field.gen.go @@ -8,10 +8,10 @@ const TableNameNotificationField = "chii_notify_field" // NotificationField mapped from table type NotificationField struct { - ID uint32 `gorm:"column:ntf_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - RelatedType uint8 `gorm:"column:ntf_hash;type:tinyint(3) unsigned;not null"` - RelatedID uint32 `gorm:"column:ntf_rid;type:int(10) unsigned;not null"` - Title string `gorm:"column:ntf_title;type:varchar(255);not null"` + ID uint32 `gorm:"column:ntf_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + RelatedType uint8 `gorm:"column:ntf_hash;type:tinyint(3) unsigned;not null" json:""` + RelatedID uint32 `gorm:"column:ntf_rid;type:int(10) unsigned;not null" json:""` + Title string `gorm:"column:ntf_title;type:varchar(255);not null" json:""` } // TableName NotificationField's table name diff --git a/dal/dao/chii_oauth_access_tokens.gen.go b/dal/dao/chii_oauth_access_tokens.gen.go index 5452ae918..76bc639cd 100644 --- a/dal/dao/chii_oauth_access_tokens.gen.go +++ b/dal/dao/chii_oauth_access_tokens.gen.go @@ -12,14 +12,14 @@ const TableNameAccessToken = "chii_oauth_access_tokens" // AccessToken mapped from table type AccessToken struct { - ID uint32 `gorm:"column:id;type:mediumint(8);primaryKey;autoIncrement:true"` - Type uint8 `gorm:"column:type;type:tinyint(1) unsigned;not null"` - AccessToken string `gorm:"column:access_token;type:varchar(40);not null"` - ClientID string `gorm:"column:client_id;type:varchar(80);not null"` - UserID string `gorm:"column:user_id;type:varchar(80)"` - ExpiredAt time.Time `gorm:"column:expires;type:timestamp;not null;default:CURRENT_TIMESTAMP"` - Scope *string `gorm:"column:scope;type:varchar(4000)"` - Info []byte `gorm:"column:info;type:varchar(255);not null"` + ID uint32 `gorm:"column:id;type:mediumint(8);primaryKey;autoIncrement:true" json:""` + Type uint8 `gorm:"column:type;type:tinyint(1) unsigned;not null" json:""` + AccessToken string `gorm:"column:access_token;type:varchar(40);not null" json:""` + ClientID string `gorm:"column:client_id;type:varchar(80);not null" json:""` + UserID string `gorm:"column:user_id;type:varchar(80)" json:""` + ExpiredAt time.Time `gorm:"column:expires;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:""` + Scope *string `gorm:"column:scope;type:varchar(4000)" json:""` + Info []byte `gorm:"column:info;type:varchar(255);not null" json:""` } // TableName AccessToken's table name diff --git a/dal/dao/chii_os_web_sessions.gen.go b/dal/dao/chii_os_web_sessions.gen.go index 5a72d2fea..c3231d3d8 100644 --- a/dal/dao/chii_os_web_sessions.gen.go +++ b/dal/dao/chii_os_web_sessions.gen.go @@ -8,11 +8,11 @@ const TableNameWebSession = "chii_os_web_sessions" // WebSession mapped from table type WebSession struct { - Key string `gorm:"column:key;type:char(64);primaryKey;comment:session key"` // session key - UserID uint32 `gorm:"column:user_id;type:int(10) unsigned;not null;comment:uint32 user id"` // uint32 user id - Value []byte `gorm:"column:value;type:mediumblob;not null;comment:json encoded session data"` // json encoded session data - CreatedAt int64 `gorm:"column:created_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is created"` // int64 unix timestamp, when session is created - ExpiredAt int64 `gorm:"column:expired_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is expired"` // int64 unix timestamp, when session is expired + Key string `gorm:"column:key;type:char(64);primaryKey;comment:session key" json:""` // session key + UserID uint32 `gorm:"column:user_id;type:int(10) unsigned;not null;comment:uint32 user id" json:""` // uint32 user id + Value []byte `gorm:"column:value;type:mediumblob;not null;comment:json encoded session data" json:""` // json encoded session data + CreatedAt int64 `gorm:"column:created_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is created" json:""` // int64 unix timestamp, when session is created + ExpiredAt int64 `gorm:"column:expired_at;type:bigint(20);not null;comment:int64 unix timestamp, when session is expired" json:""` // int64 unix timestamp, when session is expired } // TableName WebSession's table name diff --git a/dal/dao/chii_person_cs_index.gen.go b/dal/dao/chii_person_cs_index.gen.go index 9a05ec04a..a2d3abe32 100644 --- a/dal/dao/chii_person_cs_index.gen.go +++ b/dal/dao/chii_person_cs_index.gen.go @@ -8,13 +8,13 @@ const TableNamePersonSubjects = "chii_person_cs_index" // PersonSubjects subjects' credits/creator & staff (c&s)index type PersonSubjects struct { - PrsnType string `gorm:"column:prsn_type;type:enum('prsn','crt');primaryKey"` - PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey"` - PrsnPosition uint16 `gorm:"column:prsn_position;type:smallint(5) unsigned;primaryKey;comment:监督,原案,脚本,.."` // 监督,原案,脚本,.. - SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey"` - SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null"` - Summary string `gorm:"column:summary;type:mediumtext;not null"` - PrsnAppearEps string `gorm:"column:prsn_appear_eps;type:mediumtext;not null;comment:可选,人物参与的章节"` // 可选,人物参与的章节 + PrsnType string `gorm:"column:prsn_type;type:enum('prsn','crt');primaryKey" json:""` + PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey" json:""` + PrsnPosition uint16 `gorm:"column:prsn_position;type:smallint(5) unsigned;primaryKey;comment:监督,原案,脚本,.." json:""` // 监督,原案,脚本,.. + SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` + SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null" json:""` + Summary string `gorm:"column:summary;type:mediumtext;not null" json:""` + PrsnAppearEps string `gorm:"column:prsn_appear_eps;type:mediumtext;not null;comment:可选,人物参与的章节" json:""` // 可选,人物参与的章节 Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` Person Person `gorm:"foreignKey:prsn_id;references:prsn_id" json:"person"` } diff --git a/dal/dao/chii_person_fields.gen.go b/dal/dao/chii_person_fields.gen.go index ee92f824f..1614ffff4 100644 --- a/dal/dao/chii_person_fields.gen.go +++ b/dal/dao/chii_person_fields.gen.go @@ -8,13 +8,13 @@ const TableNamePersonField = "chii_person_fields" // PersonField mapped from table type PersonField struct { - OwnerType string `gorm:"column:prsn_cat;type:enum('prsn','crt');primaryKey"` - OwnerID uint32 `gorm:"column:prsn_id;type:int(8) unsigned;primaryKey"` - Gender uint8 `gorm:"column:gender;type:tinyint(4) unsigned;not null"` - Bloodtype uint8 `gorm:"column:bloodtype;type:tinyint(4) unsigned;not null"` - BirthYear uint16 `gorm:"column:birth_year;type:year(4);not null"` - BirthMon uint8 `gorm:"column:birth_mon;type:tinyint(2) unsigned;not null"` - BirthDay uint8 `gorm:"column:birth_day;type:tinyint(2) unsigned;not null"` + OwnerType string `gorm:"column:prsn_cat;type:enum('prsn','crt');primaryKey" json:""` + OwnerID uint32 `gorm:"column:prsn_id;type:int(8) unsigned;primaryKey" json:""` + Gender uint8 `gorm:"column:gender;type:tinyint(4) unsigned;not null" json:""` + Bloodtype uint8 `gorm:"column:bloodtype;type:tinyint(4) unsigned;not null" json:""` + BirthYear uint16 `gorm:"column:birth_year;type:year(4);not null" json:""` + BirthMon uint8 `gorm:"column:birth_mon;type:tinyint(2) unsigned;not null" json:""` + BirthDay uint8 `gorm:"column:birth_day;type:tinyint(2) unsigned;not null" json:""` } // TableName PersonField's table name diff --git a/dal/dao/chii_persons.gen.go b/dal/dao/chii_persons.gen.go index 887a4f2dc..409e3dbcb 100644 --- a/dal/dao/chii_persons.gen.go +++ b/dal/dao/chii_persons.gen.go @@ -8,29 +8,29 @@ const TableNamePerson = "chii_persons" // Person (现实)人物表 type Person struct { - ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Name string `gorm:"column:prsn_name;type:varchar(255);not null"` - Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null;comment:个人,公司,组合"` // 个人,公司,组合 - Infobox string `gorm:"column:prsn_infobox;type:mediumtext;not null"` - Producer bool `gorm:"column:prsn_producer;type:tinyint(1);not null"` - Mangaka bool `gorm:"column:prsn_mangaka;type:tinyint(1);not null"` - Artist bool `gorm:"column:prsn_artist;type:tinyint(1);not null"` - Seiyu bool `gorm:"column:prsn_seiyu;type:tinyint(1);not null"` - Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null;comment:作家"` // 作家 - Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null;comment:绘师"` // 绘师 - Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null;comment:演员"` // 演员 - Summary string `gorm:"column:prsn_summary;type:mediumtext;not null"` - Img string `gorm:"column:prsn_img;type:varchar(255);not null"` - ImgAnidb string `gorm:"column:prsn_img_anidb;type:varchar(255);not null"` // Deprecated - Comment uint32 `gorm:"column:prsn_comment;type:mediumint(9) unsigned;not null"` - Collects uint32 `gorm:"column:prsn_collects;type:mediumint(8) unsigned;not null"` - Dateline uint32 `gorm:"column:prsn_dateline;type:int(10) unsigned;not null"` - Lastpost uint32 `gorm:"column:prsn_lastpost;type:int(11) unsigned;not null"` - Lock int8 `gorm:"column:prsn_lock;type:tinyint(4);not null"` - AnidbID uint32 `gorm:"column:prsn_anidb_id;type:mediumint(8) unsigned;not null"` // Deprecated - Ban uint8 `gorm:"column:prsn_ban;type:tinyint(3) unsigned;not null"` - Redirect uint32 `gorm:"column:prsn_redirect;type:int(10) unsigned;not null"` - Nsfw bool `gorm:"column:prsn_nsfw;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name string `gorm:"column:prsn_name;type:varchar(255);not null" json:""` + Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null;comment:个人,公司,组合" json:""` // 个人,公司,组合 + Infobox string `gorm:"column:prsn_infobox;type:mediumtext;not null" json:""` + Producer bool `gorm:"column:prsn_producer;type:tinyint(1);not null" json:""` + Mangaka bool `gorm:"column:prsn_mangaka;type:tinyint(1);not null" json:""` + Artist bool `gorm:"column:prsn_artist;type:tinyint(1);not null" json:""` + Seiyu bool `gorm:"column:prsn_seiyu;type:tinyint(1);not null" json:""` + Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null;comment:作家" json:""` // 作家 + Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null;comment:绘师" json:""` // 绘师 + Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null;comment:演员" json:""` // 演员 + Summary string `gorm:"column:prsn_summary;type:mediumtext;not null" json:""` + Img string `gorm:"column:prsn_img;type:varchar(255);not null" json:""` + ImgAnidb string `gorm:"column:prsn_img_anidb;type:varchar(255);not null" json:""` // Deprecated + Comment uint32 `gorm:"column:prsn_comment;type:mediumint(9) unsigned;not null" json:""` + Collects uint32 `gorm:"column:prsn_collects;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:prsn_dateline;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:prsn_lastpost;type:int(11) unsigned;not null" json:""` + Lock int8 `gorm:"column:prsn_lock;type:tinyint(4);not null" json:""` + AnidbID uint32 `gorm:"column:prsn_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated + Ban uint8 `gorm:"column:prsn_ban;type:tinyint(3) unsigned;not null" json:""` + Redirect uint32 `gorm:"column:prsn_redirect;type:int(10) unsigned;not null" json:""` + Nsfw bool `gorm:"column:prsn_nsfw;type:tinyint(1) unsigned;not null" json:""` Fields PersonField `gorm:"foreignKey:prsn_id;polymorphic:Owner;polymorphicValue:prsn" json:"fields"` } diff --git a/dal/dao/chii_pms.gen.go b/dal/dao/chii_pms.gen.go index 637eb24b3..1b648a610 100644 --- a/dal/dao/chii_pms.gen.go +++ b/dal/dao/chii_pms.gen.go @@ -8,18 +8,18 @@ const TableNamePrivateMessage = "chii_pms" // PrivateMessage mapped from table type PrivateMessage struct { - ID uint32 `gorm:"column:msg_id;type:int(10) unsigned;primaryKey;autoIncrement:true"` - SenderID uint32 `gorm:"column:msg_sid;type:mediumint(8) unsigned;not null"` - ReceiverID uint32 `gorm:"column:msg_rid;type:mediumint(8) unsigned;not null"` - Folder string `gorm:"column:msg_folder;type:enum('inbox','outbox');not null;default:inbox"` - New bool `gorm:"column:msg_new;type:tinyint(1);not null"` - Title string `gorm:"column:msg_title;type:varchar(75);not null"` - CreatedTime uint32 `gorm:"column:msg_dateline;type:int(10) unsigned;not null"` - Content string `gorm:"column:msg_message;type:text;not null"` - MainMessageID uint32 `gorm:"column:msg_related_main;type:int(10) unsigned;not null"` - RelatedMessageID uint32 `gorm:"column:msg_related;type:int(10) unsigned;not null"` - DeletedBySender bool `gorm:"column:msg_sdeleted;type:tinyint(1) unsigned;not null"` - DeletedByReceiver bool `gorm:"column:msg_rdeleted;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:msg_id;type:int(10) unsigned;primaryKey;autoIncrement:true" json:""` + SenderID uint32 `gorm:"column:msg_sid;type:mediumint(8) unsigned;not null" json:""` + ReceiverID uint32 `gorm:"column:msg_rid;type:mediumint(8) unsigned;not null" json:""` + Folder string `gorm:"column:msg_folder;type:enum('inbox','outbox');not null;default:inbox" json:""` + New bool `gorm:"column:msg_new;type:tinyint(1);not null" json:""` + Title string `gorm:"column:msg_title;type:varchar(75);not null" json:""` + CreatedTime uint32 `gorm:"column:msg_dateline;type:int(10) unsigned;not null" json:""` + Content string `gorm:"column:msg_message;type:text;not null" json:""` + MainMessageID uint32 `gorm:"column:msg_related_main;type:int(10) unsigned;not null" json:""` + RelatedMessageID uint32 `gorm:"column:msg_related;type:int(10) unsigned;not null" json:""` + DeletedBySender bool `gorm:"column:msg_sdeleted;type:tinyint(1) unsigned;not null" json:""` + DeletedByReceiver bool `gorm:"column:msg_rdeleted;type:tinyint(1) unsigned;not null" json:""` } // TableName PrivateMessage's table name diff --git a/dal/dao/chii_rev_history.gen.go b/dal/dao/chii_rev_history.gen.go index ed60f532d..a4ed6a433 100644 --- a/dal/dao/chii_rev_history.gen.go +++ b/dal/dao/chii_rev_history.gen.go @@ -8,13 +8,13 @@ const TableNameRevisionHistory = "chii_rev_history" // RevisionHistory mapped from table type RevisionHistory struct { - ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;comment:条目,角色,人物"` // 条目,角色,人物 - Mid uint32 `gorm:"column:rev_mid;type:mediumint(8) unsigned;not null;comment:对应条目,人物的ID"` // 对应条目,人物的ID - TextID uint32 `gorm:"column:rev_text_id;type:mediumint(9) unsigned;not null"` - CreatedTime uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null"` - CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null"` - Summary string `gorm:"column:rev_edit_summary;type:varchar(200);not null"` + ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;comment:条目,角色,人物" json:""` // 条目,角色,人物 + Mid uint32 `gorm:"column:rev_mid;type:mediumint(8) unsigned;not null;comment:对应条目,人物的ID" json:""` // 对应条目,人物的ID + TextID uint32 `gorm:"column:rev_text_id;type:mediumint(9) unsigned;not null" json:""` + CreatedTime uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null" json:""` + CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null" json:""` + Summary string `gorm:"column:rev_edit_summary;type:varchar(200);not null" json:""` } // TableName RevisionHistory's table name diff --git a/dal/dao/chii_rev_text.gen.go b/dal/dao/chii_rev_text.gen.go index a2a896c06..ef850b57d 100644 --- a/dal/dao/chii_rev_text.gen.go +++ b/dal/dao/chii_rev_text.gen.go @@ -8,8 +8,8 @@ const TableNameRevisionText = "chii_rev_text" // RevisionText mapped from table type RevisionText struct { - TextID uint32 `gorm:"column:rev_text_id;type:mediumint(9) unsigned;primaryKey;autoIncrement:true"` - Text []byte `gorm:"column:rev_text;type:mediumblob;not null"` + TextID uint32 `gorm:"column:rev_text_id;type:mediumint(9) unsigned;primaryKey;autoIncrement:true" json:""` + Text []byte `gorm:"column:rev_text;type:mediumblob;not null" json:""` } // TableName RevisionText's table name diff --git a/dal/dao/chii_subject_fields.gen.go b/dal/dao/chii_subject_fields.gen.go index 3131f1502..b50921a6c 100644 --- a/dal/dao/chii_subject_fields.gen.go +++ b/dal/dao/chii_subject_fields.gen.go @@ -12,26 +12,26 @@ const TableNameSubjectField = "chii_subject_fields" // SubjectField mapped from table type SubjectField struct { - Sid uint32 `gorm:"column:field_sid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Tid uint16 `gorm:"column:field_tid;type:smallint(6) unsigned;not null"` - Tags []byte `gorm:"column:field_tags;type:mediumtext;not null"` - Rate1 uint32 `gorm:"column:field_rate_1;type:mediumint(8) unsigned;not null"` - Rate2 uint32 `gorm:"column:field_rate_2;type:mediumint(8) unsigned;not null"` - Rate3 uint32 `gorm:"column:field_rate_3;type:mediumint(8) unsigned;not null"` - Rate4 uint32 `gorm:"column:field_rate_4;type:mediumint(8) unsigned;not null"` - Rate5 uint32 `gorm:"column:field_rate_5;type:mediumint(8) unsigned;not null"` - Rate6 uint32 `gorm:"column:field_rate_6;type:mediumint(8) unsigned;not null"` - Rate7 uint32 `gorm:"column:field_rate_7;type:mediumint(8) unsigned;not null"` - Rate8 uint32 `gorm:"column:field_rate_8;type:mediumint(8) unsigned;not null"` - Rate9 uint32 `gorm:"column:field_rate_9;type:mediumint(8) unsigned;not null"` - Rate10 uint32 `gorm:"column:field_rate_10;type:mediumint(8) unsigned;not null"` - Airtime uint8 `gorm:"column:field_airtime;type:tinyint(1) unsigned;not null"` - Rank uint32 `gorm:"column:field_rank;type:int(10) unsigned;not null"` - Year int32 `gorm:"column:field_year;type:year(4);not null;comment:放送年份"` // 放送年份 - Mon int8 `gorm:"column:field_mon;type:tinyint(2);not null;comment:放送月份"` // 放送月份 - WeekDay int8 `gorm:"column:field_week_day;type:tinyint(1);not null;comment:放送日(星期X)"` // 放送日(星期X) - Date time.Time `gorm:"column:field_date;type:date;not null;comment:放送日期"` // 放送日期 - Redirect uint32 `gorm:"column:field_redirect;type:mediumint(8) unsigned;not null"` + Sid uint32 `gorm:"column:field_sid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Tid uint16 `gorm:"column:field_tid;type:smallint(6) unsigned;not null" json:""` + Tags []byte `gorm:"column:field_tags;type:mediumtext;not null" json:""` + Rate1 uint32 `gorm:"column:field_rate_1;type:mediumint(8) unsigned;not null" json:""` + Rate2 uint32 `gorm:"column:field_rate_2;type:mediumint(8) unsigned;not null" json:""` + Rate3 uint32 `gorm:"column:field_rate_3;type:mediumint(8) unsigned;not null" json:""` + Rate4 uint32 `gorm:"column:field_rate_4;type:mediumint(8) unsigned;not null" json:""` + Rate5 uint32 `gorm:"column:field_rate_5;type:mediumint(8) unsigned;not null" json:""` + Rate6 uint32 `gorm:"column:field_rate_6;type:mediumint(8) unsigned;not null" json:""` + Rate7 uint32 `gorm:"column:field_rate_7;type:mediumint(8) unsigned;not null" json:""` + Rate8 uint32 `gorm:"column:field_rate_8;type:mediumint(8) unsigned;not null" json:""` + Rate9 uint32 `gorm:"column:field_rate_9;type:mediumint(8) unsigned;not null" json:""` + Rate10 uint32 `gorm:"column:field_rate_10;type:mediumint(8) unsigned;not null" json:""` + Airtime uint8 `gorm:"column:field_airtime;type:tinyint(1) unsigned;not null" json:""` + Rank uint32 `gorm:"column:field_rank;type:int(10) unsigned;not null" json:""` + Year int32 `gorm:"column:field_year;type:year(4);not null;comment:放送年份" json:""` // 放送年份 + Mon int8 `gorm:"column:field_mon;type:tinyint(2);not null;comment:放送月份" json:""` // 放送月份 + WeekDay int8 `gorm:"column:field_week_day;type:tinyint(1);not null;comment:放送日(星期X)" json:""` // 放送日(星期X) + Date time.Time `gorm:"column:field_date;type:date;not null;comment:放送日期" json:""` // 放送日期 + Redirect uint32 `gorm:"column:field_redirect;type:mediumint(8) unsigned;not null" json:""` } // TableName SubjectField's table name diff --git a/dal/dao/chii_subject_interests.gen.go b/dal/dao/chii_subject_interests.gen.go index 68e29aa19..5dc2d9ae1 100644 --- a/dal/dao/chii_subject_interests.gen.go +++ b/dal/dao/chii_subject_interests.gen.go @@ -12,26 +12,26 @@ const TableNameSubjectCollection = "chii_subject_interests" // SubjectCollection mapped from table type SubjectCollection struct { - ID uint32 `gorm:"column:interest_id;type:int(10) unsigned;primaryKey;autoIncrement:true"` - UserID uint32 `gorm:"column:interest_uid;type:mediumint(8) unsigned;not null"` - SubjectID uint32 `gorm:"column:interest_subject_id;type:mediumint(8) unsigned;not null"` - SubjectType uint8 `gorm:"column:interest_subject_type;type:smallint(6) unsigned;not null"` - Rate uint8 `gorm:"column:interest_rate;type:tinyint(3) unsigned;not null"` - Type uint8 `gorm:"column:interest_type;type:tinyint(1) unsigned;not null"` - HasComment bool `gorm:"column:interest_has_comment;type:tinyint(1) unsigned;not null"` - Comment utiltype.HTMLEscapedString `gorm:"column:interest_comment;type:mediumtext;not null"` - Tag string `gorm:"column:interest_tag;type:mediumtext;not null"` - EpStatus uint32 `gorm:"column:interest_ep_status;type:mediumint(8) unsigned;not null"` - VolStatus uint32 `gorm:"column:interest_vol_status;type:mediumint(8) unsigned;not null;comment:卷数"` // 卷数 - WishTime uint32 `gorm:"column:interest_wish_dateline;type:int(10) unsigned;not null"` - DoingTime uint32 `gorm:"column:interest_doing_dateline;type:int(10) unsigned;not null"` - DoneTime uint32 `gorm:"column:interest_collect_dateline;type:int(10) unsigned;not null"` - OnHoldTime uint32 `gorm:"column:interest_on_hold_dateline;type:int(10) unsigned;not null"` - DroppedTime uint32 `gorm:"column:interest_dropped_dateline;type:int(10) unsigned;not null"` - CreateIP string `gorm:"column:interest_create_ip;type:char(15);not null"` - LastUpdateIP string `gorm:"column:interest_lasttouch_ip;type:char(15);not null"` - UpdatedTime uint32 `gorm:"column:interest_lasttouch;type:int(10) unsigned;not null"` - Private uint8 `gorm:"column:interest_private;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:interest_id;type:int(10) unsigned;primaryKey;autoIncrement:true" json:""` + UserID uint32 `gorm:"column:interest_uid;type:mediumint(8) unsigned;not null" json:""` + SubjectID uint32 `gorm:"column:interest_subject_id;type:mediumint(8) unsigned;not null" json:""` + SubjectType uint8 `gorm:"column:interest_subject_type;type:smallint(6) unsigned;not null" json:""` + Rate uint8 `gorm:"column:interest_rate;type:tinyint(3) unsigned;not null" json:""` + Type uint8 `gorm:"column:interest_type;type:tinyint(1) unsigned;not null" json:""` + HasComment bool `gorm:"column:interest_has_comment;type:tinyint(1) unsigned;not null" json:""` + Comment utiltype.HTMLEscapedString `gorm:"column:interest_comment;type:mediumtext;not null" json:""` + Tag string `gorm:"column:interest_tag;type:mediumtext;not null" json:""` + EpStatus uint32 `gorm:"column:interest_ep_status;type:mediumint(8) unsigned;not null" json:""` + VolStatus uint32 `gorm:"column:interest_vol_status;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 + WishTime uint32 `gorm:"column:interest_wish_dateline;type:int(10) unsigned;not null" json:""` + DoingTime uint32 `gorm:"column:interest_doing_dateline;type:int(10) unsigned;not null" json:""` + DoneTime uint32 `gorm:"column:interest_collect_dateline;type:int(10) unsigned;not null" json:""` + OnHoldTime uint32 `gorm:"column:interest_on_hold_dateline;type:int(10) unsigned;not null" json:""` + DroppedTime uint32 `gorm:"column:interest_dropped_dateline;type:int(10) unsigned;not null" json:""` + CreateIP string `gorm:"column:interest_create_ip;type:char(15);not null" json:""` + LastUpdateIP string `gorm:"column:interest_lasttouch_ip;type:char(15);not null" json:""` + UpdatedTime uint32 `gorm:"column:interest_lasttouch;type:int(10) unsigned;not null" json:""` + Private uint8 `gorm:"column:interest_private;type:tinyint(1) unsigned;not null" json:""` } // TableName SubjectCollection's table name diff --git a/dal/dao/chii_subject_relations.gen.go b/dal/dao/chii_subject_relations.gen.go index 8c21911ae..dd09b6c40 100644 --- a/dal/dao/chii_subject_relations.gen.go +++ b/dal/dao/chii_subject_relations.gen.go @@ -8,13 +8,13 @@ const TableNameSubjectRelation = "chii_subject_relations" // SubjectRelation 条目关联表 type SubjectRelation struct { - SubjectID uint32 `gorm:"column:rlt_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联主 ID"` // 关联主 ID - SubjectTypeID uint8 `gorm:"column:rlt_subject_type_id;type:tinyint(3) unsigned;not null"` - RelationType uint16 `gorm:"column:rlt_relation_type;type:smallint(5) unsigned;not null;comment:关联类型"` // 关联类型 - RelatedSubjectID uint32 `gorm:"column:rlt_related_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联目标 ID"` // 关联目标 ID - RelatedSubjectTypeID uint8 `gorm:"column:rlt_related_subject_type_id;type:tinyint(3) unsigned;not null;comment:关联目标类型"` // 关联目标类型 - ViceVersa bool `gorm:"column:rlt_vice_versa;type:tinyint(1) unsigned;primaryKey"` - Order uint8 `gorm:"column:rlt_order;type:tinyint(3) unsigned;not null;comment:关联排序"` // 关联排序 + SubjectID uint32 `gorm:"column:rlt_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联主 ID" json:""` // 关联主 ID + SubjectTypeID uint8 `gorm:"column:rlt_subject_type_id;type:tinyint(3) unsigned;not null" json:""` + RelationType uint16 `gorm:"column:rlt_relation_type;type:smallint(5) unsigned;not null;comment:关联类型" json:""` // 关联类型 + RelatedSubjectID uint32 `gorm:"column:rlt_related_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联目标 ID" json:""` // 关联目标 ID + RelatedSubjectTypeID uint8 `gorm:"column:rlt_related_subject_type_id;type:tinyint(3) unsigned;not null;comment:关联目标类型" json:""` // 关联目标类型 + ViceVersa bool `gorm:"column:rlt_vice_versa;type:tinyint(1) unsigned;primaryKey" json:""` + Order uint8 `gorm:"column:rlt_order;type:tinyint(3) unsigned;not null;comment:关联排序" json:""` // 关联排序 Subject Subject `gorm:"foreignKey:rlt_related_subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_subject_revisions.gen.go b/dal/dao/chii_subject_revisions.gen.go index 1f20b33d7..8c1ad4d55 100644 --- a/dal/dao/chii_subject_revisions.gen.go +++ b/dal/dao/chii_subject_revisions.gen.go @@ -8,20 +8,20 @@ const TableNameSubjectRevision = "chii_subject_revisions" // SubjectRevision mapped from table type SubjectRevision struct { - ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1;comment:修订类型"` // 修订类型 - SubjectID uint32 `gorm:"column:rev_subject_id;type:mediumint(8) unsigned;not null"` - TypeID uint16 `gorm:"column:rev_type_id;type:smallint(6) unsigned;not null"` - CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null"` - Dateline uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null"` - Name string `gorm:"column:rev_name;type:varchar(80);not null"` - NameCN string `gorm:"column:rev_name_cn;type:varchar(80);not null"` - FieldInfobox string `gorm:"column:rev_field_infobox;type:mediumtext;not null"` - FieldSummary string `gorm:"column:rev_field_summary;type:mediumtext;not null"` - VoteField string `gorm:"column:rev_vote_field;type:mediumtext;not null"` - FieldEps uint32 `gorm:"column:rev_field_eps;type:mediumint(8) unsigned;not null"` - EditSummary string `gorm:"column:rev_edit_summary;type:varchar(200);not null"` - Platform uint16 `gorm:"column:rev_platform;type:smallint(6) unsigned;not null"` + ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1;comment:修订类型" json:""` // 修订类型 + SubjectID uint32 `gorm:"column:rev_subject_id;type:mediumint(8) unsigned;not null" json:""` + TypeID uint16 `gorm:"column:rev_type_id;type:smallint(6) unsigned;not null" json:""` + CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null" json:""` + Name string `gorm:"column:rev_name;type:varchar(80);not null" json:""` + NameCN string `gorm:"column:rev_name_cn;type:varchar(80);not null" json:""` + FieldInfobox string `gorm:"column:rev_field_infobox;type:mediumtext;not null" json:""` + FieldSummary string `gorm:"column:rev_field_summary;type:mediumtext;not null" json:""` + VoteField string `gorm:"column:rev_vote_field;type:mediumtext;not null" json:""` + FieldEps uint32 `gorm:"column:rev_field_eps;type:mediumint(8) unsigned;not null" json:""` + EditSummary string `gorm:"column:rev_edit_summary;type:varchar(200);not null" json:""` + Platform uint16 `gorm:"column:rev_platform;type:smallint(6) unsigned;not null" json:""` Subject Subject `gorm:"foreignKey:rev_subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_subjects.gen.go b/dal/dao/chii_subjects.gen.go index be5c2f240..47e26d911 100644 --- a/dal/dao/chii_subjects.gen.go +++ b/dal/dao/chii_subjects.gen.go @@ -8,31 +8,31 @@ const TableNameSubject = "chii_subjects" // Subject mapped from table type Subject struct { - ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null"` - Name string `gorm:"column:subject_name;type:varchar(80);not null"` - NameCN string `gorm:"column:subject_name_cn;type:varchar(80);not null"` - UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb"` // isbn / imdb - Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null"` - Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null"` - Image string `gorm:"column:subject_image;type:varchar(255);not null"` - Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null"` - Infobox string `gorm:"column:field_infobox;type:mediumtext;not null"` - Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary"` // summary - Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary"` // author summary - Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数"` // 卷数 - Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null"` - Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null"` - Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null"` - Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null"` - OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数"` // 搁置人数 - Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数"` // 抛弃人数 - Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null"` - SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null"` - IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null"` - Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null"` - Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null"` - Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null"` + ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null" json:""` + Name string `gorm:"column:subject_name;type:varchar(80);not null" json:""` + NameCN string `gorm:"column:subject_name_cn;type:varchar(80);not null" json:""` + UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb" json:""` // isbn / imdb + Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null" json:""` + Image string `gorm:"column:subject_image;type:varchar(255);not null" json:""` + Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null" json:""` + Infobox string `gorm:"column:field_infobox;type:mediumtext;not null" json:""` + Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary" json:""` // summary + Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary" json:""` // author summary + Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 + Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null" json:""` + Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null" json:""` + Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null" json:""` + Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null" json:""` + OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数" json:""` // 搁置人数 + Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数" json:""` // 抛弃人数 + Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null" json:""` + SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null" json:""` + IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null" json:""` + Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null" json:""` + Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null" json:""` + Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null" json:""` Fields SubjectField `gorm:"foreignKey:subject_id;references:field_sid" json:"fields"` } diff --git a/dal/dao/chii_usergroup.gen.go b/dal/dao/chii_usergroup.gen.go index f56211013..8ec1230b3 100644 --- a/dal/dao/chii_usergroup.gen.go +++ b/dal/dao/chii_usergroup.gen.go @@ -8,10 +8,10 @@ const TableNameUserGroup = "chii_usergroup" // UserGroup mapped from table type UserGroup struct { - ID uint8 `gorm:"column:usr_grp_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true"` - Name string `gorm:"column:usr_grp_name;type:varchar(255);not null"` - Perm []byte `gorm:"column:usr_grp_perm;type:mediumtext;not null"` - Dateline uint32 `gorm:"column:usr_grp_dateline;type:int(10) unsigned;not null"` + ID uint8 `gorm:"column:usr_grp_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name string `gorm:"column:usr_grp_name;type:varchar(255);not null" json:""` + Perm []byte `gorm:"column:usr_grp_perm;type:mediumtext;not null" json:""` + Dateline uint32 `gorm:"column:usr_grp_dateline;type:int(10) unsigned;not null" json:""` } // TableName UserGroup's table name diff --git a/go.mod b/go.mod index e6c98b9e7..7016e2272 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.6 - gorm.io/gen v0.3.25 + gorm.io/gen v0.3.26 gorm.io/gorm v1.25.9 gorm.io/plugin/dbresolver v1.5.1 gorm.io/plugin/soft_delete v1.2.1 @@ -93,7 +93,7 @@ require ( golang.org/x/sys v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.15.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/go.sum b/go.sum index 5a72c12dc..3ef0e73ef 100644 --- a/go.sum +++ b/go.sum @@ -627,8 +627,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -707,8 +707,8 @@ gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= -gorm.io/gen v0.3.25 h1:uT/1YfvcnYUdike4XPYyi89FEnVHZF115GUXQm2Sfug= -gorm.io/gen v0.3.25/go.mod h1:p+t0iCKjaPz+pKRxcx63nXdRgnrah/QD2l92747ihyA= +gorm.io/gen v0.3.26 h1:sFf1j7vNStimPRRAtH4zz5NiHM+1dr6eA9aaRdplyhY= +gorm.io/gen v0.3.26/go.mod h1:a5lq5y3w4g5LMxBcw0wnO6tYUCdNutWODq5LrIt75LE= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= From 39728b3e6726cdd4d7490fd19e319fd53bcd24c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 02:10:16 +0800 Subject: [PATCH 251/888] ci: update requarks/changelog-action action to v1.10.2 (#550) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 65a433ebb..af87e55df 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,7 +15,7 @@ jobs: - name: Generate Changelog id: changelog - uses: requarks/changelog-action@v1.10.1 + uses: requarks/changelog-action@v1.10.2 with: token: ${{ github.token }} tag: ${{ github.ref_name }} From bd5c8f58aa02d05baffac609a1b967d5ed13395c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 03:00:55 +0800 Subject: [PATCH 252/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^11.6.1 (#551) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 324d3a53f..be510e9b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.5.5", + "@apidevtools/json-schema-ref-parser": "^11.6.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -19,9 +19,9 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.5.5", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.5.tgz", - "integrity": "sha512-hv/aXDILyroHioVW27etFMV+IX6FyNn41YwbeGIAt5h/7fUTQvHI5w3ols8qYAT8aQt3kzexq5ZwxFDxNHIhdQ==", + "version": "11.6.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz", + "integrity": "sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.5.5", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.5.tgz", - "integrity": "sha512-hv/aXDILyroHioVW27etFMV+IX6FyNn41YwbeGIAt5h/7fUTQvHI5w3ols8qYAT8aQt3kzexq5ZwxFDxNHIhdQ==", + "version": "11.6.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz", + "integrity": "sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", diff --git a/package.json b/package.json index 1a8fa68f7..068e5c511 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.5.5", + "@apidevtools/json-schema-ref-parser": "^11.6.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From 167fcba939d24f671e674d61d69a04712844da62 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 03:01:03 +0800 Subject: [PATCH 253/888] build(deps): update module github.com/go-playground/validator/v10 to v10.20.0 (#552) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7016e2272..b1944cf96 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.19.0 + github.com/go-playground/validator/v10 v10.20.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.12.0 github.com/go-sql-driver/mysql v1.8.1 diff --git a/go.sum b/go.sum index 3ef0e73ef..7206f9228 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= -github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= From 0bfa96dc439286668eec09bbd0dd7818384a9d18 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 06:26:45 +0800 Subject: [PATCH 254/888] build(deps): update module github.com/aws/aws-sdk-go to v1.51.32 (#547) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1944cf96..e9bea734d 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.51.25 + github.com/aws/aws-sdk-go v1.51.32 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 7206f9228..64b0f5095 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.51.25 h1:DjTT8mtmsachhV6yrXR8+yhnG6120dazr720nopRsls= -github.com/aws/aws-sdk-go v1.51.25/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.32 h1:A6mPui7QP4mwmovyzgtdedbRbNur1Iu0/El7hBWNHms= +github.com/aws/aws-sdk-go v1.51.32/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= From 84df58dcad44161bfb3f0a4cd94f4b196be6478c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 07:51:46 +0800 Subject: [PATCH 255/888] build(deps): update module google.golang.org/protobuf to v1.34.0 (#553) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e9bea734d..ec498f43f 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( golang.org/x/crypto v0.22.0 google.golang.org/grpc v1.63.2 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.33.0 + google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.6 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index 64b0f5095..ec6649756 100644 --- a/go.sum +++ b/go.sum @@ -667,8 +667,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 79cc36ee4b33df5864909c867c45384053a1734a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 07:51:50 +0800 Subject: [PATCH 256/888] build(deps): update module gorm.io/gorm to v1.25.10 (#549) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ec498f43f..d20e8f070 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.6 gorm.io/gen v0.3.26 - gorm.io/gorm v1.25.9 + gorm.io/gorm v1.25.10 gorm.io/plugin/dbresolver v1.5.1 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index ec6649756..49e1c0c20 100644 --- a/go.sum +++ b/go.sum @@ -716,8 +716,8 @@ gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqw gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= -gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= +gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.5.1 h1:s9Dj9f7r+1rE3nx/Ywzc85nXptUEaeOO0pt27xdopM8= From e9073e6959b3f0ab1a9125efc5c7cd0efffaf815 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 07:51:56 +0800 Subject: [PATCH 257/888] build(deps): update module go.uber.org/fx to v1.21.1 (#548) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d20e8f070..403d2617d 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.13 - go.uber.org/fx v1.21.0 + go.uber.org/fx v1.21.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.22.0 google.golang.org/grpc v1.63.2 diff --git a/go.sum b/go.sum index 49e1c0c20..541d8f38a 100644 --- a/go.sum +++ b/go.sum @@ -463,8 +463,8 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= -go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/fx v1.21.1 h1:RqBh3cYdzZS0uqwVeEjOX2p73dddLpym315myy/Bpb0= +go.uber.org/fx v1.21.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From 0bda81af435aceb44eaf16462edac2c2f1a63a1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 May 2024 07:52:17 +0800 Subject: [PATCH 258/888] chore(deps): update gcr.io/distroless/static docker digest to 4197211 (#546) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 8a0168bb7..c318a35b6 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:6d31326376a7834b106f281b04f67b5d015c31732f594930f2ea81365f99d60c +FROM gcr.io/distroless/static@sha256:41972110a1c1a5c0b6adb283e8aa092c43c31f7c5d79b8656fbffff2c3e61f05 ENTRYPOINT ["/app/chii.exe"] From d085c24d51eaf87c9eacd63f993803771d8b1095 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Wed, 15 May 2024 01:22:30 +0800 Subject: [PATCH 259/888] chore: upgrade mockery to latest 2.43.0 (#557) --- etc/mock.task.yaml | 2 +- internal/mocks/AuthRepo.go | 39 +++++++++++++++--- internal/mocks/AuthService.go | 43 +++++++++++++++++--- internal/mocks/CharacterRepo.go | 31 ++++++++++++--- internal/mocks/CollectionRepo.go | 43 +++++++++++++++++--- internal/mocks/EpisodeRepo.go | 27 ++++++++++--- internal/mocks/IndexRepo.go | 55 +++++++++++++++++++++++--- internal/mocks/NotificationRepo.go | 15 ++++--- internal/mocks/PersonRepo.go | 27 ++++++++++--- internal/mocks/PersonService.go | 27 ++++++++++--- internal/mocks/PrivateMessageRepo.go | 43 +++++++++++++++++--- internal/mocks/RedisCache.go | 23 ++++++++--- internal/mocks/RevisionRepo.go | 59 +++++++++++++++++++++++++--- internal/mocks/SearchClient.go | 23 ++++++++--- internal/mocks/SessionManager.go | 27 ++++++++++--- internal/mocks/SessionRepo.go | 27 ++++++++++--- internal/mocks/SubjectCachedRepo.go | 35 ++++++++++++++--- internal/mocks/SubjectRepo.go | 35 ++++++++++++++--- internal/mocks/TimeLineService.go | 23 ++++++++--- internal/mocks/UserRepo.go | 35 ++++++++++++++--- 20 files changed, 524 insertions(+), 115 deletions(-) diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index a6c8b278d..57ef2ef06 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -33,7 +33,7 @@ tasks: install:mockery: desc: Installs mockery vars: - MOCKERY_VERSION: v2.26.1 + MOCKERY_VERSION: v2.43.0 env: GOBIN: "{{.BIN}}" status: diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index f0f1c5324..7a7b466f4 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -29,6 +29,10 @@ func (_m *AuthRepo) EXPECT() *AuthRepo_Expecter { func (_m *AuthRepo) CreateAccessToken(ctx context.Context, userID uint32, name string, expiration time.Duration) (string, error) { ret := _m.Called(ctx, userID, name, expiration) + if len(ret) == 0 { + panic("no return value specified for CreateAccessToken") + } + var r0 string var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) (string, error)); ok { @@ -84,6 +88,10 @@ func (_c *AuthRepo_CreateAccessToken_Call) RunAndReturn(run func(context.Context func (_m *AuthRepo) DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) { ret := _m.Called(ctx, tokenID) + if len(ret) == 0 { + panic("no return value specified for DeleteAccessToken") + } + var r0 bool var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (bool, error)); ok { @@ -137,6 +145,10 @@ func (_c *AuthRepo_DeleteAccessToken_Call) RunAndReturn(run func(context.Context func (_m *AuthRepo) GetByEmail(ctx context.Context, email string) (auth.UserInfo, []byte, error) { ret := _m.Called(ctx, email) + if len(ret) == 0 { + panic("no return value specified for GetByEmail") + } + var r0 auth.UserInfo var r1 []byte var r2 error @@ -199,6 +211,10 @@ func (_c *AuthRepo_GetByEmail_Call) RunAndReturn(run func(context.Context, strin func (_m *AuthRepo) GetByToken(ctx context.Context, token string) (auth.UserInfo, error) { ret := _m.Called(ctx, token) + if len(ret) == 0 { + panic("no return value specified for GetByToken") + } + var r0 auth.UserInfo var r1 error if rf, ok := ret.Get(0).(func(context.Context, string) (auth.UserInfo, error)); ok { @@ -252,6 +268,10 @@ func (_c *AuthRepo_GetByToken_Call) RunAndReturn(run func(context.Context, strin func (_m *AuthRepo) GetPermission(ctx context.Context, groupID uint8) (auth.Permission, error) { ret := _m.Called(ctx, groupID) + if len(ret) == 0 { + panic("no return value specified for GetPermission") + } + var r0 auth.Permission var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint8) (auth.Permission, error)); ok { @@ -305,6 +325,10 @@ func (_c *AuthRepo_GetPermission_Call) RunAndReturn(run func(context.Context, ui func (_m *AuthRepo) GetTokenByID(ctx context.Context, id uint32) (auth.AccessToken, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for GetTokenByID") + } + var r0 auth.AccessToken var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.AccessToken, error)); ok { @@ -358,6 +382,10 @@ func (_c *AuthRepo_GetTokenByID_Call) RunAndReturn(run func(context.Context, uin func (_m *AuthRepo) ListAccessToken(ctx context.Context, userID uint32) ([]auth.AccessToken, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for ListAccessToken") + } + var r0 []auth.AccessToken var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]auth.AccessToken, error)); ok { @@ -409,13 +437,12 @@ func (_c *AuthRepo_ListAccessToken_Call) RunAndReturn(run func(context.Context, return _c } -type mockConstructorTestingTNewAuthRepo interface { +// NewAuthRepo creates a new instance of AuthRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewAuthRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewAuthRepo creates a new instance of AuthRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewAuthRepo(t mockConstructorTestingTNewAuthRepo) *AuthRepo { +}) *AuthRepo { mock := &AuthRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index 000da682a..111428cc1 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -29,6 +29,10 @@ func (_m *AuthService) EXPECT() *AuthService_Expecter { func (_m *AuthService) ComparePassword(hashed []byte, password string) (bool, error) { ret := _m.Called(hashed, password) + if len(ret) == 0 { + panic("no return value specified for ComparePassword") + } + var r0 bool var r1 error if rf, ok := ret.Get(0).(func([]byte, string) (bool, error)); ok { @@ -82,6 +86,10 @@ func (_c *AuthService_ComparePassword_Call) RunAndReturn(run func([]byte, string func (_m *AuthService) CreateAccessToken(ctx context.Context, userID uint32, name string, expiration time.Duration) (string, error) { ret := _m.Called(ctx, userID, name, expiration) + if len(ret) == 0 { + panic("no return value specified for CreateAccessToken") + } + var r0 string var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) (string, error)); ok { @@ -137,6 +145,10 @@ func (_c *AuthService_CreateAccessToken_Call) RunAndReturn(run func(context.Cont func (_m *AuthService) DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) { ret := _m.Called(ctx, tokenID) + if len(ret) == 0 { + panic("no return value specified for DeleteAccessToken") + } + var r0 bool var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (bool, error)); ok { @@ -190,6 +202,10 @@ func (_c *AuthService_DeleteAccessToken_Call) RunAndReturn(run func(context.Cont func (_m *AuthService) GetByID(ctx context.Context, userID uint32) (auth.Auth, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for GetByID") + } + var r0 auth.Auth var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.Auth, error)); ok { @@ -243,6 +259,10 @@ func (_c *AuthService_GetByID_Call) RunAndReturn(run func(context.Context, uint3 func (_m *AuthService) GetByToken(ctx context.Context, token string) (auth.Auth, error) { ret := _m.Called(ctx, token) + if len(ret) == 0 { + panic("no return value specified for GetByToken") + } + var r0 auth.Auth var r1 error if rf, ok := ret.Get(0).(func(context.Context, string) (auth.Auth, error)); ok { @@ -296,6 +316,10 @@ func (_c *AuthService_GetByToken_Call) RunAndReturn(run func(context.Context, st func (_m *AuthService) GetTokenByID(ctx context.Context, tokenID uint32) (auth.AccessToken, error) { ret := _m.Called(ctx, tokenID) + if len(ret) == 0 { + panic("no return value specified for GetTokenByID") + } + var r0 auth.AccessToken var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.AccessToken, error)); ok { @@ -349,6 +373,10 @@ func (_c *AuthService_GetTokenByID_Call) RunAndReturn(run func(context.Context, func (_m *AuthService) ListAccessToken(ctx context.Context, userID uint32) ([]auth.AccessToken, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for ListAccessToken") + } + var r0 []auth.AccessToken var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]auth.AccessToken, error)); ok { @@ -404,6 +432,10 @@ func (_c *AuthService_ListAccessToken_Call) RunAndReturn(run func(context.Contex func (_m *AuthService) Login(ctx context.Context, email string, password string) (auth.Auth, bool, error) { ret := _m.Called(ctx, email, password) + if len(ret) == 0 { + panic("no return value specified for Login") + } + var r0 auth.Auth var r1 bool var r2 error @@ -461,13 +493,12 @@ func (_c *AuthService_Login_Call) RunAndReturn(run func(context.Context, string, return _c } -type mockConstructorTestingTNewAuthService interface { +// NewAuthService creates a new instance of AuthService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewAuthService(t interface { mock.TestingT Cleanup(func()) -} - -// NewAuthService creates a new instance of AuthService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewAuthService(t mockConstructorTestingTNewAuthService) *AuthService { +}) *AuthService { mock := &AuthService{} mock.Mock.Test(t) diff --git a/internal/mocks/CharacterRepo.go b/internal/mocks/CharacterRepo.go index ec82ea8c8..1dc516312 100644 --- a/internal/mocks/CharacterRepo.go +++ b/internal/mocks/CharacterRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -31,6 +31,10 @@ func (_m *CharacterRepo) EXPECT() *CharacterRepo_Expecter { func (_m *CharacterRepo) Get(ctx context.Context, id uint32) (model.Character, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Character var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Character, error)); ok { @@ -84,6 +88,10 @@ func (_c *CharacterRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) func (_m *CharacterRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Character, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]model.Character var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Character, error)); ok { @@ -139,6 +147,10 @@ func (_c *CharacterRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, [] func (_m *CharacterRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.PersonCharacterRelation, error) { ret := _m.Called(ctx, personID) + if len(ret) == 0 { + panic("no return value specified for GetPersonRelated") + } + var r0 []domain.PersonCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { @@ -194,6 +206,10 @@ func (_c *CharacterRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Con func (_m *CharacterRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectCharacterRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 []domain.SubjectCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { @@ -249,6 +265,10 @@ func (_c *CharacterRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Co func (_m *CharacterRepo) GetSubjectRelationByIDs(ctx context.Context, ids []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelationByIDs") + } + var r0 []domain.SubjectCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error)); ok { @@ -300,13 +320,12 @@ func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) RunAndReturn(run func(cont return _c } -type mockConstructorTestingTNewCharacterRepo interface { +// NewCharacterRepo creates a new instance of CharacterRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCharacterRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewCharacterRepo creates a new instance of CharacterRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewCharacterRepo(t mockConstructorTestingTNewCharacterRepo) *CharacterRepo { +}) *CharacterRepo { mock := &CharacterRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index c997e13fd..811b211b2 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -34,6 +34,10 @@ func (_m *CollectionRepo) EXPECT() *CollectionRepo_Expecter { func (_m *CollectionRepo) CountSubjectCollections(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool) (int64, error) { ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate) + if len(ret) == 0 { + panic("no return value specified for CountSubjectCollections") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool) (int64, error)); ok { @@ -90,6 +94,10 @@ func (_c *CollectionRepo_CountSubjectCollections_Call) RunAndReturn(run func(con func (_m *CollectionRepo) GetSubjectCollection(ctx context.Context, userID uint32, subjectID uint32) (collection.UserSubjectCollection, error) { ret := _m.Called(ctx, userID, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectCollection") + } + var r0 collection.UserSubjectCollection var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (collection.UserSubjectCollection, error)); ok { @@ -144,6 +152,10 @@ func (_c *CollectionRepo_GetSubjectCollection_Call) RunAndReturn(run func(contex func (_m *CollectionRepo) GetSubjectEpisodesCollection(ctx context.Context, userID uint32, subjectID uint32) (collection.UserSubjectEpisodesCollection, error) { ret := _m.Called(ctx, userID, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectEpisodesCollection") + } + var r0 collection.UserSubjectEpisodesCollection var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (collection.UserSubjectEpisodesCollection, error)); ok { @@ -200,6 +212,10 @@ func (_c *CollectionRepo_GetSubjectEpisodesCollection_Call) RunAndReturn(run fun func (_m *CollectionRepo) ListSubjectCollection(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int) ([]collection.UserSubjectCollection, error) { ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListSubjectCollection") + } + var r0 []collection.UserSubjectCollection var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool, int, int) ([]collection.UserSubjectCollection, error)); ok { @@ -260,6 +276,10 @@ func (_c *CollectionRepo_ListSubjectCollection_Call) RunAndReturn(run func(conte func (_m *CollectionRepo) UpdateEpisodeCollection(ctx context.Context, userID uint32, subjectID uint32, episodeIDs []uint32, _a4 collection.EpisodeCollection, at time.Time) (collection.UserSubjectEpisodesCollection, error) { ret := _m.Called(ctx, userID, subjectID, episodeIDs, _a4, at) + if len(ret) == 0 { + panic("no return value specified for UpdateEpisodeCollection") + } + var r0 collection.UserSubjectEpisodesCollection var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, []uint32, collection.EpisodeCollection, time.Time) (collection.UserSubjectEpisodesCollection, error)); ok { @@ -319,6 +339,10 @@ func (_c *CollectionRepo_UpdateEpisodeCollection_Call) RunAndReturn(run func(con func (_m *CollectionRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { ret := _m.Called(ctx, userID, subject, at, ip, update) + if len(ret) == 0 { + panic("no return value specified for UpdateOrCreateSubjectCollection") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { r0 = rf(ctx, userID, subject, at, ip, update) @@ -366,6 +390,10 @@ func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func (_m *CollectionRepo) UpdateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { ret := _m.Called(ctx, userID, subject, at, ip, update) + if len(ret) == 0 { + panic("no return value specified for UpdateSubjectCollection") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { r0 = rf(ctx, userID, subject, at, ip, update) @@ -413,6 +441,10 @@ func (_c *CollectionRepo_UpdateSubjectCollection_Call) RunAndReturn(run func(con func (_m *CollectionRepo) WithQuery(_a0 *query.Query) collections.Repo { ret := _m.Called(_a0) + if len(ret) == 0 { + panic("no return value specified for WithQuery") + } + var r0 collections.Repo if rf, ok := ret.Get(0).(func(*query.Query) collections.Repo); ok { r0 = rf(_a0) @@ -453,13 +485,12 @@ func (_c *CollectionRepo_WithQuery_Call) RunAndReturn(run func(*query.Query) col return _c } -type mockConstructorTestingTNewCollectionRepo interface { +// NewCollectionRepo creates a new instance of CollectionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewCollectionRepo creates a new instance of CollectionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewCollectionRepo(t mockConstructorTestingTNewCollectionRepo) *CollectionRepo { +}) *CollectionRepo { mock := &CollectionRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/EpisodeRepo.go b/internal/mocks/EpisodeRepo.go index 4c3cfbd2d..795ba61f6 100644 --- a/internal/mocks/EpisodeRepo.go +++ b/internal/mocks/EpisodeRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -28,6 +28,10 @@ func (_m *EpisodeRepo) EXPECT() *EpisodeRepo_Expecter { func (_m *EpisodeRepo) Count(ctx context.Context, subjectID uint32, filter episode.Filter) (int64, error) { ret := _m.Called(ctx, subjectID, filter) + if len(ret) == 0 { + panic("no return value specified for Count") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter) (int64, error)); ok { @@ -82,6 +86,10 @@ func (_c *EpisodeRepo_Count_Call) RunAndReturn(run func(context.Context, uint32, func (_m *EpisodeRepo) Get(ctx context.Context, episodeID uint32) (episode.Episode, error) { ret := _m.Called(ctx, episodeID) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 episode.Episode var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (episode.Episode, error)); ok { @@ -135,6 +143,10 @@ func (_c *EpisodeRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) ( func (_m *EpisodeRepo) List(ctx context.Context, subjectID uint32, filter episode.Filter, limit int, offset int) ([]episode.Episode, error) { ret := _m.Called(ctx, subjectID, filter, limit, offset) + if len(ret) == 0 { + panic("no return value specified for List") + } + var r0 []episode.Episode var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter, int, int) ([]episode.Episode, error)); ok { @@ -193,6 +205,10 @@ func (_c *EpisodeRepo_List_Call) RunAndReturn(run func(context.Context, uint32, func (_m *EpisodeRepo) WithQuery(_a0 *query.Query) episode.Repo { ret := _m.Called(_a0) + if len(ret) == 0 { + panic("no return value specified for WithQuery") + } + var r0 episode.Repo if rf, ok := ret.Get(0).(func(*query.Query) episode.Repo); ok { r0 = rf(_a0) @@ -233,13 +249,12 @@ func (_c *EpisodeRepo_WithQuery_Call) RunAndReturn(run func(*query.Query) episod return _c } -type mockConstructorTestingTNewEpisodeRepo interface { +// NewEpisodeRepo creates a new instance of EpisodeRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEpisodeRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewEpisodeRepo creates a new instance of EpisodeRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewEpisodeRepo(t mockConstructorTestingTNewEpisodeRepo) *EpisodeRepo { +}) *EpisodeRepo { mock := &EpisodeRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index f168292db..27f77ebdd 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -28,6 +28,10 @@ func (_m *IndexRepo) EXPECT() *IndexRepo_Expecter { func (_m *IndexRepo) AddIndexCollect(ctx context.Context, id uint32, uid uint32) error { ret := _m.Called(ctx, id, uid) + if len(ret) == 0 { + panic("no return value specified for AddIndexCollect") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { r0 = rf(ctx, id, uid) @@ -72,6 +76,10 @@ func (_c *IndexRepo_AddIndexCollect_Call) RunAndReturn(run func(context.Context, func (_m *IndexRepo) AddOrUpdateIndexSubject(ctx context.Context, id uint32, subjectID uint32, sort uint32, comment string) (*index.Subject, error) { ret := _m.Called(ctx, id, subjectID, sort, comment) + if len(ret) == 0 { + panic("no return value specified for AddOrUpdateIndexSubject") + } + var r0 *index.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, uint32, string) (*index.Subject, error)); ok { @@ -130,6 +138,10 @@ func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) RunAndReturn(run func(context. func (_m *IndexRepo) CountSubjects(ctx context.Context, id uint32, subjectType uint8) (int64, error) { ret := _m.Called(ctx, id, subjectType) + if len(ret) == 0 { + panic("no return value specified for CountSubjects") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) (int64, error)); ok { @@ -184,6 +196,10 @@ func (_c *IndexRepo_CountSubjects_Call) RunAndReturn(run func(context.Context, u func (_m *IndexRepo) Delete(ctx context.Context, id uint32) error { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for Delete") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { r0 = rf(ctx, id) @@ -227,6 +243,10 @@ func (_c *IndexRepo_Delete_Call) RunAndReturn(run func(context.Context, uint32) func (_m *IndexRepo) DeleteIndexCollect(ctx context.Context, id uint32, uid uint32) error { ret := _m.Called(ctx, id, uid) + if len(ret) == 0 { + panic("no return value specified for DeleteIndexCollect") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { r0 = rf(ctx, id, uid) @@ -271,6 +291,10 @@ func (_c *IndexRepo_DeleteIndexCollect_Call) RunAndReturn(run func(context.Conte func (_m *IndexRepo) DeleteIndexSubject(ctx context.Context, id uint32, subjectID uint32) error { ret := _m.Called(ctx, id, subjectID) + if len(ret) == 0 { + panic("no return value specified for DeleteIndexSubject") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { r0 = rf(ctx, id, subjectID) @@ -315,6 +339,10 @@ func (_c *IndexRepo_DeleteIndexSubject_Call) RunAndReturn(run func(context.Conte func (_m *IndexRepo) Get(ctx context.Context, id uint32) (model.Index, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Index var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Index, error)); ok { @@ -368,6 +396,10 @@ func (_c *IndexRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (mo func (_m *IndexRepo) GetIndexCollect(ctx context.Context, id uint32, uid uint32) (*index.IndexCollect, error) { ret := _m.Called(ctx, id, uid) + if len(ret) == 0 { + panic("no return value specified for GetIndexCollect") + } + var r0 *index.IndexCollect var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (*index.IndexCollect, error)); ok { @@ -424,6 +456,10 @@ func (_c *IndexRepo_GetIndexCollect_Call) RunAndReturn(run func(context.Context, func (_m *IndexRepo) ListSubjects(ctx context.Context, id uint32, subjectType uint8, limit int, offset int) ([]index.Subject, error) { ret := _m.Called(ctx, id, subjectType, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListSubjects") + } + var r0 []index.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, int, int) ([]index.Subject, error)); ok { @@ -482,6 +518,10 @@ func (_c *IndexRepo_ListSubjects_Call) RunAndReturn(run func(context.Context, ui func (_m *IndexRepo) New(ctx context.Context, i *model.Index) error { ret := _m.Called(ctx, i) + if len(ret) == 0 { + panic("no return value specified for New") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, *model.Index) error); ok { r0 = rf(ctx, i) @@ -525,6 +565,10 @@ func (_c *IndexRepo_New_Call) RunAndReturn(run func(context.Context, *model.Inde func (_m *IndexRepo) Update(ctx context.Context, id uint32, title string, desc string) error { ret := _m.Called(ctx, id, title, desc) + if len(ret) == 0 { + panic("no return value specified for Update") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, string, string) error); ok { r0 = rf(ctx, id, title, desc) @@ -566,13 +610,12 @@ func (_c *IndexRepo_Update_Call) RunAndReturn(run func(context.Context, uint32, return _c } -type mockConstructorTestingTNewIndexRepo interface { +// NewIndexRepo creates a new instance of IndexRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewIndexRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewIndexRepo creates a new instance of IndexRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewIndexRepo(t mockConstructorTestingTNewIndexRepo) *IndexRepo { +}) *IndexRepo { mock := &IndexRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/NotificationRepo.go b/internal/mocks/NotificationRepo.go index adb7b81be..b19fcf703 100644 --- a/internal/mocks/NotificationRepo.go +++ b/internal/mocks/NotificationRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -25,6 +25,10 @@ func (_m *NotificationRepo) EXPECT() *NotificationRepo_Expecter { func (_m *NotificationRepo) Count(ctx context.Context, userID uint32) (int64, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for Count") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { @@ -74,13 +78,12 @@ func (_c *NotificationRepo_Count_Call) RunAndReturn(run func(context.Context, ui return _c } -type mockConstructorTestingTNewNotificationRepo interface { +// NewNotificationRepo creates a new instance of NotificationRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewNotificationRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewNotificationRepo creates a new instance of NotificationRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewNotificationRepo(t mockConstructorTestingTNewNotificationRepo) *NotificationRepo { +}) *NotificationRepo { mock := &NotificationRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/PersonRepo.go b/internal/mocks/PersonRepo.go index 03c9007ac..fe738d916 100644 --- a/internal/mocks/PersonRepo.go +++ b/internal/mocks/PersonRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -28,6 +28,10 @@ func (_m *PersonRepo) EXPECT() *PersonRepo_Expecter { func (_m *PersonRepo) Get(ctx context.Context, id uint32) (model.Person, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Person var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Person, error)); ok { @@ -81,6 +85,10 @@ func (_c *PersonRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (m func (_m *PersonRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Person, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]model.Person var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Person, error)); ok { @@ -136,6 +144,10 @@ func (_c *PersonRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uin func (_m *PersonRepo) GetCharacterRelated(ctx context.Context, subjectID uint32) ([]domain.PersonCharacterRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetCharacterRelated") + } + var r0 []domain.PersonCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { @@ -191,6 +203,10 @@ func (_c *PersonRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Con func (_m *PersonRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectPersonRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 []domain.SubjectPersonRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { @@ -242,13 +258,12 @@ func (_c *PersonRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Conte return _c } -type mockConstructorTestingTNewPersonRepo interface { +// NewPersonRepo creates a new instance of PersonRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPersonRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewPersonRepo creates a new instance of PersonRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewPersonRepo(t mockConstructorTestingTNewPersonRepo) *PersonRepo { +}) *PersonRepo { mock := &PersonRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/PersonService.go b/internal/mocks/PersonService.go index ba5db3966..cbea81c8b 100644 --- a/internal/mocks/PersonService.go +++ b/internal/mocks/PersonService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -28,6 +28,10 @@ func (_m *PersonService) EXPECT() *PersonService_Expecter { func (_m *PersonService) Get(ctx context.Context, id uint32) (model.Person, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Person var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Person, error)); ok { @@ -81,6 +85,10 @@ func (_c *PersonService_Get_Call) RunAndReturn(run func(context.Context, uint32) func (_m *PersonService) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Person, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]model.Person var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Person, error)); ok { @@ -136,6 +144,10 @@ func (_c *PersonService_GetByIDs_Call) RunAndReturn(run func(context.Context, [] func (_m *PersonService) GetCharacterRelated(ctx context.Context, subjectID uint32) ([]domain.PersonCharacterRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetCharacterRelated") + } + var r0 []domain.PersonCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { @@ -191,6 +203,10 @@ func (_c *PersonService_GetCharacterRelated_Call) RunAndReturn(run func(context. func (_m *PersonService) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectPersonRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 []domain.SubjectPersonRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { @@ -242,13 +258,12 @@ func (_c *PersonService_GetSubjectRelated_Call) RunAndReturn(run func(context.Co return _c } -type mockConstructorTestingTNewPersonService interface { +// NewPersonService creates a new instance of PersonService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPersonService(t interface { mock.TestingT Cleanup(func()) -} - -// NewPersonService creates a new instance of PersonService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewPersonService(t mockConstructorTestingTNewPersonService) *PersonService { +}) *PersonService { mock := &PersonService{} mock.Mock.Test(t) diff --git a/internal/mocks/PrivateMessageRepo.go b/internal/mocks/PrivateMessageRepo.go index 7ddefc036..284a70320 100644 --- a/internal/mocks/PrivateMessageRepo.go +++ b/internal/mocks/PrivateMessageRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -26,6 +26,10 @@ func (_m *PrivateMessageRepo) EXPECT() *PrivateMessageRepo_Expecter { func (_m *PrivateMessageRepo) CountByFolder(ctx context.Context, userID uint32, folder pm.FolderType) (int64, error) { ret := _m.Called(ctx, userID, folder) + if len(ret) == 0 { + panic("no return value specified for CountByFolder") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType) (int64, error)); ok { @@ -80,6 +84,10 @@ func (_c *PrivateMessageRepo_CountByFolder_Call) RunAndReturn(run func(context.C func (_m *PrivateMessageRepo) CountTypes(ctx context.Context, userID uint32) (pm.PrivateMessageTypeCounts, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for CountTypes") + } + var r0 pm.PrivateMessageTypeCounts var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (pm.PrivateMessageTypeCounts, error)); ok { @@ -133,6 +141,10 @@ func (_c *PrivateMessageRepo_CountTypes_Call) RunAndReturn(run func(context.Cont func (_m *PrivateMessageRepo) Create(ctx context.Context, senderID uint32, receiverIDs []uint32, relatedIDFilter pm.IDFilter, title string, content string) ([]pm.PrivateMessage, error) { ret := _m.Called(ctx, senderID, receiverIDs, relatedIDFilter, title, content) + if len(ret) == 0 { + panic("no return value specified for Create") + } + var r0 []pm.PrivateMessage var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32, pm.IDFilter, string, string) ([]pm.PrivateMessage, error)); ok { @@ -192,6 +204,10 @@ func (_c *PrivateMessageRepo_Create_Call) RunAndReturn(run func(context.Context, func (_m *PrivateMessageRepo) Delete(ctx context.Context, userID uint32, ids []uint32) error { ret := _m.Called(ctx, userID, ids) + if len(ret) == 0 { + panic("no return value specified for Delete") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) error); ok { r0 = rf(ctx, userID, ids) @@ -236,6 +252,10 @@ func (_c *PrivateMessageRepo_Delete_Call) RunAndReturn(run func(context.Context, func (_m *PrivateMessageRepo) List(ctx context.Context, userID uint32, folder pm.FolderType, offset int, limit int) ([]pm.PrivateMessageListItem, error) { ret := _m.Called(ctx, userID, folder, offset, limit) + if len(ret) == 0 { + panic("no return value specified for List") + } + var r0 []pm.PrivateMessageListItem var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType, int, int) ([]pm.PrivateMessageListItem, error)); ok { @@ -294,6 +314,10 @@ func (_c *PrivateMessageRepo_List_Call) RunAndReturn(run func(context.Context, u func (_m *PrivateMessageRepo) ListRecentContact(ctx context.Context, userID uint32) ([]uint32, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for ListRecentContact") + } + var r0 []uint32 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]uint32, error)); ok { @@ -349,6 +373,10 @@ func (_c *PrivateMessageRepo_ListRecentContact_Call) RunAndReturn(run func(conte func (_m *PrivateMessageRepo) ListRelated(ctx context.Context, userID uint32, id uint32) ([]pm.PrivateMessage, error) { ret := _m.Called(ctx, userID, id) + if len(ret) == 0 { + panic("no return value specified for ListRelated") + } + var r0 []pm.PrivateMessage var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) ([]pm.PrivateMessage, error)); ok { @@ -405,6 +433,10 @@ func (_c *PrivateMessageRepo_ListRelated_Call) RunAndReturn(run func(context.Con func (_m *PrivateMessageRepo) MarkRead(ctx context.Context, userID uint32, relatedID uint32) error { ret := _m.Called(ctx, userID, relatedID) + if len(ret) == 0 { + panic("no return value specified for MarkRead") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { r0 = rf(ctx, userID, relatedID) @@ -445,13 +477,12 @@ func (_c *PrivateMessageRepo_MarkRead_Call) RunAndReturn(run func(context.Contex return _c } -type mockConstructorTestingTNewPrivateMessageRepo interface { +// NewPrivateMessageRepo creates a new instance of PrivateMessageRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPrivateMessageRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewPrivateMessageRepo creates a new instance of PrivateMessageRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewPrivateMessageRepo(t mockConstructorTestingTNewPrivateMessageRepo) *PrivateMessageRepo { +}) *PrivateMessageRepo { mock := &PrivateMessageRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/RedisCache.go b/internal/mocks/RedisCache.go index 46261e5ec..fce7469dd 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/RedisCache.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -33,6 +33,10 @@ func (_m *RedisCache) Del(ctx context.Context, keys ...string) error { _ca = append(_ca, _va...) ret := _m.Called(_ca...) + if len(ret) == 0 { + panic("no return value specified for Del") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, ...string) error); ok { r0 = rf(ctx, keys...) @@ -83,6 +87,10 @@ func (_c *RedisCache_Del_Call) RunAndReturn(run func(context.Context, ...string) func (_m *RedisCache) Get(ctx context.Context, key string, value interface{}) (bool, error) { ret := _m.Called(ctx, key, value) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 bool var r1 error if rf, ok := ret.Get(0).(func(context.Context, string, interface{}) (bool, error)); ok { @@ -137,6 +145,10 @@ func (_c *RedisCache_Get_Call) RunAndReturn(run func(context.Context, string, in func (_m *RedisCache) Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error { ret := _m.Called(ctx, key, value, ttl) + if len(ret) == 0 { + panic("no return value specified for Set") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, time.Duration) error); ok { r0 = rf(ctx, key, value, ttl) @@ -178,13 +190,12 @@ func (_c *RedisCache_Set_Call) RunAndReturn(run func(context.Context, string, in return _c } -type mockConstructorTestingTNewRedisCache interface { +// NewRedisCache creates a new instance of RedisCache. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewRedisCache(t interface { mock.TestingT Cleanup(func()) -} - -// NewRedisCache creates a new instance of RedisCache. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewRedisCache(t mockConstructorTestingTNewRedisCache) *RedisCache { +}) *RedisCache { mock := &RedisCache{} mock.Mock.Test(t) diff --git a/internal/mocks/RevisionRepo.go b/internal/mocks/RevisionRepo.go index a402a6482..30b9b51a5 100644 --- a/internal/mocks/RevisionRepo.go +++ b/internal/mocks/RevisionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -26,6 +26,10 @@ func (_m *RevisionRepo) EXPECT() *RevisionRepo_Expecter { func (_m *RevisionRepo) CountCharacterRelated(ctx context.Context, characterID uint32) (int64, error) { ret := _m.Called(ctx, characterID) + if len(ret) == 0 { + panic("no return value specified for CountCharacterRelated") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { @@ -79,6 +83,10 @@ func (_c *RevisionRepo_CountCharacterRelated_Call) RunAndReturn(run func(context func (_m *RevisionRepo) CountEpisodeRelated(ctx context.Context, episodeID uint32) (int64, error) { ret := _m.Called(ctx, episodeID) + if len(ret) == 0 { + panic("no return value specified for CountEpisodeRelated") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { @@ -132,6 +140,10 @@ func (_c *RevisionRepo_CountEpisodeRelated_Call) RunAndReturn(run func(context.C func (_m *RevisionRepo) CountPersonRelated(ctx context.Context, personID uint32) (int64, error) { ret := _m.Called(ctx, personID) + if len(ret) == 0 { + panic("no return value specified for CountPersonRelated") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { @@ -185,6 +197,10 @@ func (_c *RevisionRepo_CountPersonRelated_Call) RunAndReturn(run func(context.Co func (_m *RevisionRepo) CountSubjectRelated(ctx context.Context, id uint32) (int64, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for CountSubjectRelated") + } + var r0 int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { @@ -238,6 +254,10 @@ func (_c *RevisionRepo_CountSubjectRelated_Call) RunAndReturn(run func(context.C func (_m *RevisionRepo) GetCharacterRelated(ctx context.Context, id uint32) (model.CharacterRevision, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for GetCharacterRelated") + } + var r0 model.CharacterRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.CharacterRevision, error)); ok { @@ -291,6 +311,10 @@ func (_c *RevisionRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.C func (_m *RevisionRepo) GetEpisodeRelated(ctx context.Context, id uint32) (model.EpisodeRevision, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for GetEpisodeRelated") + } + var r0 model.EpisodeRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.EpisodeRevision, error)); ok { @@ -344,6 +368,10 @@ func (_c *RevisionRepo_GetEpisodeRelated_Call) RunAndReturn(run func(context.Con func (_m *RevisionRepo) GetPersonRelated(ctx context.Context, id uint32) (model.PersonRevision, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for GetPersonRelated") + } + var r0 model.PersonRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.PersonRevision, error)); ok { @@ -397,6 +425,10 @@ func (_c *RevisionRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Cont func (_m *RevisionRepo) GetSubjectRelated(ctx context.Context, id uint32) (model.SubjectRevision, error) { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 model.SubjectRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.SubjectRevision, error)); ok { @@ -450,6 +482,10 @@ func (_c *RevisionRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Con func (_m *RevisionRepo) ListCharacterRelated(ctx context.Context, characterID uint32, limit int, offset int) ([]model.CharacterRevision, error) { ret := _m.Called(ctx, characterID, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListCharacterRelated") + } + var r0 []model.CharacterRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.CharacterRevision, error)); ok { @@ -507,6 +543,10 @@ func (_c *RevisionRepo_ListCharacterRelated_Call) RunAndReturn(run func(context. func (_m *RevisionRepo) ListEpisodeRelated(ctx context.Context, episodeID uint32, limit int, offset int) ([]model.EpisodeRevision, error) { ret := _m.Called(ctx, episodeID, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListEpisodeRelated") + } + var r0 []model.EpisodeRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.EpisodeRevision, error)); ok { @@ -564,6 +604,10 @@ func (_c *RevisionRepo_ListEpisodeRelated_Call) RunAndReturn(run func(context.Co func (_m *RevisionRepo) ListPersonRelated(ctx context.Context, personID uint32, limit int, offset int) ([]model.PersonRevision, error) { ret := _m.Called(ctx, personID, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListPersonRelated") + } + var r0 []model.PersonRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.PersonRevision, error)); ok { @@ -621,6 +665,10 @@ func (_c *RevisionRepo_ListPersonRelated_Call) RunAndReturn(run func(context.Con func (_m *RevisionRepo) ListSubjectRelated(ctx context.Context, id uint32, limit int, offset int) ([]model.SubjectRevision, error) { ret := _m.Called(ctx, id, limit, offset) + if len(ret) == 0 { + panic("no return value specified for ListSubjectRelated") + } + var r0 []model.SubjectRevision var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.SubjectRevision, error)); ok { @@ -674,13 +722,12 @@ func (_c *RevisionRepo_ListSubjectRelated_Call) RunAndReturn(run func(context.Co return _c } -type mockConstructorTestingTNewRevisionRepo interface { +// NewRevisionRepo creates a new instance of RevisionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewRevisionRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewRevisionRepo creates a new instance of RevisionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewRevisionRepo(t mockConstructorTestingTNewRevisionRepo) *RevisionRepo { +}) *RevisionRepo { mock := &RevisionRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index 0c7e0c1e2..cdf74f078 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -58,6 +58,10 @@ func (_c *SearchClient_Close_Call) RunAndReturn(run func()) *SearchClient_Close_ func (_m *SearchClient) Handle(c echo.Context) error { ret := _m.Called(c) + if len(ret) == 0 { + panic("no return value specified for Handle") + } + var r0 error if rf, ok := ret.Get(0).(func(echo.Context) error); ok { r0 = rf(c) @@ -100,6 +104,10 @@ func (_c *SearchClient_Handle_Call) RunAndReturn(run func(echo.Context) error) * func (_m *SearchClient) OnSubjectDelete(ctx context.Context, id uint32) error { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for OnSubjectDelete") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { r0 = rf(ctx, id) @@ -143,6 +151,10 @@ func (_c *SearchClient_OnSubjectDelete_Call) RunAndReturn(run func(context.Conte func (_m *SearchClient) OnSubjectUpdate(ctx context.Context, id uint32) error { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for OnSubjectUpdate") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { r0 = rf(ctx, id) @@ -182,13 +194,12 @@ func (_c *SearchClient_OnSubjectUpdate_Call) RunAndReturn(run func(context.Conte return _c } -type mockConstructorTestingTNewSearchClient interface { +// NewSearchClient creates a new instance of SearchClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSearchClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewSearchClient creates a new instance of SearchClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSearchClient(t mockConstructorTestingTNewSearchClient) *SearchClient { +}) *SearchClient { mock := &SearchClient{} mock.Mock.Test(t) diff --git a/internal/mocks/SessionManager.go b/internal/mocks/SessionManager.go index f62c23f84..05ea3bfc5 100644 --- a/internal/mocks/SessionManager.go +++ b/internal/mocks/SessionManager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -29,6 +29,10 @@ func (_m *SessionManager) EXPECT() *SessionManager_Expecter { func (_m *SessionManager) Create(ctx context.Context, a auth.Auth) (string, session.Session, error) { ret := _m.Called(ctx, a) + if len(ret) == 0 { + panic("no return value specified for Create") + } + var r0 string var r1 session.Session var r2 error @@ -89,6 +93,10 @@ func (_c *SessionManager_Create_Call) RunAndReturn(run func(context.Context, aut func (_m *SessionManager) Get(ctx context.Context, key string) (session.Session, error) { ret := _m.Called(ctx, key) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 session.Session var r1 error if rf, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { @@ -142,6 +150,10 @@ func (_c *SessionManager_Get_Call) RunAndReturn(run func(context.Context, string func (_m *SessionManager) Revoke(ctx context.Context, key string) error { ret := _m.Called(ctx, key) + if len(ret) == 0 { + panic("no return value specified for Revoke") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { r0 = rf(ctx, key) @@ -185,6 +197,10 @@ func (_c *SessionManager_Revoke_Call) RunAndReturn(run func(context.Context, str func (_m *SessionManager) RevokeUser(ctx context.Context, id uint32) error { ret := _m.Called(ctx, id) + if len(ret) == 0 { + panic("no return value specified for RevokeUser") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { r0 = rf(ctx, id) @@ -224,13 +240,12 @@ func (_c *SessionManager_RevokeUser_Call) RunAndReturn(run func(context.Context, return _c } -type mockConstructorTestingTNewSessionManager interface { +// NewSessionManager creates a new instance of SessionManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSessionManager(t interface { mock.TestingT Cleanup(func()) -} - -// NewSessionManager creates a new instance of SessionManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSessionManager(t mockConstructorTestingTNewSessionManager) *SessionManager { +}) *SessionManager { mock := &SessionManager{} mock.Mock.Test(t) diff --git a/internal/mocks/SessionRepo.go b/internal/mocks/SessionRepo.go index 6fc21deea..298ad1dec 100644 --- a/internal/mocks/SessionRepo.go +++ b/internal/mocks/SessionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -28,6 +28,10 @@ func (_m *SessionRepo) EXPECT() *SessionRepo_Expecter { func (_m *SessionRepo) Create(ctx context.Context, userID uint32, regTime time.Time, keyGen func() string) (string, session.Session, error) { ret := _m.Called(ctx, userID, regTime, keyGen) + if len(ret) == 0 { + panic("no return value specified for Create") + } + var r0 string var r1 session.Session var r2 error @@ -90,6 +94,10 @@ func (_c *SessionRepo_Create_Call) RunAndReturn(run func(context.Context, uint32 func (_m *SessionRepo) Get(ctx context.Context, key string) (session.Session, error) { ret := _m.Called(ctx, key) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 session.Session var r1 error if rf, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { @@ -143,6 +151,10 @@ func (_c *SessionRepo_Get_Call) RunAndReturn(run func(context.Context, string) ( func (_m *SessionRepo) Revoke(ctx context.Context, key string) error { ret := _m.Called(ctx, key) + if len(ret) == 0 { + panic("no return value specified for Revoke") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { r0 = rf(ctx, key) @@ -186,6 +198,10 @@ func (_c *SessionRepo_Revoke_Call) RunAndReturn(run func(context.Context, string func (_m *SessionRepo) RevokeUser(ctx context.Context, userID uint32) ([]string, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for RevokeUser") + } + var r0 []string var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]string, error)); ok { @@ -237,13 +253,12 @@ func (_c *SessionRepo_RevokeUser_Call) RunAndReturn(run func(context.Context, ui return _c } -type mockConstructorTestingTNewSessionRepo interface { +// NewSessionRepo creates a new instance of SessionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSessionRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewSessionRepo creates a new instance of SessionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSessionRepo(t mockConstructorTestingTNewSessionRepo) *SessionRepo { +}) *SessionRepo { mock := &SessionRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index 48af75bfd..867524561 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -30,6 +30,10 @@ func (_m *SubjectCachedRepo) EXPECT() *SubjectCachedRepo_Expecter { func (_m *SubjectCachedRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { ret := _m.Called(ctx, id, filter) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) (model.Subject, error)); ok { @@ -84,6 +88,10 @@ func (_c *SubjectCachedRepo_Get_Call) RunAndReturn(run func(context.Context, uin func (_m *SubjectCachedRepo) GetActors(ctx context.Context, subjectID uint32, characterIDs []uint32) (map[uint32][]uint32, error) { ret := _m.Called(ctx, subjectID, characterIDs) + if len(ret) == 0 { + panic("no return value specified for GetActors") + } + var r0 map[uint32][]uint32 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)); ok { @@ -140,6 +148,10 @@ func (_c *SubjectCachedRepo_GetActors_Call) RunAndReturn(run func(context.Contex func (_m *SubjectCachedRepo) GetByIDs(ctx context.Context, ids []uint32, filter subject.Filter) (map[uint32]model.Subject, error) { ret := _m.Called(ctx, ids, filter) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]model.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)); ok { @@ -196,6 +208,10 @@ func (_c *SubjectCachedRepo_GetByIDs_Call) RunAndReturn(run func(context.Context func (_m *SubjectCachedRepo) GetCharacterRelated(ctx context.Context, characterID uint32) ([]domain.SubjectCharacterRelation, error) { ret := _m.Called(ctx, characterID) + if len(ret) == 0 { + panic("no return value specified for GetCharacterRelated") + } + var r0 []domain.SubjectCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { @@ -251,6 +267,10 @@ func (_c *SubjectCachedRepo_GetCharacterRelated_Call) RunAndReturn(run func(cont func (_m *SubjectCachedRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.SubjectPersonRelation, error) { ret := _m.Called(ctx, personID) + if len(ret) == 0 { + panic("no return value specified for GetPersonRelated") + } + var r0 []domain.SubjectPersonRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { @@ -306,6 +326,10 @@ func (_c *SubjectCachedRepo_GetPersonRelated_Call) RunAndReturn(run func(context func (_m *SubjectCachedRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectInternalRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 []domain.SubjectInternalRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)); ok { @@ -357,13 +381,12 @@ func (_c *SubjectCachedRepo_GetSubjectRelated_Call) RunAndReturn(run func(contex return _c } -type mockConstructorTestingTNewSubjectCachedRepo interface { +// NewSubjectCachedRepo creates a new instance of SubjectCachedRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSubjectCachedRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewSubjectCachedRepo creates a new instance of SubjectCachedRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSubjectCachedRepo(t mockConstructorTestingTNewSubjectCachedRepo) *SubjectCachedRepo { +}) *SubjectCachedRepo { mock := &SubjectCachedRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index df8da4e21..84c36ee4b 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -30,6 +30,10 @@ func (_m *SubjectRepo) EXPECT() *SubjectRepo_Expecter { func (_m *SubjectRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { ret := _m.Called(ctx, id, filter) + if len(ret) == 0 { + panic("no return value specified for Get") + } + var r0 model.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) (model.Subject, error)); ok { @@ -84,6 +88,10 @@ func (_c *SubjectRepo_Get_Call) RunAndReturn(run func(context.Context, uint32, s func (_m *SubjectRepo) GetActors(ctx context.Context, subjectID uint32, characterIDs []uint32) (map[uint32][]uint32, error) { ret := _m.Called(ctx, subjectID, characterIDs) + if len(ret) == 0 { + panic("no return value specified for GetActors") + } + var r0 map[uint32][]uint32 var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)); ok { @@ -140,6 +148,10 @@ func (_c *SubjectRepo_GetActors_Call) RunAndReturn(run func(context.Context, uin func (_m *SubjectRepo) GetByIDs(ctx context.Context, ids []uint32, filter subject.Filter) (map[uint32]model.Subject, error) { ret := _m.Called(ctx, ids, filter) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]model.Subject var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)); ok { @@ -196,6 +208,10 @@ func (_c *SubjectRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []ui func (_m *SubjectRepo) GetCharacterRelated(ctx context.Context, characterID uint32) ([]domain.SubjectCharacterRelation, error) { ret := _m.Called(ctx, characterID) + if len(ret) == 0 { + panic("no return value specified for GetCharacterRelated") + } + var r0 []domain.SubjectCharacterRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { @@ -251,6 +267,10 @@ func (_c *SubjectRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Co func (_m *SubjectRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.SubjectPersonRelation, error) { ret := _m.Called(ctx, personID) + if len(ret) == 0 { + panic("no return value specified for GetPersonRelated") + } + var r0 []domain.SubjectPersonRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { @@ -306,6 +326,10 @@ func (_c *SubjectRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Conte func (_m *SubjectRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectInternalRelation, error) { ret := _m.Called(ctx, subjectID) + if len(ret) == 0 { + panic("no return value specified for GetSubjectRelated") + } + var r0 []domain.SubjectInternalRelation var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)); ok { @@ -357,13 +381,12 @@ func (_c *SubjectRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Cont return _c } -type mockConstructorTestingTNewSubjectRepo interface { +// NewSubjectRepo creates a new instance of SubjectRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSubjectRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewSubjectRepo creates a new instance of SubjectRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSubjectRepo(t mockConstructorTestingTNewSubjectRepo) *SubjectRepo { +}) *SubjectRepo { mock := &SubjectRepo{} mock.Mock.Test(t) diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index c2aa5d6ee..27b750cc2 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -32,6 +32,10 @@ func (_m *TimeLineService) EXPECT() *TimeLineService_Expecter { func (_m *TimeLineService) ChangeEpisodeStatus(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode) error { ret := _m.Called(ctx, u, sbj, _a3) + if len(ret) == 0 { + panic("no return value specified for ChangeEpisodeStatus") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, auth.Auth, model.Subject, episode.Episode) error); ok { r0 = rf(ctx, u, sbj, _a3) @@ -77,6 +81,10 @@ func (_c *TimeLineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(contex func (_m *TimeLineService) ChangeSubjectCollection(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8) error { ret := _m.Called(ctx, u, sbj, collect, collectID, comment, rate) + if len(ret) == 0 { + panic("no return value specified for ChangeSubjectCollection") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, collection.SubjectCollection, uint64, string, uint8) error); ok { r0 = rf(ctx, u, sbj, collect, collectID, comment, rate) @@ -125,6 +133,10 @@ func (_c *TimeLineService_ChangeSubjectCollection_Call) RunAndReturn(run func(co func (_m *TimeLineService) ChangeSubjectProgress(ctx context.Context, u uint32, sbj model.Subject, epsUpdate uint32, volsUpdate uint32) error { ret := _m.Called(ctx, u, sbj, epsUpdate, volsUpdate) + if len(ret) == 0 { + panic("no return value specified for ChangeSubjectProgress") + } + var r0 error if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, uint32, uint32) error); ok { r0 = rf(ctx, u, sbj, epsUpdate, volsUpdate) @@ -167,13 +179,12 @@ func (_c *TimeLineService_ChangeSubjectProgress_Call) RunAndReturn(run func(cont return _c } -type mockConstructorTestingTNewTimeLineService interface { +// NewTimeLineService creates a new instance of TimeLineService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTimeLineService(t interface { mock.TestingT Cleanup(func()) -} - -// NewTimeLineService creates a new instance of TimeLineService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewTimeLineService(t mockConstructorTestingTNewTimeLineService) *TimeLineService { +}) *TimeLineService { mock := &TimeLineService{} mock.Mock.Test(t) diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index 37c84e479..ee0c909d2 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.26.1. DO NOT EDIT. +// Code generated by mockery v2.43.0. DO NOT EDIT. package mocks @@ -33,6 +33,10 @@ func (_m *UserRepo) CheckIsFriendToOthers(ctx context.Context, selfID uint32, ot _ca = append(_ca, _va...) ret := _m.Called(_ca...) + if len(ret) == 0 { + panic("no return value specified for CheckIsFriendToOthers") + } + var r0 bool var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32, ...uint32) (bool, error)); ok { @@ -94,6 +98,10 @@ func (_c *UserRepo_CheckIsFriendToOthers_Call) RunAndReturn(run func(context.Con func (_m *UserRepo) GetByID(ctx context.Context, userID uint32) (user.User, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for GetByID") + } + var r0 user.User var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (user.User, error)); ok { @@ -147,6 +155,10 @@ func (_c *UserRepo_GetByID_Call) RunAndReturn(run func(context.Context, uint32) func (_m *UserRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]user.User, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + var r0 map[uint32]user.User var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]user.User, error)); ok { @@ -202,6 +214,10 @@ func (_c *UserRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint3 func (_m *UserRepo) GetByName(ctx context.Context, username string) (user.User, error) { ret := _m.Called(ctx, username) + if len(ret) == 0 { + panic("no return value specified for GetByName") + } + var r0 user.User var r1 error if rf, ok := ret.Get(0).(func(context.Context, string) (user.User, error)); ok { @@ -255,6 +271,10 @@ func (_c *UserRepo_GetByName_Call) RunAndReturn(run func(context.Context, string func (_m *UserRepo) GetFieldsByIDs(ctx context.Context, ids []uint32) (map[uint32]user.Fields, error) { ret := _m.Called(ctx, ids) + if len(ret) == 0 { + panic("no return value specified for GetFieldsByIDs") + } + var r0 map[uint32]user.Fields var r1 error if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]user.Fields, error)); ok { @@ -310,6 +330,10 @@ func (_c *UserRepo_GetFieldsByIDs_Call) RunAndReturn(run func(context.Context, [ func (_m *UserRepo) GetFriends(ctx context.Context, userID uint32) (map[uint32]user.FriendItem, error) { ret := _m.Called(ctx, userID) + if len(ret) == 0 { + panic("no return value specified for GetFriends") + } + var r0 map[uint32]user.FriendItem var r1 error if rf, ok := ret.Get(0).(func(context.Context, uint32) (map[uint32]user.FriendItem, error)); ok { @@ -361,13 +385,12 @@ func (_c *UserRepo_GetFriends_Call) RunAndReturn(run func(context.Context, uint3 return _c } -type mockConstructorTestingTNewUserRepo interface { +// NewUserRepo creates a new instance of UserRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewUserRepo(t interface { mock.TestingT Cleanup(func()) -} - -// NewUserRepo creates a new instance of UserRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewUserRepo(t mockConstructorTestingTNewUserRepo) *UserRepo { +}) *UserRepo { mock := &UserRepo{} mock.Mock.Test(t) From d7afbbe2a5069bb5417db991afa4d9bb639c99db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 18:45:01 +0800 Subject: [PATCH 260/888] ci: update golangci/golangci-lint-action action to v5 (#554) --- .github/workflows/lint.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 872eb6ce2..a3b04ec85 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -48,8 +48,6 @@ jobs: - run: go get -t ./... - name: Run linters - uses: golangci/golangci-lint-action@v4 + uses: golangci/golangci-lint-action@v5 with: version: v1.57.2 - skip-pkg-cache: true - skip-build-cache: true From c04be55895e325215cd296264fd06130364558b4 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Thu, 16 May 2024 00:11:08 +0800 Subject: [PATCH 261/888] feat: add missing subject type for relation responses (#559) --- openapi/v0.yaml | 10 +++++ web/handler/character/get_related_persons.go | 1 + web/handler/character/get_related_subjects.go | 1 + web/handler/person/get_related_characters.go | 2 +- web/handler/person/get_related_subjects.go | 1 + web/res/subject.go | 40 ++++++++++--------- 6 files changed, 36 insertions(+), 19 deletions(-) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 10d03ec39..4825439e1 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -1782,6 +1782,7 @@ components: - name - type - subject_id + - subject_type - subject_name - subject_name_cn type: object @@ -1806,6 +1807,8 @@ components: subject_id: title: Subject ID type: integer + subject_type: + $ref: "#/components/schemas/SubjectType" subject_name: title: Subject Name type: string @@ -2396,6 +2399,7 @@ components: - name - type - subject_id + - subject_type - subject_name - subject_name_cn type: object @@ -2419,6 +2423,8 @@ components: subject_id: title: Subject ID type: integer + subject_type: + $ref: "#/components/schemas/SubjectType" subject_name: title: Subject Name type: string @@ -2670,13 +2676,17 @@ components: title: RelatedSubject required: - id + - type - staff + - name - name_cn type: object properties: id: title: ID type: integer + type: + $ref: "#/components/schemas/SubjectType" staff: title: Staff type: string diff --git a/web/handler/character/get_related_persons.go b/web/handler/character/get_related_persons.go index d974d485b..421a237f9 100644 --- a/web/handler/character/get_related_persons.go +++ b/web/handler/character/get_related_persons.go @@ -63,6 +63,7 @@ func (h Character) GetRelatedPersons(c echo.Context) error { Type: cast.Person.Type, Images: res.PersonImage(cast.Person.Image), SubjectID: cast.Subject.ID, + SubjectType: cast.Subject.TypeID, SubjectName: cast.Subject.Name, SubjectNameCn: cast.Subject.NameCN, Staff: res.CharacterStaffString(mSubjectRelations[cast.Subject.ID]), diff --git a/web/handler/character/get_related_subjects.go b/web/handler/character/get_related_subjects.go index 9ed59b9c4..38ca03a30 100644 --- a/web/handler/character/get_related_subjects.go +++ b/web/handler/character/get_related_subjects.go @@ -50,6 +50,7 @@ func (h Character) GetRelatedSubjects(c echo.Context) error { s := relation.Subject response[i] = res.CharacterRelatedSubject{ ID: s.ID, + Type: s.TypeID, Name: s.Name, NameCn: s.NameCN, Staff: res.CharacterStaffString(relation.TypeID), diff --git a/web/handler/person/get_related_characters.go b/web/handler/person/get_related_characters.go index 098a38b96..4207cd4d4 100644 --- a/web/handler/person/get_related_characters.go +++ b/web/handler/person/get_related_characters.go @@ -43,7 +43,6 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { } return errgo.Wrap(err, "failed to get person") } - if r.Redirect != 0 { return res.ErrNotFound } @@ -84,6 +83,7 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { Type: rel.Character.Type, Images: res.PersonImage(rel.Character.Image), SubjectID: rel.Subject.ID, + SubjectType: rel.Subject.TypeID, SubjectName: rel.Subject.Name, SubjectNameCn: rel.Subject.NameCN, Staff: res.CharacterStaffString(subjectTypeID), diff --git a/web/handler/person/get_related_subjects.go b/web/handler/person/get_related_subjects.go index 062002c80..89aada773 100644 --- a/web/handler/person/get_related_subjects.go +++ b/web/handler/person/get_related_subjects.go @@ -60,6 +60,7 @@ func (h Person) GetRelatedSubjects(c echo.Context) error { for i, relation := range relations { response[i] = res.PersonRelatedSubject{ SubjectID: relation.Subject.ID, + Type: relation.Subject.TypeID, Staff: vars.StaffMap[relation.Subject.TypeID][relation.TypeID].String(), Name: relation.Subject.Name, NameCn: relation.Subject.NameCN, diff --git a/web/res/subject.go b/web/res/subject.go index b9a26aae5..d981c87b7 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -131,11 +131,12 @@ type Rating struct { } type PersonRelatedSubject struct { - Staff string `json:"staff"` - Name string `json:"name"` - NameCn string `json:"name_cn"` - Image string `json:"image"` - SubjectID model.SubjectID `json:"id"` + Staff string `json:"staff"` + Name string `json:"name"` + NameCn string `json:"name_cn"` + Image string `json:"image"` + Type model.SubjectType `json:"type"` + SubjectID model.SubjectID `json:"id"` } type PersonRelatedCharacter struct { @@ -143,6 +144,7 @@ type PersonRelatedCharacter struct { Name string `json:"name"` SubjectName string `json:"subject_name"` SubjectNameCn string `json:"subject_name_cn"` + SubjectType model.SubjectType `json:"subject_type"` SubjectID model.SubjectID `json:"subject_id"` Staff string `json:"staff"` ID model.CharacterID `json:"id"` @@ -150,22 +152,24 @@ type PersonRelatedCharacter struct { } type CharacterRelatedPerson struct { - Images PersonImages `json:"images"` - Name string `json:"name"` - SubjectName string `json:"subject_name"` - SubjectNameCn string `json:"subject_name_cn"` - SubjectID model.SubjectID `json:"subject_id"` - Staff string `json:"staff"` - ID model.PersonID `json:"id"` - Type uint8 `json:"type" doc:"person type"` + Images PersonImages `json:"images"` + Name string `json:"name"` + SubjectName string `json:"subject_name"` + SubjectNameCn string `json:"subject_name_cn"` + SubjectType model.SubjectType `json:"subject_type"` + SubjectID model.SubjectID `json:"subject_id"` + Staff string `json:"staff"` + ID model.PersonID `json:"id"` + Type uint8 `json:"type" doc:"person type"` } type CharacterRelatedSubject struct { - Staff string `json:"staff"` - Name string `json:"name"` - NameCn string `json:"name_cn"` - Image string `json:"image"` - ID model.SubjectID `json:"id"` + Staff string `json:"staff"` + Name string `json:"name"` + NameCn string `json:"name_cn"` + Image string `json:"image"` + Type model.SubjectType `json:"type"` + ID model.SubjectID `json:"id"` } type SubjectRelatedSubject struct { From a2dd2262a7939912e041227515aa9a9e9c510fa7 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Wed, 22 May 2024 22:40:39 +0800 Subject: [PATCH 262/888] feat: add API for PersonCollect (#561) --- .github/workflows/test.yaml | 5 + cmd/gen/gorm/main.go | 21 +- dal/dao/chii_person_collects.gen.go | 21 ++ dal/query/chii_person_collects.gen.go | 348 ++++++++++++++++++ dal/query/gen.go | 6 + internal/collections/domain.go | 30 +- .../collections/domain/collection/model.go | 15 + internal/collections/infra/mysql_repo.go | 143 +++++++ internal/collections/infra/mysql_repo_test.go | 196 ++++++++++ internal/mocks/CollectionRepo.go | 277 ++++++++++++++ ...tion.yaml => user_subject_collection.yaml} | 0 ...er_subject_collection_modify_payload.yaml} | 0 openapi/v0.yaml | 346 ++++++++++++++++- web/handler/character/character.go | 32 +- web/handler/character/collect.go | 90 +++++ web/handler/character/get.go | 4 +- web/handler/character/get_related_persons.go | 2 +- web/handler/character/get_related_subjects.go | 2 +- web/handler/person/collect.go | 92 +++++ web/handler/person/get_related_characters.go | 6 +- web/handler/person/person.go | 22 +- web/handler/user/collection_test.go | 148 ++++++++ web/handler/user/get_character_collection.go | 81 ++++ web/handler/user/get_person_collection.go | 77 ++++ .../user/list_character_collections.go | 103 ++++++ web/handler/user/list_person_collections.go | 102 +++++ web/handler/user/user.go | 38 +- web/res/collection.go | 30 ++ web/routes.go | 15 +- 29 files changed, 2195 insertions(+), 57 deletions(-) create mode 100644 dal/dao/chii_person_collects.gen.go create mode 100644 dal/query/chii_person_collects.gen.go rename openapi/components/{subject_collection.yaml => user_subject_collection.yaml} (100%) rename openapi/components/{subject_collection_modify_payload.yaml => user_subject_collection_modify_payload.yaml} (100%) create mode 100644 web/handler/character/collect.go create mode 100644 web/handler/person/collect.go create mode 100644 web/handler/user/get_character_collection.go create mode 100644 web/handler/user/get_person_collection.go create mode 100644 web/handler/user/list_character_collections.go create mode 100644 web/handler/user/list_person_collections.go diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 9cd675630..2001ad827 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -59,6 +59,11 @@ jobs: - run: bash $HOME/dev-env/wait_mysql_ready.sh + - name: Check Gorm gen + run: | + task gorm + git diff --exit-code + - name: Run tests run: task coverage env: diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index d53ae03a4..841d551ba 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -24,6 +24,7 @@ NOTICE: package main import ( + "path/filepath" "strings" "gorm.io/gen" @@ -58,9 +59,9 @@ const createdTime = "CreatedTime" // generate code. func main() { g := gen.NewGenerator(gen.Config{ - OutPath: "./dal/query/", - OutFile: "./gen.go", - ModelPkgPath: "./dao/", + OutPath: filepath.Clean("./dal/query/"), + OutFile: "gen.go", + ModelPkgPath: "dao", WithUnitTest: false, // if you want the nullable field generation property to be pointer type, set FieldNullable true @@ -78,6 +79,7 @@ func main() { "github.com/bangumi/server/dal/utiltype", "gorm.io/plugin/soft_delete", ) + g.WithJSONTagNameStrategy(func(_ string) string { return "" }) @@ -210,6 +212,19 @@ func main() { gen.FieldTrimPrefix("interest_"), )) + g.ApplyBasic(g.GenerateModelAs("chii_person_collects", "PersonCollect", + gen.FieldTrimPrefix("prsn_clt_"), + gen.FieldType("prsn_clt_id", "uint32"), + gen.FieldType("prsn_clt_cat", "string"), + gen.FieldType("prsn_clt_uid", userIDTypeString), + gen.FieldType("prsn_clt_mid", "uint32"), + gen.FieldType("prsn_clt_dateline", "uint32"), + gen.FieldRename("prsn_clt_cat", "Category"), + gen.FieldRename("prsn_clt_uid", "UserID"), + gen.FieldRename("prsn_clt_mid", "TargetID"), + gen.FieldRename("prsn_clt_dateline", createdTime), + )) + g.ApplyBasic(g.GenerateModelAs("chii_index", "Index", gen.FieldTrimPrefix("idx_"), gen.FieldType("idx_id", "uint32"), diff --git a/dal/dao/chii_person_collects.gen.go b/dal/dao/chii_person_collects.gen.go new file mode 100644 index 000000000..19c9b72e8 --- /dev/null +++ b/dal/dao/chii_person_collects.gen.go @@ -0,0 +1,21 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package dao + +const TableNamePersonCollect = "chii_person_collects" + +// PersonCollect 人物收藏 +type PersonCollect struct { + ID uint32 `gorm:"column:prsn_clt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Category string `gorm:"column:prsn_clt_cat;type:enum('prsn','crt');not null" json:""` + TargetID uint32 `gorm:"column:prsn_clt_mid;type:mediumint(8) unsigned;not null" json:""` + UserID uint32 `gorm:"column:prsn_clt_uid;type:mediumint(8) unsigned;not null" json:""` + CreatedTime uint32 `gorm:"column:prsn_clt_dateline;type:int(10) unsigned;not null" json:""` +} + +// TableName PersonCollect's table name +func (*PersonCollect) TableName() string { + return TableNamePersonCollect +} diff --git a/dal/query/chii_person_collects.gen.go b/dal/query/chii_person_collects.gen.go new file mode 100644 index 000000000..bd7753700 --- /dev/null +++ b/dal/query/chii_person_collects.gen.go @@ -0,0 +1,348 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/bangumi/server/dal/dao" +) + +func newPersonCollect(db *gorm.DB, opts ...gen.DOOption) personCollect { + _personCollect := personCollect{} + + _personCollect.personCollectDo.UseDB(db, opts...) + _personCollect.personCollectDo.UseModel(&dao.PersonCollect{}) + + tableName := _personCollect.personCollectDo.TableName() + _personCollect.ALL = field.NewAsterisk(tableName) + _personCollect.ID = field.NewUint32(tableName, "prsn_clt_id") + _personCollect.Category = field.NewString(tableName, "prsn_clt_cat") + _personCollect.TargetID = field.NewUint32(tableName, "prsn_clt_mid") + _personCollect.UserID = field.NewUint32(tableName, "prsn_clt_uid") + _personCollect.CreatedTime = field.NewUint32(tableName, "prsn_clt_dateline") + + _personCollect.fillFieldMap() + + return _personCollect +} + +// personCollect 人物收藏 +type personCollect struct { + personCollectDo personCollectDo + + ALL field.Asterisk + ID field.Uint32 + Category field.String + TargetID field.Uint32 + UserID field.Uint32 + CreatedTime field.Uint32 + + fieldMap map[string]field.Expr +} + +func (p personCollect) Table(newTableName string) *personCollect { + p.personCollectDo.UseTable(newTableName) + return p.updateTableName(newTableName) +} + +func (p personCollect) As(alias string) *personCollect { + p.personCollectDo.DO = *(p.personCollectDo.As(alias).(*gen.DO)) + return p.updateTableName(alias) +} + +func (p *personCollect) updateTableName(table string) *personCollect { + p.ALL = field.NewAsterisk(table) + p.ID = field.NewUint32(table, "prsn_clt_id") + p.Category = field.NewString(table, "prsn_clt_cat") + p.TargetID = field.NewUint32(table, "prsn_clt_mid") + p.UserID = field.NewUint32(table, "prsn_clt_uid") + p.CreatedTime = field.NewUint32(table, "prsn_clt_dateline") + + p.fillFieldMap() + + return p +} + +func (p *personCollect) WithContext(ctx context.Context) *personCollectDo { + return p.personCollectDo.WithContext(ctx) +} + +func (p personCollect) TableName() string { return p.personCollectDo.TableName() } + +func (p personCollect) Alias() string { return p.personCollectDo.Alias() } + +func (p personCollect) Columns(cols ...field.Expr) gen.Columns { + return p.personCollectDo.Columns(cols...) +} + +func (p *personCollect) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := p.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (p *personCollect) fillFieldMap() { + p.fieldMap = make(map[string]field.Expr, 5) + p.fieldMap["prsn_clt_id"] = p.ID + p.fieldMap["prsn_clt_cat"] = p.Category + p.fieldMap["prsn_clt_mid"] = p.TargetID + p.fieldMap["prsn_clt_uid"] = p.UserID + p.fieldMap["prsn_clt_dateline"] = p.CreatedTime +} + +func (p personCollect) clone(db *gorm.DB) personCollect { + p.personCollectDo.ReplaceConnPool(db.Statement.ConnPool) + return p +} + +func (p personCollect) replaceDB(db *gorm.DB) personCollect { + p.personCollectDo.ReplaceDB(db) + return p +} + +type personCollectDo struct{ gen.DO } + +func (p personCollectDo) Debug() *personCollectDo { + return p.withDO(p.DO.Debug()) +} + +func (p personCollectDo) WithContext(ctx context.Context) *personCollectDo { + return p.withDO(p.DO.WithContext(ctx)) +} + +func (p personCollectDo) ReadDB() *personCollectDo { + return p.Clauses(dbresolver.Read) +} + +func (p personCollectDo) WriteDB() *personCollectDo { + return p.Clauses(dbresolver.Write) +} + +func (p personCollectDo) Session(config *gorm.Session) *personCollectDo { + return p.withDO(p.DO.Session(config)) +} + +func (p personCollectDo) Clauses(conds ...clause.Expression) *personCollectDo { + return p.withDO(p.DO.Clauses(conds...)) +} + +func (p personCollectDo) Returning(value interface{}, columns ...string) *personCollectDo { + return p.withDO(p.DO.Returning(value, columns...)) +} + +func (p personCollectDo) Not(conds ...gen.Condition) *personCollectDo { + return p.withDO(p.DO.Not(conds...)) +} + +func (p personCollectDo) Or(conds ...gen.Condition) *personCollectDo { + return p.withDO(p.DO.Or(conds...)) +} + +func (p personCollectDo) Select(conds ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Select(conds...)) +} + +func (p personCollectDo) Where(conds ...gen.Condition) *personCollectDo { + return p.withDO(p.DO.Where(conds...)) +} + +func (p personCollectDo) Order(conds ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Order(conds...)) +} + +func (p personCollectDo) Distinct(cols ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Distinct(cols...)) +} + +func (p personCollectDo) Omit(cols ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Omit(cols...)) +} + +func (p personCollectDo) Join(table schema.Tabler, on ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Join(table, on...)) +} + +func (p personCollectDo) LeftJoin(table schema.Tabler, on ...field.Expr) *personCollectDo { + return p.withDO(p.DO.LeftJoin(table, on...)) +} + +func (p personCollectDo) RightJoin(table schema.Tabler, on ...field.Expr) *personCollectDo { + return p.withDO(p.DO.RightJoin(table, on...)) +} + +func (p personCollectDo) Group(cols ...field.Expr) *personCollectDo { + return p.withDO(p.DO.Group(cols...)) +} + +func (p personCollectDo) Having(conds ...gen.Condition) *personCollectDo { + return p.withDO(p.DO.Having(conds...)) +} + +func (p personCollectDo) Limit(limit int) *personCollectDo { + return p.withDO(p.DO.Limit(limit)) +} + +func (p personCollectDo) Offset(offset int) *personCollectDo { + return p.withDO(p.DO.Offset(offset)) +} + +func (p personCollectDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *personCollectDo { + return p.withDO(p.DO.Scopes(funcs...)) +} + +func (p personCollectDo) Unscoped() *personCollectDo { + return p.withDO(p.DO.Unscoped()) +} + +func (p personCollectDo) Create(values ...*dao.PersonCollect) error { + if len(values) == 0 { + return nil + } + return p.DO.Create(values) +} + +func (p personCollectDo) CreateInBatches(values []*dao.PersonCollect, batchSize int) error { + return p.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (p personCollectDo) Save(values ...*dao.PersonCollect) error { + if len(values) == 0 { + return nil + } + return p.DO.Save(values) +} + +func (p personCollectDo) First() (*dao.PersonCollect, error) { + if result, err := p.DO.First(); err != nil { + return nil, err + } else { + return result.(*dao.PersonCollect), nil + } +} + +func (p personCollectDo) Take() (*dao.PersonCollect, error) { + if result, err := p.DO.Take(); err != nil { + return nil, err + } else { + return result.(*dao.PersonCollect), nil + } +} + +func (p personCollectDo) Last() (*dao.PersonCollect, error) { + if result, err := p.DO.Last(); err != nil { + return nil, err + } else { + return result.(*dao.PersonCollect), nil + } +} + +func (p personCollectDo) Find() ([]*dao.PersonCollect, error) { + result, err := p.DO.Find() + return result.([]*dao.PersonCollect), err +} + +func (p personCollectDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*dao.PersonCollect, err error) { + buf := make([]*dao.PersonCollect, 0, batchSize) + err = p.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (p personCollectDo) FindInBatches(result *[]*dao.PersonCollect, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return p.DO.FindInBatches(result, batchSize, fc) +} + +func (p personCollectDo) Attrs(attrs ...field.AssignExpr) *personCollectDo { + return p.withDO(p.DO.Attrs(attrs...)) +} + +func (p personCollectDo) Assign(attrs ...field.AssignExpr) *personCollectDo { + return p.withDO(p.DO.Assign(attrs...)) +} + +func (p personCollectDo) Joins(fields ...field.RelationField) *personCollectDo { + for _, _f := range fields { + p = *p.withDO(p.DO.Joins(_f)) + } + return &p +} + +func (p personCollectDo) Preload(fields ...field.RelationField) *personCollectDo { + for _, _f := range fields { + p = *p.withDO(p.DO.Preload(_f)) + } + return &p +} + +func (p personCollectDo) FirstOrInit() (*dao.PersonCollect, error) { + if result, err := p.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*dao.PersonCollect), nil + } +} + +func (p personCollectDo) FirstOrCreate() (*dao.PersonCollect, error) { + if result, err := p.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*dao.PersonCollect), nil + } +} + +func (p personCollectDo) FindByPage(offset int, limit int) (result []*dao.PersonCollect, count int64, err error) { + result, err = p.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = p.Offset(-1).Limit(-1).Count() + return +} + +func (p personCollectDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = p.Count() + if err != nil { + return + } + + err = p.Offset(offset).Limit(limit).Scan(result) + return +} + +func (p personCollectDo) Scan(result interface{}) (err error) { + return p.DO.Scan(result) +} + +func (p personCollectDo) Delete(models ...*dao.PersonCollect) (result gen.ResultInfo, err error) { + return p.DO.Delete(models) +} + +func (p *personCollectDo) withDO(do gen.Dao) *personCollectDo { + p.DO = *do.(*gen.DO) + return p +} diff --git a/dal/query/gen.go b/dal/query/gen.go index 7d1e11c49..133139c48 100644 --- a/dal/query/gen.go +++ b/dal/query/gen.go @@ -32,6 +32,7 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query { Notification: newNotification(db, opts...), NotificationField: newNotificationField(db, opts...), Person: newPerson(db, opts...), + PersonCollect: newPersonCollect(db, opts...), PersonField: newPersonField(db, opts...), PersonSubjects: newPersonSubjects(db, opts...), PrivateMessage: newPrivateMessage(db, opts...), @@ -64,6 +65,7 @@ type Query struct { Notification notification NotificationField notificationField Person person + PersonCollect personCollect PersonField personField PersonSubjects personSubjects PrivateMessage privateMessage @@ -97,6 +99,7 @@ func (q *Query) clone(db *gorm.DB) *Query { Notification: q.Notification.clone(db), NotificationField: q.NotificationField.clone(db), Person: q.Person.clone(db), + PersonCollect: q.PersonCollect.clone(db), PersonField: q.PersonField.clone(db), PersonSubjects: q.PersonSubjects.clone(db), PrivateMessage: q.PrivateMessage.clone(db), @@ -137,6 +140,7 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query { Notification: q.Notification.replaceDB(db), NotificationField: q.NotificationField.replaceDB(db), Person: q.Person.replaceDB(db), + PersonCollect: q.PersonCollect.replaceDB(db), PersonField: q.PersonField.replaceDB(db), PersonSubjects: q.PersonSubjects.replaceDB(db), PrivateMessage: q.PrivateMessage.replaceDB(db), @@ -167,6 +171,7 @@ type queryCtx struct { Notification *notificationDo NotificationField *notificationFieldDo Person *personDo + PersonCollect *personCollectDo PersonField *personFieldDo PersonSubjects *personSubjectsDo PrivateMessage *privateMessageDo @@ -197,6 +202,7 @@ func (q *Query) WithContext(ctx context.Context) *queryCtx { Notification: q.Notification.WithContext(ctx), NotificationField: q.NotificationField.WithContext(ctx), Person: q.Person.WithContext(ctx), + PersonCollect: q.PersonCollect.WithContext(ctx), PersonField: q.PersonField.WithContext(ctx), PersonSubjects: q.PersonSubjects.WithContext(ctx), PrivateMessage: q.PrivateMessage.WithContext(ctx), diff --git a/internal/collections/domain.go b/internal/collections/domain.go index a3ccbb5cd..315172987 100644 --- a/internal/collections/domain.go +++ b/internal/collections/domain.go @@ -24,7 +24,7 @@ import ( "github.com/bangumi/server/internal/pkg/null" ) -type Repo interface { +type Repo interface { //nolint:interfacebloat // WithQuery is used to replace repo's query to txn WithQuery(query *query.Query) Repo CountSubjectCollections( @@ -70,6 +70,34 @@ type Repo interface { episodeIDs []model.EpisodeID, collection collection.EpisodeCollection, at time.Time, ) (collection.UserSubjectEpisodesCollection, error) + + GetPersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, + ) (collection.UserPersonCollection, error) + + AddPersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, + ) error + + RemovePersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, + ) error + + CountPersonCollections( + ctx context.Context, + userID model.UserID, + cat collection.PersonCollectCategory, + ) (int64, error) + + ListPersonCollection( + ctx context.Context, + userID model.UserID, + cat collection.PersonCollectCategory, + limit, offset int, + ) ([]collection.UserPersonCollection, error) } type Update struct { diff --git a/internal/collections/domain/collection/model.go b/internal/collections/domain/collection/model.go index f2f229ba4..ec1b0fb07 100644 --- a/internal/collections/domain/collection/model.go +++ b/internal/collections/domain/collection/model.go @@ -51,3 +51,18 @@ type UserEpisodeCollection struct { } type UserSubjectEpisodesCollection map[model.EpisodeID]UserEpisodeCollection + +type PersonCollectCategory string + +const ( + PersonCollectCategoryPerson PersonCollectCategory = "prsn" + PersonCollectCategoryCharacter PersonCollectCategory = "crt" +) + +type UserPersonCollection struct { + ID uint32 + Category string + TargetID model.PersonID + UserID model.UserID + CreatedAt time.Time +} diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index a42e46dec..2d0114a8c 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -461,6 +461,149 @@ func (r mysqlRepo) updateCollectionTime(obj *dao.SubjectCollection, return nil } +func (r mysqlRepo) GetPersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, +) (collection.UserPersonCollection, error) { + c, err := r.q.PersonCollect.WithContext(ctx). + Where(r.q.PersonCollect.UserID.Eq(userID), r.q.PersonCollect.Category.Eq(string(cat)), + r.q.PersonCollect.TargetID.Eq(targetID)).Take() + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return collection.UserPersonCollection{}, gerr.ErrNotFound + } + return collection.UserPersonCollection{}, errgo.Wrap(err, "dal") + } + + return collection.UserPersonCollection{ + ID: c.ID, + Category: c.Category, + TargetID: c.TargetID, + UserID: c.UserID, + CreatedAt: time.Unix(int64(c.CreatedTime), 0), + }, nil +} + +func (r mysqlRepo) AddPersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, +) error { + collect := &dao.PersonCollect{ + UserID: userID, + Category: string(cat), + TargetID: targetID, + CreatedTime: uint32(time.Now().Unix()), + } + err := r.q.Transaction(func(tx *query.Query) error { + switch cat { + case collection.PersonCollectCategoryCharacter: + if _, err := tx.Character.WithContext(ctx).Where( + tx.Character.ID.Eq(targetID)).UpdateSimple(tx.Character.Collects.Add(1)); err != nil { + r.log.Error("failed to update character collects", zap.Error(err)) + return err + } + case collection.PersonCollectCategoryPerson: + if _, err := tx.Person.WithContext(ctx).Where( + tx.Person.ID.Eq(targetID)).UpdateSimple(tx.Person.Collects.Add(1)); err != nil { + r.log.Error("failed to update person collects", zap.Error(err)) + return err + } + } + if err := tx.PersonCollect.WithContext(ctx).Create(collect); err != nil { + r.log.Error("failed to create person collection record", zap.Error(err)) + return err + } + return nil + }) + if err != nil { + return errgo.Wrap(err, "dal") + } + return nil +} + +func (r mysqlRepo) RemovePersonCollection( + ctx context.Context, userID model.UserID, + cat collection.PersonCollectCategory, targetID model.PersonID, +) error { + err := r.q.Transaction(func(tx *query.Query) error { + switch cat { + case collection.PersonCollectCategoryCharacter: + if _, err := tx.Character.WithContext(ctx).Where( + tx.Character.ID.Eq(targetID)).UpdateSimple(tx.Character.Collects.Sub(1)); err != nil { + r.log.Error("failed to update character collects", zap.Error(err)) + return err + } + case collection.PersonCollectCategoryPerson: + if _, err := tx.Person.WithContext(ctx).Where( + tx.Person.ID.Eq(targetID)).UpdateSimple(tx.Person.Collects.Sub(1)); err != nil { + r.log.Error("failed to update person collects", zap.Error(err)) + return err + } + } + _, err := tx.PersonCollect.WithContext(ctx).Where( + tx.PersonCollect.UserID.Eq(userID), + tx.PersonCollect.Category.Eq(string(cat)), + tx.PersonCollect.TargetID.Eq(targetID), + ).Delete() + if err != nil { + r.log.Error("failed to delete person collection record", zap.Error(err)) + return err + } + return nil + }) + if err != nil { + return errgo.Wrap(err, "dal") + } + + return nil +} + +func (r mysqlRepo) CountPersonCollections( + ctx context.Context, + userID model.UserID, + cat collection.PersonCollectCategory, +) (int64, error) { + q := r.q.PersonCollect.WithContext(ctx). + Where(r.q.PersonCollect.UserID.Eq(userID), r.q.PersonCollect.Category.Eq(string(cat))) + + c, err := q.Count() + if err != nil { + return 0, errgo.Wrap(err, "dal") + } + + return c, nil +} + +func (r mysqlRepo) ListPersonCollection( + ctx context.Context, + userID model.UserID, + cat collection.PersonCollectCategory, + limit, offset int, +) ([]collection.UserPersonCollection, error) { + q := r.q.PersonCollect.WithContext(ctx). + Order(r.q.PersonCollect.CreatedTime.Desc()). + Where(r.q.PersonCollect.UserID.Eq(userID), r.q.PersonCollect.Category.Eq(string(cat))).Limit(limit).Offset(offset) + + collections, err := q.Find() + if err != nil { + r.log.Error("unexpected error happened", zap.Error(err)) + return nil, errgo.Wrap(err, "dal") + } + + var results = make([]collection.UserPersonCollection, len(collections)) + for i, c := range collections { + results[i] = collection.UserPersonCollection{ + ID: c.ID, + Category: c.Category, + TargetID: c.TargetID, + UserID: c.UserID, + CreatedAt: time.Unix(int64(c.CreatedTime), 0), + } + } + + return results, nil +} + func (r mysqlRepo) UpdateEpisodeCollection( ctx context.Context, userID model.UserID, diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index c38945548..7507b6110 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -23,6 +23,7 @@ import ( "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen/field" + "gorm.io/gorm" "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" @@ -415,6 +416,7 @@ func TestMysqlRepo_UpdateSubjectCollectionType(t *testing.T) { require.Zero(t, r.DoneTime) require.Zero(t, r.OnHoldTime) } + func TestMysqlRepo_UpdateEpisodeCollection(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() @@ -507,3 +509,197 @@ func TestMysqlRepo_UpdateEpisodeCollection_create_ep_status(t *testing.T) { require.Contains(t, m, uint32(2)) require.EqualValues(t, collection.EpisodeCollectionDone, m[2].Type) } + +func TestMysqlRepo_GetPersonCollect(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + const uid model.UserID = 39000 + const cat = "prsn" + const mid model.PersonID = 12000 + + repo, q := getRepo(t) + test.RunAndCleanup(t, func() { + _, err := q.PersonCollect.WithContext(context.TODO()).Where(q.PersonCollect.UserID.Eq(uid)).Delete() + require.NoError(t, err) + }) + + err := q.PersonCollect.WithContext(context.Background()).Create(&dao.PersonCollect{ + UserID: uid, + Category: cat, + TargetID: mid, + CreatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + + r, err := repo.GetPersonCollection(context.Background(), uid, cat, mid) + require.NoError(t, err) + require.Equal(t, uid, r.UserID) + require.Equal(t, mid, r.TargetID) + require.Equal(t, cat, r.Category) +} + +func TestMysqlRepo_AddPersonCollect(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + const uid model.UserID = 40000 + const cat = "prsn" + const mid model.PersonID = 13000 + const collects uint32 = 10 + + repo, q := getRepo(t) + table := q.PersonCollect + test.RunAndCleanup(t, func() { + _, err := table.WithContext(context.TODO()).Where(table.UserID.Eq(uid)).Delete() + require.NoError(t, err) + _, err = q.Person.WithContext(context.TODO()).Where(q.Person.ID.Eq(mid)).Delete() + require.NoError(t, err) + }) + + err := q.Person.WithContext(context.Background()).Create(&dao.Person{ + ID: mid, + Collects: collects, + }) + require.NoError(t, err) + + err = repo.AddPersonCollection(context.Background(), uid, cat, mid) + require.NoError(t, err) + + r, err := table.WithContext(context.TODO()).Where(table.UserID.Eq(uid)).Take() + require.NoError(t, err) + require.NotZero(t, r.ID) + + p, err := q.Person.WithContext(context.Background()).Where(q.Person.ID.Eq(mid)).Take() + require.NoError(t, err) + require.Equal(t, collects+1, p.Collects) +} + +func TestMysqlRepo_RemovePersonCollect(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + const uid model.UserID = 41000 + const cat = "prsn" + const mid model.PersonID = 14000 + const collects uint32 = 10 + + repo, q := getRepo(t) + test.RunAndCleanup(t, func() { + _, err := q.PersonCollect.WithContext(context.TODO()).Where(q.PersonCollect.UserID.Eq(uid)).Delete() + require.NoError(t, err) + _, err = q.Person.WithContext(context.TODO()).Where(q.Person.ID.Eq(mid)).Delete() + require.NoError(t, err) + }) + + err := q.Person.WithContext(context.Background()).Create(&dao.Person{ + ID: mid, + Collects: collects, + }) + require.NoError(t, err) + err = q.PersonCollect.WithContext(context.Background()).Create(&dao.PersonCollect{ + UserID: uid, + Category: cat, + TargetID: mid, + CreatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + + r, err := q.PersonCollect.WithContext(context.TODO()).Where(q.PersonCollect.UserID.Eq(uid)).Take() + require.NoError(t, err) + require.NotZero(t, r.ID) + + err = repo.RemovePersonCollection(context.Background(), uid, cat, mid) + require.NoError(t, err) + + _, err = q.PersonCollect.WithContext(context.TODO()).Where(q.PersonCollect.UserID.Eq(uid)).Take() + require.ErrorIs(t, err, gorm.ErrRecordNotFound) + + p, err := q.Person.WithContext(context.Background()).Where(q.Person.ID.Eq(mid)).Take() + require.NoError(t, err) + require.Equal(t, collects-1, p.Collects) +} + +func TestMysqlRepo_CountPersonCollections(t *testing.T) { + t.Parallel() + test.RequireEnv(t, test.EnvMysql) + + const uid model.UserID = 42000 + const cat = "prsn" + + repo, q := getRepo(t) + test.RunAndCleanup(t, func() { + _, err := q.PersonCollect. + WithContext(context.Background()). + Where(q.PersonCollect.UserID.Eq(uid)). + Delete() + require.NoError(t, err) + }) + + for i := 0; i < 5; i++ { + err := q.PersonCollect. + WithContext(context.Background()). + Create(&dao.PersonCollect{ + UserID: uid, + TargetID: model.PersonID(i + 100), + Category: cat, + CreatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + } + + count, err := repo.CountPersonCollections(context.Background(), uid, cat) + require.NoError(t, err) + require.EqualValues(t, 5, count) +} + +func TestMysqlRepo_ListPersonCollection(t *testing.T) { + t.Parallel() + test.RequireEnv(t, test.EnvMysql) + + const uid model.UserID = 43000 + const cat = "prsn" + + repo, q := getRepo(t) + + var err error + test.RunAndCleanup(t, func() { + _, err = q.PersonCollect. + WithContext(context.Background()). + Where(q.PersonCollect.UserID.Eq(uid)). + Delete() + require.NoError(t, err) + }) + + data, err := repo.ListPersonCollection(context.Background(), uid, collection.PersonCollectCategory(cat), 5, 0) + require.NoError(t, err) + require.Len(t, data, 0) + + for i := 0; i < 5; i++ { + err = q.PersonCollect. + WithContext(context.Background()). + Create(&dao.PersonCollect{ + UserID: uid, + TargetID: model.PersonID(i + 100), + Category: cat, + CreatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + } + + for i := 0; i < 2; i++ { + err = q.PersonCollect. + WithContext(context.Background()). + Create(&dao.PersonCollect{ + UserID: uid, + TargetID: model.PersonID(i + 200), + Category: cat, + CreatedTime: uint32(time.Now().Unix()), + }) + require.NoError(t, err) + } + + data, err = repo.ListPersonCollection(context.Background(), uid, collection.PersonCollectCategory(cat), 5, 0) + require.NoError(t, err) + require.Len(t, data, 5) +} diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index 811b211b2..3fbafd138 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -30,6 +30,113 @@ func (_m *CollectionRepo) EXPECT() *CollectionRepo_Expecter { return &CollectionRepo_Expecter{mock: &_m.Mock} } +// AddPersonCollection provides a mock function with given fields: ctx, userID, cat, targetID +func (_m *CollectionRepo) AddPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) error { + ret := _m.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for AddPersonCollection") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { + r0 = rf(ctx, userID, cat, targetID) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// CollectionRepo_AddPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPersonCollection' +type CollectionRepo_AddPersonCollection_Call struct { + *mock.Call +} + +// AddPersonCollection is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - cat collection.PersonCollectCategory +// - targetID uint32 +func (_e *CollectionRepo_Expecter) AddPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_AddPersonCollection_Call { + return &CollectionRepo_AddPersonCollection_Call{Call: _e.mock.On("AddPersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionRepo_AddPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_AddPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) + }) + return _c +} + +func (_c *CollectionRepo_AddPersonCollection_Call) Return(_a0 error) *CollectionRepo_AddPersonCollection_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *CollectionRepo_AddPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) error) *CollectionRepo_AddPersonCollection_Call { + _c.Call.Return(run) + return _c +} + +// CountPersonCollections provides a mock function with given fields: ctx, userID, cat +func (_m *CollectionRepo) CountPersonCollections(ctx context.Context, userID uint32, cat collection.PersonCollectCategory) (int64, error) { + ret := _m.Called(ctx, userID, cat) + + if len(ret) == 0 { + panic("no return value specified for CountPersonCollections") + } + + var r0 int64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory) (int64, error)); ok { + return rf(ctx, userID, cat) + } + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory) int64); ok { + r0 = rf(ctx, userID, cat) + } else { + r0 = ret.Get(0).(int64) + } + + if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory) error); ok { + r1 = rf(ctx, userID, cat) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CollectionRepo_CountPersonCollections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountPersonCollections' +type CollectionRepo_CountPersonCollections_Call struct { + *mock.Call +} + +// CountPersonCollections is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - cat collection.PersonCollectCategory +func (_e *CollectionRepo_Expecter) CountPersonCollections(ctx interface{}, userID interface{}, cat interface{}) *CollectionRepo_CountPersonCollections_Call { + return &CollectionRepo_CountPersonCollections_Call{Call: _e.mock.On("CountPersonCollections", ctx, userID, cat)} +} + +func (_c *CollectionRepo_CountPersonCollections_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory)) *CollectionRepo_CountPersonCollections_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory)) + }) + return _c +} + +func (_c *CollectionRepo_CountPersonCollections_Call) Return(_a0 int64, _a1 error) *CollectionRepo_CountPersonCollections_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *CollectionRepo_CountPersonCollections_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory) (int64, error)) *CollectionRepo_CountPersonCollections_Call { + _c.Call.Return(run) + return _c +} + // CountSubjectCollections provides a mock function with given fields: ctx, userID, subjectType, collectionType, showPrivate func (_m *CollectionRepo) CountSubjectCollections(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool) (int64, error) { ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate) @@ -90,6 +197,65 @@ func (_c *CollectionRepo_CountSubjectCollections_Call) RunAndReturn(run func(con return _c } +// GetPersonCollection provides a mock function with given fields: ctx, userID, cat, targetID +func (_m *CollectionRepo) GetPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) (collection.UserPersonCollection, error) { + ret := _m.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for GetPersonCollection") + } + + var r0 collection.UserPersonCollection + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) (collection.UserPersonCollection, error)); ok { + return rf(ctx, userID, cat, targetID) + } + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) collection.UserPersonCollection); ok { + r0 = rf(ctx, userID, cat, targetID) + } else { + r0 = ret.Get(0).(collection.UserPersonCollection) + } + + if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { + r1 = rf(ctx, userID, cat, targetID) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CollectionRepo_GetPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPersonCollection' +type CollectionRepo_GetPersonCollection_Call struct { + *mock.Call +} + +// GetPersonCollection is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - cat collection.PersonCollectCategory +// - targetID uint32 +func (_e *CollectionRepo_Expecter) GetPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_GetPersonCollection_Call { + return &CollectionRepo_GetPersonCollection_Call{Call: _e.mock.On("GetPersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionRepo_GetPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_GetPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) + }) + return _c +} + +func (_c *CollectionRepo_GetPersonCollection_Call) Return(_a0 collection.UserPersonCollection, _a1 error) *CollectionRepo_GetPersonCollection_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *CollectionRepo_GetPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) (collection.UserPersonCollection, error)) *CollectionRepo_GetPersonCollection_Call { + _c.Call.Return(run) + return _c +} + // GetSubjectCollection provides a mock function with given fields: ctx, userID, subjectID func (_m *CollectionRepo) GetSubjectCollection(ctx context.Context, userID uint32, subjectID uint32) (collection.UserSubjectCollection, error) { ret := _m.Called(ctx, userID, subjectID) @@ -208,6 +374,68 @@ func (_c *CollectionRepo_GetSubjectEpisodesCollection_Call) RunAndReturn(run fun return _c } +// ListPersonCollection provides a mock function with given fields: ctx, userID, cat, limit, offset +func (_m *CollectionRepo) ListPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, limit int, offset int) ([]collection.UserPersonCollection, error) { + ret := _m.Called(ctx, userID, cat, limit, offset) + + if len(ret) == 0 { + panic("no return value specified for ListPersonCollection") + } + + var r0 []collection.UserPersonCollection + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) ([]collection.UserPersonCollection, error)); ok { + return rf(ctx, userID, cat, limit, offset) + } + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) []collection.UserPersonCollection); ok { + r0 = rf(ctx, userID, cat, limit, offset) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]collection.UserPersonCollection) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) error); ok { + r1 = rf(ctx, userID, cat, limit, offset) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CollectionRepo_ListPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListPersonCollection' +type CollectionRepo_ListPersonCollection_Call struct { + *mock.Call +} + +// ListPersonCollection is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - cat collection.PersonCollectCategory +// - limit int +// - offset int +func (_e *CollectionRepo_Expecter) ListPersonCollection(ctx interface{}, userID interface{}, cat interface{}, limit interface{}, offset interface{}) *CollectionRepo_ListPersonCollection_Call { + return &CollectionRepo_ListPersonCollection_Call{Call: _e.mock.On("ListPersonCollection", ctx, userID, cat, limit, offset)} +} + +func (_c *CollectionRepo_ListPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, limit int, offset int)) *CollectionRepo_ListPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(int), args[4].(int)) + }) + return _c +} + +func (_c *CollectionRepo_ListPersonCollection_Call) Return(_a0 []collection.UserPersonCollection, _a1 error) *CollectionRepo_ListPersonCollection_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *CollectionRepo_ListPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, int, int) ([]collection.UserPersonCollection, error)) *CollectionRepo_ListPersonCollection_Call { + _c.Call.Return(run) + return _c +} + // ListSubjectCollection provides a mock function with given fields: ctx, userID, subjectType, collectionType, showPrivate, limit, offset func (_m *CollectionRepo) ListSubjectCollection(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int) ([]collection.UserSubjectCollection, error) { ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) @@ -272,6 +500,55 @@ func (_c *CollectionRepo_ListSubjectCollection_Call) RunAndReturn(run func(conte return _c } +// RemovePersonCollection provides a mock function with given fields: ctx, userID, cat, targetID +func (_m *CollectionRepo) RemovePersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) error { + ret := _m.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for RemovePersonCollection") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { + r0 = rf(ctx, userID, cat, targetID) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// CollectionRepo_RemovePersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RemovePersonCollection' +type CollectionRepo_RemovePersonCollection_Call struct { + *mock.Call +} + +// RemovePersonCollection is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +// - cat collection.PersonCollectCategory +// - targetID uint32 +func (_e *CollectionRepo_Expecter) RemovePersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_RemovePersonCollection_Call { + return &CollectionRepo_RemovePersonCollection_Call{Call: _e.mock.On("RemovePersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionRepo_RemovePersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_RemovePersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) + }) + return _c +} + +func (_c *CollectionRepo_RemovePersonCollection_Call) Return(_a0 error) *CollectionRepo_RemovePersonCollection_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *CollectionRepo_RemovePersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) error) *CollectionRepo_RemovePersonCollection_Call { + _c.Call.Return(run) + return _c +} + // UpdateEpisodeCollection provides a mock function with given fields: ctx, userID, subjectID, episodeIDs, _a4, at func (_m *CollectionRepo) UpdateEpisodeCollection(ctx context.Context, userID uint32, subjectID uint32, episodeIDs []uint32, _a4 collection.EpisodeCollection, at time.Time) (collection.UserSubjectEpisodesCollection, error) { ret := _m.Called(ctx, userID, subjectID, episodeIDs, _a4, at) diff --git a/openapi/components/subject_collection.yaml b/openapi/components/user_subject_collection.yaml similarity index 100% rename from openapi/components/subject_collection.yaml rename to openapi/components/user_subject_collection.yaml diff --git a/openapi/components/subject_collection_modify_payload.yaml b/openapi/components/user_subject_collection_modify_payload.yaml similarity index 100% rename from openapi/components/subject_collection_modify_payload.yaml rename to openapi/components/user_subject_collection_modify_payload.yaml diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 4825439e1..16fb81a38 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -571,6 +571,70 @@ paths: application/json: schema: "$ref": "#/components/schemas/ErrorDetail" + "/v0/characters/{character_id}/collect": + post: + tags: + - 角色 + summary: Collect character for current user + operationId: collectCharacterByCharacterIdAndUserId + description: 为当前用户收藏角色 + parameters: + - $ref: "#/components/parameters/path_character_id" + responses: + "204": + description: Successful Response + "400": + description: character ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "401": + description: not authorized + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 角色不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - HTTPBearer: [] + delete: + tags: + - 角色 + summary: Uncollect character for current user + operationId: uncollectCharacterByCharacterIdAndUserId + description: 为当前用户取消收藏角色 + parameters: + - $ref: "#/components/parameters/path_character_id" + responses: + "204": + description: Successful Response + "400": + description: character ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "401": + description: not authorized + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 角色不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - HTTPBearer: [] + "/v0/persons/{person_id}": get: tags: @@ -696,6 +760,69 @@ paths: application/json: schema: "$ref": "#/components/schemas/ErrorDetail" + "/v0/persons/{person_id}/collect": + post: + tags: + - 人物 + summary: Collect person for current user + operationId: collectPersonByPersonIdAndUserId + description: 为当前用户收藏人物 + parameters: + - $ref: "#/components/parameters/path_person_id" + responses: + "204": + description: Successful Response + "400": + description: person ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "401": + description: not authorized + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 人物不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - OptionalHTTPBearer: [] + delete: + tags: + - 人物 + summary: Uncollect person for current user + operationId: uncollectPersonByPersonIdAndUserId + description: 为当前用户取消收藏人物 + parameters: + - $ref: "#/components/parameters/path_person_id" + responses: + "204": + description: Successful Response + "400": + description: person ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "401": + description: not authorized + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 人物不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - OptionalHTTPBearer: [] "/v0/users/{username}": get: @@ -847,8 +974,8 @@ paths: get: tags: - 收藏 - summary: 获取用户单个收藏 - description: 获取对应用户的收藏,查看私有收藏需要access token。 + summary: 获取用户单个条目收藏 + description: 获取对应用户的收藏,查看私有收藏需要 access token operationId: getUserCollection parameters: - $ref: "#/components/parameters/path_username" @@ -878,7 +1005,7 @@ paths: post: tags: - 收藏 - summary: 新增或修改用户单个收藏 + summary: 新增或修改用户单个条目收藏 description: | 修改条目收藏状态, 如果不存在则创建,如果存在则修改 @@ -1143,6 +1270,106 @@ paths: security: - HTTPBearer: [] + "/v0/users/{username}/collections/-/characters": + get: + tags: + - 收藏 + summary: 获取用户角色收藏列表 + operationId: getUserCharacterCollections + parameters: + - $ref: "#/components/parameters/path_username" + responses: + "200": + description: Successful Response + content: + application/json: + schema: + "$ref": "#/components/schemas/Paged_UserCharacterCollection" + "404": + description: 用户不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "/v0/users/{username}/collections/-/characters/{character_id}": + get: + tags: + - 收藏 + summary: 获取用户单个角色收藏信息 + operationId: getUserCharacterCollection + parameters: + - $ref: "#/components/parameters/path_username" + - $ref: "#/components/parameters/path_character_id" + responses: + "200": + description: Successful Response + content: + application/json: + schema: + "$ref": "#/components/schemas/UserCharacterCollection" + "400": + description: character ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 用户或角色不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + + "/v0/users/{username}/collections/-/persons": + get: + tags: + - 收藏 + summary: 获取用户人物收藏列表 + operationId: getUserPersonCollections + parameters: + - $ref: "#/components/parameters/path_username" + responses: + "200": + description: Successful Response + content: + application/json: + schema: + "$ref": "#/components/schemas/Paged_UserPersonCollection" + "404": + description: 用户不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "/v0/users/{username}/collections/-/persons/{person_id}": + get: + tags: + - 收藏 + summary: 获取用户单个人物收藏信息 + operationId: getUserPersonCollection + parameters: + - $ref: "#/components/parameters/path_username" + - $ref: "#/components/parameters/path_person_id" + responses: + "200": + description: Successful Response + content: + application/json: + schema: + "$ref": "#/components/schemas/UserPersonCollection" + "400": + description: person ID not valid + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: 用户或人物不存在 + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "/v0/revisions/persons": get: tags: @@ -2342,6 +2569,50 @@ components: items: "$ref": "#/components/schemas/UserSubjectCollection" default: [] + Paged_UserCharacterCollection: + title: Paged[UserCharacterCollection] + type: object + properties: + total: + title: Total + type: integer + default: 0 + limit: + title: Limit + type: integer + default: 0 + offset: + title: Offset + type: integer + default: 0 + data: + title: Data + type: array + items: + "$ref": "#/components/schemas/UserCharacterCollection" + default: [] + Paged_UserPersonCollection: + title: Paged[UserPersonCollection] + type: object + properties: + total: + title: Total + type: integer + default: 0 + limit: + title: Limit + type: integer + default: 0 + offset: + title: Offset + type: integer + default: 0 + data: + title: Data + type: array + items: + "$ref": "#/components/schemas/UserPersonCollection" + default: [] Person: title: Person required: @@ -2621,6 +2892,71 @@ components: relation: title: Relation type: string + UserCharacterCollection: + title: UserCharacterCollection + required: + - id + - name + - type + - created_at + type: object + properties: + id: + title: ID + type: integer + name: + title: Name + type: string + type: + type: integer + allOf: + - "$ref": "#/components/schemas/CharacterType" + description: 角色,机体,舰船,组织... + images: + title: Images + type: object + allOf: + - "$ref": "#/components/schemas/PersonImages" + description: object with some size of images, this object maybe `null` + created_at: + title: Created At + type: string + format: date-time + UserPersonCollection: + title: UserPersonCollection + required: + - id + - name + - type + - career + - created_at + type: object + properties: + id: + title: ID + type: integer + name: + title: Name + type: string + type: + type: integer + allOf: + - "$ref": "#/components/schemas/PersonType" + description: "`1`, `2`, `3` 表示 `个人`, `公司`, `组合`" + career: + type: array + items: + "$ref": "#/components/schemas/PersonCareer" + images: + title: Images + type: object + allOf: + - "$ref": "#/components/schemas/PersonImages" + description: object with some size of images, this object maybe `null` + created_at: + title: Created At + type: string + format: date-time Revision: title: Revision required: @@ -2667,9 +3003,9 @@ components: SubjectType: $ref: "./components/subject_type.yaml" UserSubjectCollection: - $ref: "./components/subject_collection.yaml" + $ref: "./components/user_subject_collection.yaml" UserSubjectCollectionModifyPayload: - $ref: "./components/subject_collection_modify_payload.yaml" + $ref: "./components/user_subject_collection_modify_payload.yaml" UserEpisodeCollection: $ref: "./components/get-user-episodes-collection.yaml" v0_RelatedSubject: diff --git a/web/handler/character/character.go b/web/handler/character/character.go index 2d42cfa2f..8578489f9 100644 --- a/web/handler/character/character.go +++ b/web/handler/character/character.go @@ -20,6 +20,7 @@ import ( "github.com/bangumi/server/config" "github.com/bangumi/server/ctrl" "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/collections" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/pkg/compat" @@ -30,28 +31,31 @@ import ( ) type Character struct { - ctrl ctrl.Ctrl - person person.Service - c character.Repo - subject subject.Repo - log *zap.Logger - cfg config.AppConfig + ctrl ctrl.Ctrl + person person.Service + character character.Repo + subject subject.Repo + collect collections.Repo + log *zap.Logger + cfg config.AppConfig } func New( - p person.Service, + person person.Service, ctrl ctrl.Ctrl, - c character.Repo, + character character.Repo, subject subject.Repo, + collect collections.Repo, log *zap.Logger, ) (Character, error) { return Character{ - ctrl: ctrl, - c: c, - subject: subject, - person: p, - log: log.Named("handler.Character"), - cfg: config.AppConfig{}, + ctrl: ctrl, + character: character, + subject: subject, + person: person, + collect: collect, + log: log.Named("handler.Character"), + cfg: config.AppConfig{}, }, nil } diff --git a/web/handler/character/collect.go b/web/handler/character/collect.go new file mode 100644 index 000000000..f8d6c60b6 --- /dev/null +++ b/web/handler/character/collect.go @@ -0,0 +1,90 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package character + +import ( + "errors" + + "github.com/labstack/echo/v4" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/web/accessor" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h Character) CollectCharacter(c echo.Context) error { + cid, err := req.ParseID(c.Param("id")) + if err != nil { + return err + } + uid := accessor.GetFromCtx(c).ID + return h.collectCharacter(c, cid, uid) +} + +func (h Character) UncollectCharacter(c echo.Context) error { + cid, err := req.ParseID(c.Param("id")) + if err != nil { + return err + } + uid := accessor.GetFromCtx(c).ID + return h.uncollectCharacter(c, cid, uid) +} + +func (h Character) collectCharacter(c echo.Context, cid uint32, uid uint32) error { + ctx := c.Request().Context() + // check if the character exists + if _, err := h.character.Get(ctx, cid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + return res.InternalError(c, err, "get character error") + } + // check if the user has collected the character + if _, err := h.collect.GetPersonCollection(ctx, uid, collection.PersonCollectCategoryCharacter, cid); err == nil { + return nil // already collected + } else if !errors.Is(err, gerr.ErrNotFound) { + return res.InternalError(c, err, "get character collect error") + } + // add the collect + if err := h.collect.AddPersonCollection(ctx, uid, collection.PersonCollectCategoryCharacter, cid); err != nil { + return res.InternalError(c, err, "add character collect failed") + } + return nil +} + +func (h Character) uncollectCharacter(c echo.Context, cid uint32, uid uint32) error { + ctx := c.Request().Context() + // check if the character exists + if _, err := h.character.Get(ctx, cid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + return res.InternalError(c, err, "get character error") + } + // check if the user has collected the character + if _, err := h.collect.GetPersonCollection(ctx, uid, collection.PersonCollectCategoryCharacter, cid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("character not collected") + } + return res.InternalError(c, err, "get character collect error") + } + // remove the collect + if err := h.collect.RemovePersonCollection(ctx, uid, collection.PersonCollectCategoryCharacter, cid); err != nil { + return res.InternalError(c, err, "remove character collect failed") + } + return nil +} diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 5def90ca7..08547ddca 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -36,7 +36,7 @@ func (h Character) Get(c echo.Context) error { return err } - r, err := h.c.Get(c.Request().Context(), id) + r, err := h.character.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { return res.ErrNotFound @@ -62,7 +62,7 @@ func (h Character) GetImage(c echo.Context) error { return err } - p, err := h.c.Get(c.Request().Context(), id) + p, err := h.character.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { return res.ErrNotFound diff --git a/web/handler/character/get_related_persons.go b/web/handler/character/get_related_persons.go index 421a237f9..d82bc8c18 100644 --- a/web/handler/character/get_related_persons.go +++ b/web/handler/character/get_related_persons.go @@ -33,7 +33,7 @@ func (h Character) GetRelatedPersons(c echo.Context) error { return err } - _, err = h.c.Get(c.Request().Context(), id) + _, err = h.character.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { return res.ErrNotFound diff --git a/web/handler/character/get_related_subjects.go b/web/handler/character/get_related_subjects.go index 38ca03a30..ce228d015 100644 --- a/web/handler/character/get_related_subjects.go +++ b/web/handler/character/get_related_subjects.go @@ -65,7 +65,7 @@ func (h Character) getCharacterRelatedSubjects( ctx context.Context, characterID model.CharacterID, ) (model.Character, []model.SubjectCharacterRelation, error) { - character, err := h.c.Get(ctx, characterID) + character, err := h.character.Get(ctx, characterID) if err != nil { return model.Character{}, nil, errgo.Wrap(err, "get character") } diff --git a/web/handler/person/collect.go b/web/handler/person/collect.go new file mode 100644 index 000000000..d1ec9fa62 --- /dev/null +++ b/web/handler/person/collect.go @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package person + +import ( + "errors" + + "github.com/labstack/echo/v4" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/web/accessor" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h Person) CollectPerson(c echo.Context) error { + pid, err := req.ParseID(c.Param("id")) + if err != nil { + return err + } + + uid := accessor.GetFromCtx(c).ID + return h.collectPerson(c, pid, uid) +} + +func (h Person) UncollectPerson(c echo.Context) error { + pid, err := req.ParseID(c.Param("id")) + if err != nil { + return err + } + + uid := accessor.GetFromCtx(c).ID + return h.uncollectPerson(c, pid, uid) +} + +func (h Person) collectPerson(c echo.Context, pid uint32, uid uint32) error { + ctx := c.Request().Context() + // check if the person exists + if _, err := h.person.Get(ctx, pid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + return res.InternalError(c, err, "get person error") + } + // check if the user has collected the person + if _, err := h.collect.GetPersonCollection(ctx, uid, collection.PersonCollectCategoryPerson, pid); err == nil { + return nil // already collected + } else if !errors.Is(err, gerr.ErrNotFound) { + return res.InternalError(c, err, "get person collect error") + } + // add the collect + if err := h.collect.AddPersonCollection(ctx, uid, collection.PersonCollectCategoryPerson, pid); err != nil { + return res.InternalError(c, err, "add person collect failed") + } + return nil +} + +func (h Person) uncollectPerson(c echo.Context, pid uint32, uid uint32) error { + ctx := c.Request().Context() + // check if the person exists + if _, err := h.person.Get(ctx, pid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + return res.InternalError(c, err, "get person error") + } + // check if the user has collected the person + if _, err := h.collect.GetPersonCollection(ctx, uid, collection.PersonCollectCategoryPerson, pid); err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("person not collected") + } + return res.InternalError(c, err, "get person collect error") + } + // remove the collect + if err := h.collect.RemovePersonCollection(ctx, uid, collection.PersonCollectCategoryPerson, pid); err != nil { + return res.InternalError(c, err, "remove person collect failed") + } + return nil +} diff --git a/web/handler/person/get_related_characters.go b/web/handler/person/get_related_characters.go index 4207cd4d4..60a530fb6 100644 --- a/web/handler/person/get_related_characters.go +++ b/web/handler/person/get_related_characters.go @@ -59,7 +59,7 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { SubjectID: relation.Subject.ID, } } - subjectRelations, err := h.c.GetSubjectRelationByIDs(c.Request().Context(), compositeIDs) + subjectRelations, err := h.character.GetSubjectRelationByIDs(c.Request().Context(), compositeIDs) if err != nil { return errgo.Wrap(err, "CharacterRepo.GetRelations") } @@ -96,7 +96,7 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { func (h Person) getPersonRelatedCharacters( ctx context.Context, personID model.PersonID, ) ([]model.PersonCharacterRelation, error) { - relations, err := h.c.GetPersonRelated(ctx, personID) + relations, err := h.character.GetPersonRelated(ctx, personID) if err != nil { return nil, errgo.Wrap(err, "CharacterRepo.GetPersonRelated") } @@ -112,7 +112,7 @@ func (h Person) getPersonRelatedCharacters( subjectIDs[i] = relation.SubjectID } - characters, err := h.c.GetByIDs(ctx, characterIDs) + characters, err := h.character.GetByIDs(ctx, characterIDs) if err != nil { return nil, errgo.Wrap(err, "CharacterRepo.GetByIDs") } diff --git a/web/handler/person/person.go b/web/handler/person/person.go index 3146859ae..a087c9cef 100644 --- a/web/handler/person/person.go +++ b/web/handler/person/person.go @@ -17,27 +17,31 @@ package person import ( "github.com/bangumi/server/ctrl" "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/collections" "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/subject" ) type Person struct { - person person.Repo - c character.Repo - ctrl ctrl.Ctrl - subject subject.Repo + ctrl ctrl.Ctrl + person person.Repo + character character.Repo + subject subject.Repo + collect collections.Repo } func New( ctrl ctrl.Ctrl, person person.Repo, subject subject.Repo, - c character.Repo, + character character.Repo, + collect collections.Repo, ) (Person, error) { return Person{ - person: person, - ctrl: ctrl, - c: c, - subject: subject, + ctrl: ctrl, + person: person, + character: character, + subject: subject, + collect: collect, }, nil } diff --git a/web/handler/user/collection_test.go b/web/handler/user/collection_test.go index cc54dfeb1..e25c85dcf 100644 --- a/web/handler/user/collection_test.go +++ b/web/handler/user/collection_test.go @@ -130,3 +130,151 @@ func TestUser_ListSubjectCollection_other_user(t *testing.T) { Get(fmt.Sprintf("/v0/users/%s/collections/%d", username, subjectID)). ExpectCode(http.StatusNotFound) } + +func TestUser_GetPersonCollection(t *testing.T) { + t.Parallel() + const username = "ni" + const userID model.UserID = 7 + const personID model.PersonID = 9 + + m := mocks.NewUserRepo(t) + m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) + c := mocks.NewCollectionRepo(t) + c.EXPECT().GetPersonCollection(mock.Anything, userID, mock.Anything, mock.Anything). + Return(collection.UserPersonCollection{UserID: userID, Category: "prsn", TargetID: personID}, nil) + + p := mocks.NewPersonRepo(t) + p.EXPECT().Get(mock.Anything, personID).Return(model.Person{ + ID: personID, + Name: "v", + }, nil) + + app := test.GetWebApp(t, test.Mock{UserRepo: m, CollectionRepo: c, PersonRepo: p}) + + var r res.PersonCollection + resp := htest.New(t, app). + Get(fmt.Sprintf("/v0/users/%s/collections/-/persons/%d", username, personID)). + JSON(&r). + ExpectCode(http.StatusOK) + + require.Equal(t, personID, r.ID, resp.BodyString()) + require.Equal(t, "v", r.Name, resp.BodyString()) +} + +func TestUser_ListPersonCollection(t *testing.T) { + t.Parallel() + const username = "ni" + const userID model.UserID = 7 + const personID model.PersonID = 9 + + m := mocks.NewUserRepo(t) + m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) + + c := mocks.NewCollectionRepo(t) + c.EXPECT().ListPersonCollection(mock.Anything, userID, mock.Anything, 10, 0). + Return([]collection.UserPersonCollection{{UserID: userID, Category: "prsn", TargetID: personID}}, nil) + c.EXPECT().CountPersonCollections(mock.Anything, userID, mock.Anything). + Return(1, nil) + + p := mocks.NewPersonRepo(t) + p.EXPECT().GetByIDs(mock.Anything, mock.Anything).Return(map[model.PersonID]model.Person{ + personID: {ID: personID, Name: "v"}, + }, nil) + + app := test.GetWebApp(t, test.Mock{UserRepo: m, CollectionRepo: c, PersonRepo: p}) + + var r struct { + Data json.RawMessage `json:"data"` + Total int64 `json:"total"` + Limit int `json:"limit"` + Offset int `json:"offset"` + } + + resp := htest.New(t, app). + Query("limit", "10"). + Get(fmt.Sprintf("/v0/users/%s/collections/-/persons", username)). + JSON(&r). + ExpectCode(http.StatusOK) + + var data []res.PersonCollection + require.NoError(t, json.Unmarshal(r.Data, &data)) + + require.Len(t, data, 1) + + require.Equal(t, personID, data[0].ID, resp.BodyString()) + require.Equal(t, "v", data[0].Name, resp.BodyString()) +} + +func TestUser_GetCharacterCollection(t *testing.T) { + t.Parallel() + const username = "ni" + const userID model.UserID = 7 + const characterID model.CharacterID = 9 + + m := mocks.NewUserRepo(t) + m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) + c := mocks.NewCollectionRepo(t) + c.EXPECT().GetPersonCollection(mock.Anything, userID, mock.Anything, mock.Anything). + Return(collection.UserPersonCollection{UserID: userID, Category: "crt", TargetID: characterID}, nil) + + p := mocks.NewCharacterRepo(t) + p.EXPECT().Get(mock.Anything, characterID).Return(model.Character{ + ID: characterID, + Name: "v", + }, nil) + + app := test.GetWebApp(t, test.Mock{UserRepo: m, CollectionRepo: c, CharacterRepo: p}) + + var r res.PersonCollection + resp := htest.New(t, app). + Get(fmt.Sprintf("/v0/users/%s/collections/-/characters/%d", username, characterID)). + JSON(&r). + ExpectCode(http.StatusOK) + + require.Equal(t, characterID, r.ID, resp.BodyString()) + require.Equal(t, "v", r.Name, resp.BodyString()) +} + +func TestUser_ListCharacterCollection(t *testing.T) { + t.Parallel() + const username = "ni" + const userID model.UserID = 7 + const characterID model.CharacterID = 9 + + m := mocks.NewUserRepo(t) + m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) + + c := mocks.NewCollectionRepo(t) + c.EXPECT().ListPersonCollection(mock.Anything, userID, mock.Anything, 10, 0). + Return([]collection.UserPersonCollection{{UserID: userID, Category: "crt", TargetID: characterID}}, nil) + c.EXPECT().CountPersonCollections(mock.Anything, userID, mock.Anything). + Return(1, nil) + + p := mocks.NewCharacterRepo(t) + p.EXPECT().GetByIDs(mock.Anything, mock.Anything).Return(map[model.CharacterID]model.Character{ + characterID: {ID: characterID, Name: "v"}, + }, nil) + + app := test.GetWebApp(t, test.Mock{UserRepo: m, CollectionRepo: c, CharacterRepo: p}) + + var r struct { + Data json.RawMessage `json:"data"` + Total int64 `json:"total"` + Limit int `json:"limit"` + Offset int `json:"offset"` + } + + resp := htest.New(t, app). + Query("limit", "10"). + Get(fmt.Sprintf("/v0/users/%s/collections/-/characters", username)). + JSON(&r). + ExpectCode(http.StatusOK) + + var data []res.PersonCollection + require.NoError(t, json.Unmarshal(r.Data, &data)) + + require.Len(t, data, 1) + + require.Equal(t, characterID, data[0].ID, resp.BodyString()) + require.Equal(t, "v", data[0].Name, resp.BodyString()) +} diff --git a/web/handler/user/get_character_collection.go b/web/handler/user/get_character_collection.go new file mode 100644 index 000000000..42657e601 --- /dev/null +++ b/web/handler/user/get_character_collection.go @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user + +import ( + "errors" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h User) GetCharacterCollection(c echo.Context) error { + username := c.Param("username") + if username == "" { + return res.BadRequest("missing require parameters `username`") + } + + characterID, err := req.ParseID(c.Param("character_id")) + if err != nil { + return err + } + + return h.getCharacterCollection(c, username, characterID) +} + +func (h User) getCharacterCollection(c echo.Context, username string, characterID model.CharacterID) error { + const notFoundMessage = "character is not collected by user" + + character, err := h.character.Get(c.Request().Context(), characterID) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + + return errgo.Wrap(err, "failed to get character") + } + + u, err := h.user.GetByName(c.Request().Context(), username) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("user doesn't exist or has been removed") + } + + return errgo.Wrap(err, "failed to get user by name") + } + + collect, err := h.collect.GetPersonCollection( + c.Request().Context(), + u.ID, + collection.PersonCollectCategoryCharacter, + characterID, + ) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound(notFoundMessage) + } + + return errgo.Wrap(err, "failed to get user's character collection") + } + + return c.JSON(http.StatusOK, res.ConvertModelCharacterCollection(collect, character)) +} diff --git a/web/handler/user/get_person_collection.go b/web/handler/user/get_person_collection.go new file mode 100644 index 000000000..1240cb8a4 --- /dev/null +++ b/web/handler/user/get_person_collection.go @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user + +import ( + "errors" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h User) GetPersonCollection(c echo.Context) error { + username := c.Param("username") + if username == "" { + return res.BadRequest("missing require parameters `username`") + } + + personID, err := req.ParseID(c.Param("person_id")) + if err != nil { + return err + } + + return h.getPersonCollection(c, username, personID) +} + +func (h User) getPersonCollection(c echo.Context, username string, personID model.PersonID) error { + const notFoundMessage = "person is not collected by user" + + person, err := h.person.Get(c.Request().Context(), personID) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.ErrNotFound + } + + return errgo.Wrap(err, "failed to get person") + } + + u, err := h.user.GetByName(c.Request().Context(), username) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("user doesn't exist or has been removed") + } + + return errgo.Wrap(err, "failed to get user by name") + } + + collect, err := h.collect.GetPersonCollection( + c.Request().Context(), u.ID, collection.PersonCollectCategoryPerson, personID) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound(notFoundMessage) + } + + return errgo.Wrap(err, "failed to get person collect") + } + + return c.JSON(http.StatusOK, res.ConvertModelPersonCollection(collect, person)) +} diff --git a/web/handler/user/list_character_collections.go b/web/handler/user/list_character_collections.go new file mode 100644 index 000000000..38309bc53 --- /dev/null +++ b/web/handler/user/list_character_collections.go @@ -0,0 +1,103 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user + +import ( + "errors" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/generic/slice" + "github.com/bangumi/server/internal/user" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h User) ListCharacterCollection(c echo.Context) error { + page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) + if err != nil { + return err + } + + username := c.Param("username") + if username == "" { + return res.BadRequest("missing require parameters `username`") + } + + u, err := h.user.GetByName(c.Request().Context(), username) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("user doesn't exist or has been removed") + } + + return errgo.Wrap(err, "user.GetByName") + } + + return h.listCharacterCollection(c, u, page) +} + +func (h User) listCharacterCollection(c echo.Context, u user.User, page req.PageQuery) error { + count, err := h.collect.CountPersonCollections(c.Request().Context(), u.ID, collection.PersonCollectCategoryCharacter) + if err != nil { + return errgo.Wrap(err, "failed to count user's character collections") + } + + if count == 0 { + return c.JSON(http.StatusOK, res.Paged{Data: []int{}, Total: count, Limit: page.Limit, Offset: page.Offset}) + } + + if err = page.Check(count); err != nil { + return err + } + + cols, err := h.collect.ListPersonCollection( + c.Request().Context(), + u.ID, collection.PersonCollectCategoryCharacter, + page.Limit, page.Offset) + if err != nil { + return errgo.Wrap(err, "failed to list user's person collections") + } + + characterIDs := slice.Map(cols, func(item collection.UserPersonCollection) model.PersonID { + return item.TargetID + }) + + characterMap, err := h.character.GetByIDs(c.Request().Context(), characterIDs) + if err != nil { + return errgo.Wrap(err, "failed to get persons") + } + + var data = make([]res.PersonCollection, 0, len(cols)) + + for _, col := range cols { + character, ok := characterMap[col.TargetID] + if !ok { + continue + } + data = append(data, res.ConvertModelCharacterCollection(col, character)) + } + + return c.JSON(http.StatusOK, res.Paged{ + Data: data, + Total: count, + Limit: page.Limit, + Offset: page.Offset, + }) +} diff --git a/web/handler/user/list_person_collections.go b/web/handler/user/list_person_collections.go new file mode 100644 index 000000000..b48f1da4d --- /dev/null +++ b/web/handler/user/list_person_collections.go @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package user + +import ( + "errors" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/generic/slice" + "github.com/bangumi/server/internal/user" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h User) ListPersonCollection(c echo.Context) error { + page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) + if err != nil { + return err + } + + username := c.Param("username") + if username == "" { + return res.BadRequest("missing require parameters `username`") + } + + u, err := h.user.GetByName(c.Request().Context(), username) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return res.NotFound("user doesn't exist or has been removed") + } + + return errgo.Wrap(err, "user.GetByName") + } + + return h.listPersonCollection(c, u, page) +} + +func (h User) listPersonCollection(c echo.Context, u user.User, page req.PageQuery) error { + count, err := h.collect.CountPersonCollections(c.Request().Context(), u.ID, collection.PersonCollectCategoryPerson) + if err != nil { + return errgo.Wrap(err, "failed to count user's person collections") + } + + if count == 0 { + return c.JSON(http.StatusOK, res.Paged{Data: []int{}, Total: count, Limit: page.Limit, Offset: page.Offset}) + } + + if err = page.Check(count); err != nil { + return err + } + + cols, err := h.collect.ListPersonCollection( + c.Request().Context(), u.ID, collection.PersonCollectCategoryPerson, + page.Limit, page.Offset) + if err != nil { + return errgo.Wrap(err, "failed to list user's person collections") + } + + personIDs := slice.Map(cols, func(item collection.UserPersonCollection) model.PersonID { + return item.TargetID + }) + + personMap, err := h.person.GetByIDs(c.Request().Context(), personIDs) + if err != nil { + return errgo.Wrap(err, "failed to get persons") + } + + var data = make([]res.PersonCollection, 0, len(cols)) + + for _, col := range cols { + person, ok := personMap[col.TargetID] + if !ok { + continue + } + data = append(data, res.ConvertModelPersonCollection(col, person)) + } + + return c.JSON(http.StatusOK, res.Paged{ + Data: data, + Total: count, + Limit: page.Limit, + Offset: page.Offset, + }) +} diff --git a/web/handler/user/user.go b/web/handler/user/user.go index 59236045f..a85733224 100644 --- a/web/handler/user/user.go +++ b/web/handler/user/user.go @@ -19,6 +19,7 @@ import ( "github.com/bangumi/server/config" "github.com/bangumi/server/ctrl" + "github.com/bangumi/server/internal/character" "github.com/bangumi/server/internal/collections" "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/person" @@ -27,18 +28,20 @@ import ( ) type User struct { - ctrl ctrl.Ctrl - episode episode.Repo - person person.Service - collect collections.Repo - subject subject.CachedRepo - log *zap.Logger - user user.Repo - cfg config.AppConfig + ctrl ctrl.Ctrl + episode episode.Repo + character character.Repo + person person.Repo + collect collections.Repo + subject subject.CachedRepo + log *zap.Logger + user user.Repo + cfg config.AppConfig } func New( - p person.Service, + person person.Repo, + character character.Repo, user user.Repo, ctrl ctrl.Ctrl, subject subject.Repo, @@ -47,13 +50,14 @@ func New( log *zap.Logger, ) (User, error) { return User{ - ctrl: ctrl, - episode: episode, - collect: collect, - subject: subject, - user: user, - person: p, - log: log.Named("handler.User"), - cfg: config.AppConfig{}, + ctrl: ctrl, + episode: episode, + collect: collect, + subject: subject, + user: user, + person: person, + character: character, + log: log.Named("handler.User"), + cfg: config.AppConfig{}, }, nil } diff --git a/web/res/collection.go b/web/res/collection.go index 7cb639ec9..84534d55b 100644 --- a/web/res/collection.go +++ b/web/res/collection.go @@ -51,3 +51,33 @@ func ConvertModelSubjectCollection(c collection.UserSubjectCollection, subject S Subject: subject, } } + +type PersonCollection struct { + ID uint32 `json:"id"` + Type uint8 `json:"type"` + Name string `json:"name"` + Images PersonImages `json:"images"` + CreatedAt time.Time `json:"created_at"` +} + +func ConvertModelPersonCollection(c collection.UserPersonCollection, person model.Person) PersonCollection { + img := PersonImage(person.Image) + return PersonCollection{ + ID: person.ID, + Type: person.Type, + Name: person.Name, + Images: img, + CreatedAt: c.CreatedAt, + } +} + +func ConvertModelCharacterCollection(c collection.UserPersonCollection, character model.Character) PersonCollection { + img := PersonImage(character.Image) + return PersonCollection{ + ID: character.ID, + Type: character.Type, + Name: character.Name, + Images: img, + CreatedAt: c.CreatedAt, + } +} diff --git a/web/routes.go b/web/routes.go index dc071617c..f3a2b169c 100644 --- a/web/routes.go +++ b/web/routes.go @@ -66,18 +66,28 @@ func AddRouters( v0.GET("/persons/:id/image", personHandler.GetImage) v0.GET("/persons/:id/subjects", personHandler.GetRelatedSubjects) v0.GET("/persons/:id/characters", personHandler.GetRelatedCharacters) + v0.POST("/persons/:id/collect", personHandler.CollectPerson, mw.NeedLogin) + // TODO: wait for soft delete + // v0.DELETE("/persons/:id/collect", personHandler.UncollectPerson, mw.NeedLogin) + v0.GET("/characters/:id", characterHandler.Get) v0.GET("/characters/:id/image", characterHandler.GetImage) v0.GET("/characters/:id/subjects", characterHandler.GetRelatedSubjects) v0.GET("/characters/:id/persons", characterHandler.GetRelatedPersons) + v0.POST("/characters/:id/collect", characterHandler.CollectCharacter, mw.NeedLogin) + // TODO: wait for soft delete + // v0.DELETE("/characters/:id/collect", characterHandler.UncollectCharacter, mw.NeedLogin) + v0.GET("/episodes/:id", h.GetEpisode) v0.GET("/episodes", h.ListEpisode) // echo 中间件从前往后运行按顺序 v0.GET("/me", userHandler.GetCurrent) v0.GET("/users/:username", userHandler.Get) + v0.GET("/users/:username/avatar", userHandler.GetAvatar) v0.GET("/users/:username/collections", userHandler.ListSubjectCollection) v0.GET("/users/:username/collections/:subject_id", userHandler.GetSubjectCollection) + v0.GET("/users/-/collections/-/episodes/:episode_id", userHandler.GetEpisodeCollection, mw.NeedLogin) v0.PUT("/users/-/collections/-/episodes/:episode_id", userHandler.PutEpisodeCollection, req.JSON, mw.NeedLogin) v0.GET("/users/-/collections/:subject_id/episodes", userHandler.GetSubjectEpisodeCollection, mw.NeedLogin) @@ -86,7 +96,10 @@ func AddRouters( v0.PATCH("/users/-/collections/:subject_id/episodes", userHandler.PatchEpisodeCollectionBatch, req.JSON, mw.NeedLogin) - v0.GET("/users/:username/avatar", userHandler.GetAvatar) + v0.GET("/users/:username/collections/-/characters", userHandler.ListCharacterCollection) + v0.GET("/users/:username/collections/-/characters/:character_id", userHandler.GetCharacterCollection) + v0.GET("/users/:username/collections/-/persons", userHandler.ListPersonCollection) + v0.GET("/users/:username/collections/-/persons/:person_id", userHandler.GetPersonCollection) { i := indexHandler From abb3ee46627b30b2addd373d5452673d113011c8 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Sun, 26 May 2024 15:46:23 +0800 Subject: [PATCH 263/888] feat: add field series for subject v0 res (#565) --- openapi/components/subject_v0.yaml | 7 ++++++- web/handler/subject/get.go | 1 + web/res/subject.go | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/openapi/components/subject_v0.yaml b/openapi/components/subject_v0.yaml index 7bf9df61e..0c8c3ecc7 100644 --- a/openapi/components/subject_v0.yaml +++ b/openapi/components/subject_v0.yaml @@ -10,6 +10,7 @@ required: - platform - volumes - eps + - series - total_episodes - rating - images @@ -34,6 +35,10 @@ properties: summary: title: Summary type: string + series: + title: Series + type: boolean + description: 是否为书籍系列的主条目 nsfw: title: Nsfw type: boolean @@ -47,7 +52,7 @@ properties: platform: title: Platform type: string - description: TV, Web, 欧美剧, PS4... + description: TV, Web, 欧美剧, DLC... images: $ref: "./subject_image.yaml" infobox: diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 6e57bfbc4..e7f0f623a 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -142,6 +142,7 @@ func convertModelSubject(s model.Subject, totalEpisode int64) res.SubjectV0 { Doing: s.Doing, }, TypeID: s.TypeID, + Series: s.Series, Locked: s.Locked(), NSFW: s.NSFW, Rating: res.Rating{ diff --git a/web/res/subject.go b/web/res/subject.go index d981c87b7..39f36e54c 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -48,10 +48,11 @@ type SubjectV0 struct { ID model.SubjectID `json:"id"` Eps uint32 `json:"eps"` Volumes uint32 `json:"volumes"` - Redirect model.SubjectID `json:"-"` + Series bool `json:"series"` Locked bool `json:"locked"` NSFW bool `json:"nsfw"` TypeID model.SubjectType `json:"type"` + Redirect model.SubjectID `json:"-"` } type SlimSubjectV0 struct { From cedf8505505b878f5f4e97ce32a2c30320881ad0 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Sun, 26 May 2024 21:22:04 +0800 Subject: [PATCH 264/888] fix(search): restrict search field to names only (#558) --- internal/search/client.go | 4 ++-- internal/search/handle.go | 3 +-- internal/search/index.go | 12 +----------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/internal/search/client.go b/internal/search/client.go index d1fe8afcc..89b0697d9 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -254,8 +254,8 @@ func (c *client) firstRun() { return } - c.log.Info("set searchable attributes", zap.Strings("attributes", *searchAbleAttribute())) - _, err = subjectIndex.UpdateSearchableAttributes(searchAbleAttribute()) + c.log.Info("set searchable attributes", zap.Strings("attributes", *getAttributes("searchable"))) + _, err = subjectIndex.UpdateSearchableAttributes(getAttributes("searchable")) if err != nil { c.log.Fatal("failed to update search index searchable attributes", zap.Error(err)) return diff --git a/internal/search/handle.go b/internal/search/handle.go index 4404407a8..e264dfb23 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -43,8 +43,7 @@ type Client interface { OnSubjectDelete(ctx context.Context, id model.SubjectID) error } -// Handler -// TODO: 想个办法挪到 web 里面去. +// Handler TODO: 想个办法挪到 web 里面去. type Handler interface { Handle(c echo.Context) error } diff --git a/internal/search/index.go b/internal/search/index.go index a48641970..e3f0cec76 100644 --- a/internal/search/index.go +++ b/internal/search/index.go @@ -29,7 +29,7 @@ type subjectIndex struct { ID model.SubjectID `json:"id"` Summary string `json:"summary"` Tag []string `json:"tag,omitempty" filterable:"true"` - Name []string `json:"name"` + Name []string `json:"name" searchable:"true"` Date int `json:"date,omitempty" filterable:"true" sortable:"true"` Score float64 `json:"score" filterable:"true" sortable:"true"` PageRank float64 `json:"page_rank" sortable:"true"` @@ -40,16 +40,6 @@ type subjectIndex struct { NSFW bool `json:"nsfw" filterable:"true"` } -func searchAbleAttribute() *[]string { - return &[]string{ - "name", - "summary", - "tag", - "type", - "id", - } -} - func rankRule() *[]string { return &[]string{ // 相似度最优先 From 2cd9bfb9fbaa3582a67eedfab919665a260a4efe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 16:48:57 +0800 Subject: [PATCH 265/888] build(deps): update module google.golang.org/grpc to v1.64.0 (#578) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 7 +++---- go.sum | 14 ++++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 403d2617d..558c9e309 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.21.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.22.0 - google.golang.org/grpc v1.63.2 + google.golang.org/grpc v1.64.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 @@ -94,9 +94,8 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.17.0 // indirect - google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 541d8f38a..88afcc3fe 100644 --- a/go.sum +++ b/go.sum @@ -642,12 +642,10 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= -google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= -google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= +google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -657,8 +655,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From d2e2ff760fa41309f6a5de652f17d51b2f23e57c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 17:56:09 +0800 Subject: [PATCH 266/888] build(deps): update module github.com/go-resty/resty/v2 to v2.13.1 (#575) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 24 +++++++++++------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 558c9e309..bcda644f5 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.20.0 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.12.0 + github.com/go-resty/resty/v2 v2.13.1 github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 @@ -36,7 +36,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.13 go.uber.org/fx v1.21.1 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.22.0 + golang.org/x/crypto v0.23.0 google.golang.org/grpc v1.64.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.34.0 @@ -89,9 +89,9 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.24.0 // indirect - golang.org/x/sys v0.19.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.17.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect diff --git a/go.sum b/go.sum index 88afcc3fe..2c9a830cf 100644 --- a/go.sum +++ b/go.sum @@ -105,8 +105,8 @@ github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBEx github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.12.0 h1:rsVL8P90LFvkUYq/V5BTVe203WfRIU4gvcf+yfzJzGA= -github.com/go-resty/resty/v2 v2.12.0/go.mod h1:o0yGPrkS3lOe1+eFajk6kBW8ScXzwU3hD69/gt2yB/0= +github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= +github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -487,9 +487,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= @@ -533,9 +532,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -584,16 +582,15 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -603,8 +600,9 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= From 6a280e779ca08ab53bbc4f4a762234fe17244847 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 17:57:35 +0800 Subject: [PATCH 267/888] build(deps): update module go.uber.org/fx to v1.22.0 (#576) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bcda644f5..857c40333 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.13 - go.uber.org/fx v1.21.1 + go.uber.org/fx v1.22.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.23.0 google.golang.org/grpc v1.64.0 diff --git a/go.sum b/go.sum index 2c9a830cf..c174e87c7 100644 --- a/go.sum +++ b/go.sum @@ -463,8 +463,8 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.21.1 h1:RqBh3cYdzZS0uqwVeEjOX2p73dddLpym315myy/Bpb0= -go.uber.org/fx v1.21.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/fx v1.22.0 h1:pApUK7yL0OUHMd8vkunWSlLxZVFFk70jR2nKde8X2NM= +go.uber.org/fx v1.22.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From d9647c640ca7a889c229d2cb399da7593b881ef6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Jun 2024 18:23:26 +0800 Subject: [PATCH 268/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.14 (#572) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 857c40333..c136d3b7c 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.13 + go.etcd.io/etcd/client/v3 v3.5.14 go.uber.org/fx v1.22.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.23.0 @@ -83,8 +83,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.13 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.13 // indirect + go.etcd.io/etcd/api/v3 v3.5.14 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect diff --git a/go.sum b/go.sum index c174e87c7..8fca48c49 100644 --- a/go.sum +++ b/go.sum @@ -450,12 +450,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.13 h1:8WXU2/NBge6AUF1K1gOexB6e07NgsN1hXK0rSTtgSp4= -go.etcd.io/etcd/api/v3 v3.5.13/go.mod h1:gBqlqkcMMZMVTMm4NDZloEVJzxQOQIls8splbqBDa0c= -go.etcd.io/etcd/client/pkg/v3 v3.5.13 h1:RVZSAnWWWiI5IrYAXjQorajncORbS0zI48LQlE2kQWg= -go.etcd.io/etcd/client/pkg/v3 v3.5.13/go.mod h1:XxHT4u1qU12E2+po+UVPrEeL94Um6zL58ppuJWXSAB8= -go.etcd.io/etcd/client/v3 v3.5.13 h1:o0fHTNJLeO0MyVbc7I3fsCf6nrOqn5d+diSarKnB2js= -go.etcd.io/etcd/client/v3 v3.5.13/go.mod h1:cqiAeY8b5DEEcpxvgWKsbLIWNM/8Wy2xJSDMtioMcoI= +go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= +go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= +go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= +go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= +go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= +go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= From 2ba3be4c59197a84083e9d913a71ac5a9a740f63 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Sun, 2 Jun 2024 23:38:38 +0800 Subject: [PATCH 269/888] feat: add api for subjects browsing (#564) Co-authored-by: Trim21 --- Taskfile.yaml | 25 ++++ internal/cachekey/cachekey.go | 8 ++ internal/mocks/SubjectCachedRepo.go | 118 +++++++++++++++++ internal/mocks/SubjectRepo.go | 118 +++++++++++++++++ internal/pkg/gstr/parse.go | 24 ++++ internal/subject/cache_repo.go | 65 ++++++++++ internal/subject/domain.go | 49 +++++++ internal/subject/mysql_repository.go | 88 +++++++++++++ internal/subject/mysql_repository_test.go | 59 +++++++++ openapi/components/subject_cat_anime.yaml | 31 +++++ openapi/components/subject_cat_book.yaml | 27 ++++ openapi/components/subject_cat_game.yaml | 31 +++++ openapi/components/subject_cat_real.yaml | 43 +++++++ openapi/components/subject_v0_slim.yaml | 6 +- openapi/v0.yaml | 115 ++++++++++++++++- readme.md | 4 +- web/handler/subject/browse.go | 150 ++++++++++++++++++++++ web/handler/subject/subject.go | 1 + web/req/query_parse.go | 19 +++ 19 files changed, 975 insertions(+), 6 deletions(-) create mode 100644 openapi/components/subject_cat_anime.yaml create mode 100644 openapi/components/subject_cat_book.yaml create mode 100644 openapi/components/subject_cat_game.yaml create mode 100644 openapi/components/subject_cat_real.yaml create mode 100644 web/handler/subject/browse.go diff --git a/Taskfile.yaml b/Taskfile.yaml index 5f8d4ed0b..ff17b7a14 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -44,6 +44,31 @@ tasks: env: CGO_ENABLED: "0" + web: + desc: Run Web Server + aliases: + - serve + - server + cmds: + - go run main.go --config config.yaml web + + consumer: + desc: Run Kafka Consumer + aliases: + - canal + cmds: + - go run main.go canal --config config.yaml + + openapi-test: + desc: Test OpenAPI Schema + cmds: + - npm run test + + openapi: + desc: Build OpenAPI Schema + cmds: + - npm run build + bench: desc: Run benchmark cmds: diff --git a/internal/cachekey/cachekey.go b/internal/cachekey/cachekey.go index 99ce587f6..319cc3b23 100644 --- a/internal/cachekey/cachekey.go +++ b/internal/cachekey/cachekey.go @@ -35,6 +35,14 @@ func Subject(id model.SubjectID) string { return resPrefix + "subject:" + strconv.FormatUint(uint64(id), 10) } +func SubjectBrowse(s string, limit, offset int) string { + return resPrefix + "subject::browse:" + s + ":" + strconv.Itoa(limit) + ":" + strconv.Itoa(offset) +} + +func SubjectBrowseCount(s string) string { + return resPrefix + "subject::browse:" + s + "::count" +} + func Episode(id model.EpisodeID) string { return resPrefix + "episode:" + strconv.FormatUint(uint64(id), 10) } diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index 867524561..48c1ce036 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -26,6 +26,124 @@ func (_m *SubjectCachedRepo) EXPECT() *SubjectCachedRepo_Expecter { return &SubjectCachedRepo_Expecter{mock: &_m.Mock} } +// Browse provides a mock function with given fields: ctx, filter, limit, offset +func (_m *SubjectCachedRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { + ret := _m.Called(ctx, filter, limit, offset) + + if len(ret) == 0 { + panic("no return value specified for Browse") + } + + var r0 []model.Subject + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { + return rf(ctx, filter, limit, offset) + } + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { + r0 = rf(ctx, filter, limit, offset) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]model.Subject) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { + r1 = rf(ctx, filter, limit, offset) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// SubjectCachedRepo_Browse_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Browse' +type SubjectCachedRepo_Browse_Call struct { + *mock.Call +} + +// Browse is a helper method to define mock.On call +// - ctx context.Context +// - filter subject.BrowseFilter +// - limit int +// - offset int +func (_e *SubjectCachedRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectCachedRepo_Browse_Call { + return &SubjectCachedRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} +} + +func (_c *SubjectCachedRepo_Browse_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int)) *SubjectCachedRepo_Browse_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(subject.BrowseFilter), args[2].(int), args[3].(int)) + }) + return _c +} + +func (_c *SubjectCachedRepo_Browse_Call) Return(_a0 []model.Subject, _a1 error) *SubjectCachedRepo_Browse_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *SubjectCachedRepo_Browse_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)) *SubjectCachedRepo_Browse_Call { + _c.Call.Return(run) + return _c +} + +// Count provides a mock function with given fields: ctx, filter +func (_m *SubjectCachedRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { + ret := _m.Called(ctx, filter) + + if len(ret) == 0 { + panic("no return value specified for Count") + } + + var r0 int64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { + return rf(ctx, filter) + } + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { + r0 = rf(ctx, filter) + } else { + r0 = ret.Get(0).(int64) + } + + if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { + r1 = rf(ctx, filter) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// SubjectCachedRepo_Count_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Count' +type SubjectCachedRepo_Count_Call struct { + *mock.Call +} + +// Count is a helper method to define mock.On call +// - ctx context.Context +// - filter subject.BrowseFilter +func (_e *SubjectCachedRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectCachedRepo_Count_Call { + return &SubjectCachedRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} +} + +func (_c *SubjectCachedRepo_Count_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter)) *SubjectCachedRepo_Count_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(subject.BrowseFilter)) + }) + return _c +} + +func (_c *SubjectCachedRepo_Count_Call) Return(_a0 int64, _a1 error) *SubjectCachedRepo_Count_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *SubjectCachedRepo_Count_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter) (int64, error)) *SubjectCachedRepo_Count_Call { + _c.Call.Return(run) + return _c +} + // Get provides a mock function with given fields: ctx, id, filter func (_m *SubjectCachedRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { ret := _m.Called(ctx, id, filter) diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index 84c36ee4b..8ec7b2338 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -26,6 +26,124 @@ func (_m *SubjectRepo) EXPECT() *SubjectRepo_Expecter { return &SubjectRepo_Expecter{mock: &_m.Mock} } +// Browse provides a mock function with given fields: ctx, filter, limit, offset +func (_m *SubjectRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { + ret := _m.Called(ctx, filter, limit, offset) + + if len(ret) == 0 { + panic("no return value specified for Browse") + } + + var r0 []model.Subject + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { + return rf(ctx, filter, limit, offset) + } + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { + r0 = rf(ctx, filter, limit, offset) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]model.Subject) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { + r1 = rf(ctx, filter, limit, offset) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// SubjectRepo_Browse_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Browse' +type SubjectRepo_Browse_Call struct { + *mock.Call +} + +// Browse is a helper method to define mock.On call +// - ctx context.Context +// - filter subject.BrowseFilter +// - limit int +// - offset int +func (_e *SubjectRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectRepo_Browse_Call { + return &SubjectRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} +} + +func (_c *SubjectRepo_Browse_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int)) *SubjectRepo_Browse_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(subject.BrowseFilter), args[2].(int), args[3].(int)) + }) + return _c +} + +func (_c *SubjectRepo_Browse_Call) Return(_a0 []model.Subject, _a1 error) *SubjectRepo_Browse_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *SubjectRepo_Browse_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)) *SubjectRepo_Browse_Call { + _c.Call.Return(run) + return _c +} + +// Count provides a mock function with given fields: ctx, filter +func (_m *SubjectRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { + ret := _m.Called(ctx, filter) + + if len(ret) == 0 { + panic("no return value specified for Count") + } + + var r0 int64 + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { + return rf(ctx, filter) + } + if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { + r0 = rf(ctx, filter) + } else { + r0 = ret.Get(0).(int64) + } + + if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { + r1 = rf(ctx, filter) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// SubjectRepo_Count_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Count' +type SubjectRepo_Count_Call struct { + *mock.Call +} + +// Count is a helper method to define mock.On call +// - ctx context.Context +// - filter subject.BrowseFilter +func (_e *SubjectRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectRepo_Count_Call { + return &SubjectRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} +} + +func (_c *SubjectRepo_Count_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter)) *SubjectRepo_Count_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(subject.BrowseFilter)) + }) + return _c +} + +func (_c *SubjectRepo_Count_Call) Return(_a0 int64, _a1 error) *SubjectRepo_Count_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *SubjectRepo_Count_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter) (int64, error)) *SubjectRepo_Count_Call { + _c.Call.Return(run) + return _c +} + // Get provides a mock function with given fields: ctx, id, filter func (_m *SubjectRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { ret := _m.Called(ctx, id, filter) diff --git a/internal/pkg/gstr/parse.go b/internal/pkg/gstr/parse.go index 7b637447a..84287ed13 100644 --- a/internal/pkg/gstr/parse.go +++ b/internal/pkg/gstr/parse.go @@ -20,14 +20,38 @@ import ( "github.com/trim21/errgo" ) +func ParseInt8(s string) (int8, error) { + v, err := strconv.ParseInt(s, 10, 8) + + return int8(v), errgo.Wrap(err, "strconv") +} + func ParseUint8(s string) (uint8, error) { v, err := strconv.ParseUint(s, 10, 8) return uint8(v), errgo.Wrap(err, "strconv") } +func ParseUint16(s string) (uint16, error) { + v, err := strconv.ParseUint(s, 10, 16) + + return uint16(v), errgo.Wrap(err, "strconv") +} + +func ParseInt32(s string) (int32, error) { + v, err := strconv.ParseInt(s, 10, 32) + + return int32(v), errgo.Wrap(err, "strconv") +} + func ParseUint32(s string) (uint32, error) { v, err := strconv.ParseUint(s, 10, 32) return uint32(v), errgo.Wrap(err, "strconv") } + +func ParseBool(s string) (bool, error) { + v, err := strconv.ParseBool(s) + + return v, errgo.Wrap(err, "strconv") +} diff --git a/internal/subject/cache_repo.go b/internal/subject/cache_repo.go index 72ff9da52..c172a87b3 100644 --- a/internal/subject/cache_repo.go +++ b/internal/subject/cache_repo.go @@ -39,6 +39,11 @@ type cacheRepo struct { log *zap.Logger } +const ( + browseCacheTTLFirst = 24 * time.Hour + browseCacheTTLOther = time.Hour +) + func (r cacheRepo) Get(ctx context.Context, id model.SubjectID, filter Filter) (model.Subject, error) { var key = cachekey.Subject(id) @@ -71,6 +76,66 @@ func (r cacheRepo) GetByIDs( return r.repo.GetByIDs(ctx, ids, filter) } +func (r cacheRepo) Count(ctx context.Context, filter BrowseFilter) (int64, error) { + hash, err := filter.Hash() + if err != nil { + return 0, err + } + key := cachekey.SubjectBrowseCount(hash) + + var s int64 + ok, err := r.cache.Get(ctx, key, &s) + if err != nil { + return s, errgo.Wrap(err, "cache.Get") + } + if ok { + return s, nil + } + + s, err = r.repo.Count(ctx, filter) + if err != nil { + return s, err + } + if e := r.cache.Set(ctx, key, s, 10*time.Minute); e != nil { + r.log.Error("can't set response to cache", zap.Error(e)) + } + + return s, nil +} + +func (r cacheRepo) Browse( + ctx context.Context, filter BrowseFilter, limit, offset int, +) ([]model.Subject, error) { + hash, err := filter.Hash() + if err != nil { + return nil, err + } + key := cachekey.SubjectBrowse(hash, limit, offset) + + var subjects []model.Subject + ok, err := r.cache.Get(ctx, key, &subjects) + if err != nil { + return nil, errgo.Wrap(err, "cache.Get") + } + if ok { + return subjects, nil + } + + subjects, err = r.repo.Browse(ctx, filter, limit, offset) + if err != nil { + return nil, err + } + ttl := browseCacheTTLFirst + if offset > 0 { + ttl = browseCacheTTLOther + } + if e := r.cache.Set(ctx, key, subjects, ttl); e != nil { + r.log.Error("can't set response to cache", zap.Error(e)) + } + + return subjects, nil +} + func (r cacheRepo) GetPersonRelated( ctx context.Context, personID model.PersonID, ) ([]domain.SubjectPersonRelation, error) { diff --git a/internal/subject/domain.go b/internal/subject/domain.go index 2fe2c3e8e..ae176f560 100644 --- a/internal/subject/domain.go +++ b/internal/subject/domain.go @@ -16,6 +16,8 @@ package subject import ( "context" + "fmt" + "hash/fnv" "github.com/bangumi/server/domain" "github.com/bangumi/server/internal/model" @@ -27,6 +29,50 @@ type Filter struct { NSFW null.Bool } +type BrowseFilter struct { + NSFW null.Bool + Type uint8 + Category null.Uint16 + Series null.Bool + Platform null.String + Sort null.String + Year null.Int32 + Month null.Int8 +} + +func (f BrowseFilter) Hash() (string, error) { + h := fnv.New64a() + fields := []string{} + fields = append(fields, fmt.Sprintf("type:%v", f.Type)) + if f.NSFW.Set { + fields = append(fields, fmt.Sprintf("nsfw:%v", f.NSFW)) + } + if f.Category.Set { + fields = append(fields, fmt.Sprintf("category:%v", f.Category)) + } + if f.Series.Set { + fields = append(fields, fmt.Sprintf("series:%v", f.Series)) + } + if f.Platform.Set { + fields = append(fields, fmt.Sprintf("platform:%v", f.Platform)) + } + if f.Sort.Set { + fields = append(fields, fmt.Sprintf("sort:%v", f.Sort)) + } + if f.Year.Set { + fields = append(fields, fmt.Sprintf("year:%v", f.Year)) + } + if f.Month.Set { + fields = append(fields, fmt.Sprintf("month:%v", f.Month)) + } + for _, field := range fields { + if _, err := h.Write([]byte(field)); err != nil { + return "", err + } + } + return fmt.Sprintf("%x", h.Sum64()), nil +} + type Repo interface { read } @@ -40,6 +86,9 @@ type read interface { Get(ctx context.Context, id model.SubjectID, filter Filter) (model.Subject, error) GetByIDs(ctx context.Context, ids []model.SubjectID, filter Filter) (map[model.SubjectID]model.Subject, error) + Count(ctx context.Context, filter BrowseFilter) (int64, error) + Browse(ctx context.Context, filter BrowseFilter, limit, offset int) ([]model.Subject, error) + GetPersonRelated(ctx context.Context, personID model.PersonID) ([]domain.SubjectPersonRelation, error) GetCharacterRelated(ctx context.Context, characterID model.CharacterID) ([]domain.SubjectCharacterRelation, error) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectInternalRelation, error) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index a76a9baa7..1765eb9c4 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -231,6 +231,94 @@ func (r mysqlRepo) GetByIDs( return result, nil } +func (r mysqlRepo) Count( + ctx context.Context, + filter BrowseFilter) (int64, error) { + q := r.q.Subject.WithContext(ctx).Joins(r.q.Subject.Fields).Join( + r.q.SubjectField, r.q.Subject.ID.EqCol(r.q.SubjectField.Sid), + ).Where(r.q.Subject.TypeID.Eq(filter.Type)) + if filter.NSFW.Set { + q = q.Where(r.q.Subject.Nsfw.Is(filter.NSFW.Value)) + } + if filter.Category.Set { + q = q.Where(r.q.Subject.Platform.Eq(filter.Category.Value)) + } + if filter.Series.Set { + q = q.Where(r.q.Subject.Series.Is(filter.Series.Value)) + } + if filter.Platform.Set { + q = q.Where(r.q.Subject.Infobox.Like(fmt.Sprintf("%%[%s]%%", filter.Platform.Value))) + } + if filter.Year.Set { + q = q.Where(r.q.SubjectField.Year.Eq(filter.Year.Value)) + } + if filter.Month.Set { + q = q.Where(r.q.SubjectField.Mon.Eq(filter.Month.Value)) + } + + if filter.Sort.Set { + switch filter.Sort.Value { + case "date": + q = q.Order(r.q.SubjectField.Date.Desc()) + case "rank": + q = q.Order(r.q.SubjectField.Rank) + } + } + + return q.Count() +} + +func (r mysqlRepo) Browse( + ctx context.Context, filter BrowseFilter, limit, offset int, +) ([]model.Subject, error) { + q := r.q.Subject.WithContext(ctx).Joins(r.q.Subject.Fields).Join( + r.q.SubjectField, r.q.Subject.ID.EqCol(r.q.SubjectField.Sid), + ).Where(r.q.Subject.TypeID.Eq(filter.Type)) + if filter.NSFW.Set { + q = q.Where(r.q.Subject.Nsfw.Is(filter.NSFW.Value)) + } + if filter.Category.Set { + q = q.Where(r.q.Subject.Platform.Eq(filter.Category.Value)) + } + if filter.Series.Set { + q = q.Where(r.q.Subject.Series.Is(filter.Series.Value)) + } + if filter.Platform.Set { + q = q.Where(r.q.Subject.Infobox.Like(fmt.Sprintf("%%[%s]%%", filter.Platform.Value))) + } + if filter.Year.Set { + q = q.Where(r.q.SubjectField.Year.Eq(filter.Year.Value)) + } + if filter.Month.Set { + q = q.Where(r.q.SubjectField.Mon.Eq(filter.Month.Value)) + } + + if filter.Sort.Set { + switch filter.Sort.Value { + case "date": + q = q.Order(r.q.SubjectField.Date.Desc()) + case "rank": + q = q.Order(r.q.SubjectField.Rank) + } + } + + subjects, err := q.Limit(limit).Offset(offset).Find() + if err != nil { + r.log.Error("unexpected error happened", zap.Error(err)) + return nil, errgo.Wrap(err, "dal") + } + + var result = make([]model.Subject, len(subjects)) + for i, subject := range subjects { + result[i], err = ConvertDao(subject) + if err != nil { + return nil, err + } + } + + return result, nil +} + func (r mysqlRepo) GetActors( ctx context.Context, subjectID model.SubjectID, diff --git a/internal/subject/mysql_repository_test.go b/internal/subject/mysql_repository_test.go index 3dfc5b4fd..adcfad4ce 100644 --- a/internal/subject/mysql_repository_test.go +++ b/internal/subject/mysql_repository_test.go @@ -62,6 +62,65 @@ func TestMysqlRepo_Get_filter(t *testing.T) { require.ErrorIs(t, err, gerr.ErrNotFound) } +func TestBrowse(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + + filter := subject.BrowseFilter{ + Type: 2, + } + s, err := repo.Browse(context.Background(), filter, 30, 0) + require.NoError(t, err) + require.Equal(t, 12, len(s)) + + filter = subject.BrowseFilter{ + Type: 1, + Category: null.New(uint16(1003)), + } + s, err = repo.Browse(context.Background(), filter, 30, 0) + require.NoError(t, err) + require.Equal(t, 2, len(s)) + + filter = subject.BrowseFilter{ + Type: 2, + Year: null.New(int32(2008)), + } + s, err = repo.Browse(context.Background(), filter, 30, 0) + require.NoError(t, err) + require.Equal(t, 2, len(s)) + + filter = subject.BrowseFilter{ + Type: 3, + Sort: null.New("rank"), + } + s, err = repo.Browse(context.Background(), filter, 30, 0) + require.NoError(t, err) + require.Equal(t, 9, len(s)) + require.Equal(t, model.SubjectID(2), s[0].ID) + require.Equal(t, model.SubjectID(20), s[1].ID) + require.Equal(t, model.SubjectID(17), s[2].ID) + require.Equal(t, model.SubjectID(16), s[3].ID) + require.Equal(t, model.SubjectID(15), s[4].ID) + require.Equal(t, model.SubjectID(406604), s[5].ID) + require.Equal(t, model.SubjectID(19), s[6].ID) + require.Equal(t, model.SubjectID(315957), s[7].ID) + require.Equal(t, model.SubjectID(18), s[8].ID) + + filter = subject.BrowseFilter{ + Type: 4, + Platform: null.New("PS3"), + Sort: null.New("date"), + } + s, err = repo.Browse(context.Background(), filter, 30, 0) + require.NoError(t, err) + require.Equal(t, 3, len(s)) + require.Equal(t, model.SubjectID(7), s[0].ID) + require.Equal(t, model.SubjectID(6), s[1].ID) + require.Equal(t, model.SubjectID(13), s[2].ID) +} + func TestMysqlRepo_GetByIDs(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() diff --git a/openapi/components/subject_cat_anime.yaml b/openapi/components/subject_cat_anime.yaml new file mode 100644 index 000000000..42ca9c232 --- /dev/null +++ b/openapi/components/subject_cat_anime.yaml @@ -0,0 +1,31 @@ +title: SubjectAnimeCategory +example: 1 +enum: + - 0 + - 1 + - 2 + - 3 + - 5 +type: integer +description: |- + 动画类型 + - `0` 为 其他 + - `1` 为 TV + - `2` 为 OVA + - `3` 为 Movie + - `5` 为 WEB +x-ms-enum: + name: SubjectAnimeCategory + modelAsString: false + values: + - Other + - TV + - OVA + - Movie + - WEB +x-enum-varnames: + - Other + - TV + - OVA + - Movie + - WEB diff --git a/openapi/components/subject_cat_book.yaml b/openapi/components/subject_cat_book.yaml new file mode 100644 index 000000000..0c5cb8bd7 --- /dev/null +++ b/openapi/components/subject_cat_book.yaml @@ -0,0 +1,27 @@ +title: SubjectBookCategory +example: 1001 +enum: + - 0 + - 1001 + - 1002 + - 1003 +type: integer +description: |- + 书籍类型 + - `0` 为 其他 + - `1001` 为 漫画 + - `1002` 为 小说 + - `1003` 为 画集 +x-ms-enum: + name: SubjectBookCategory + modelAsString: false + values: + - Other + - Comic + - Novel + - Illustration +x-enum-varnames: + - Other + - Comic + - Novel + - Illustration diff --git a/openapi/components/subject_cat_game.yaml b/openapi/components/subject_cat_game.yaml new file mode 100644 index 000000000..ec1eeaafa --- /dev/null +++ b/openapi/components/subject_cat_game.yaml @@ -0,0 +1,31 @@ +title: SubjectGameCategory +example: 4001 +enum: + - 0 + - 4001 + - 4003 + - 4002 + - 4005 +type: integer +description: |- + 游戏类型 + - `0` 为 其他 + - `4001` 为 游戏 + - `4002` 为 软件 + - `4003` 为 扩展包 + - `4005` 为 桌游 +x-ms-enum: + name: SubjectGameCategory + modelAsString: false + values: + - Other + - Games + - Software + - DLC + - Tabletop +x-enum-varnames: + - Other + - Games + - Software + - DLC + - Tabletop diff --git a/openapi/components/subject_cat_real.yaml b/openapi/components/subject_cat_real.yaml new file mode 100644 index 000000000..317d4291b --- /dev/null +++ b/openapi/components/subject_cat_real.yaml @@ -0,0 +1,43 @@ +title: SubjectRealCategory +example: 6 +enum: + - 0 + - 1 + - 2 + - 3 + - 6001 + - 6002 + - 6003 + - 6004 +type: integer +description: |- + 电影类型 + - `0` 为 其他 + - `1` 为 日剧 + - `2` 为 欧美剧 + - `3` 为 华语剧 + - `6001` 为 电视剧 + - `6002` 为 电影 + - `6003` 为 演出 + - `6004` 为 综艺 +x-ms-enum: + name: SubjectRealCategory + modelAsString: false + values: + - Other + - JP + - EN + - CN + - TV + - Movie + - Live + - Show +x-enum-varnames: + - Other + - JP + - EN + - CN + - TV + - Movie + - Live + - Show diff --git a/openapi/components/subject_v0_slim.yaml b/openapi/components/subject_v0_slim.yaml index 8a47772c9..048929646 100644 --- a/openapi/components/subject_v0_slim.yaml +++ b/openapi/components/subject_v0_slim.yaml @@ -52,8 +52,12 @@ properties: type: integer score: description: 分数 - title: Total + title: Score type: number + rank: + description: 排名 + title: Rank + type: integer tags: description: 前 10 个 tag diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 16fb81a38..efd29febe 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -196,6 +196,81 @@ paths: description: 排名 "type": "integer" + "/v0/subjects": + get: + tags: + - 条目 + summary: 浏览条目 + description: 第一页会 cache 24h,之后会 cache 1h + operationId: getSubjects + parameters: + - name: type + in: query + description: 条目类型 + required: true + schema: + $ref: "#/components/schemas/SubjectType" + - name: cat + in: query + description: 条目分类,参照 `SubjectCategory` enum + required: false + schema: + $ref: "#/components/schemas/SubjectCategory" + - name: series + in: query + description: 是否系列,仅对书籍类型的条目有效 + required: false + schema: + type: boolean + - name: platform + in: query + description: 平台,仅对游戏类型的条目有效 + required: false + schema: + type: string + - name: order + in: query + description: 排序,枚举值 {date|rank} + required: false + schema: + title: Sort Order + type: string + - name: year + in: query + description: 年份 + required: false + schema: + type: integer + - name: month + in: query + description: 月份 + required: false + schema: + type: integer + - $ref: "#/components/parameters/default_query_limit" + - $ref: "#/components/parameters/default_query_offset" + responses: + "200": + description: Successful Response + content: + application/json: + schema: + "$ref": "#/components/schemas/Paged_Subject" + "400": + description: Validation Error + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + "404": + description: Not Found + content: + application/json: + schema: + "$ref": "#/components/schemas/ErrorDetail" + security: + - OptionalHTTPBearer: [] + "/v0/subjects/{subject_id}": get: tags: @@ -2310,9 +2385,7 @@ components: title: ID type: integer type: - title: Type - type: integer - description: "`0` 本篇,`1` SP,`2` OP,`3` ED" + $ref: "#/components/schemas/EpType" name: title: Name type: string @@ -2481,6 +2554,28 @@ components: Page: $ref: "./components/page.yaml" + Paged_Subject: + title: Paged[Subject] + type: object + properties: + total: + title: Total + type: integer + default: 0 + limit: + title: Limit + type: integer + default: 0 + offset: + title: Offset + type: integer + default: 0 + data: + title: Data + type: array + items: + "$ref": "#/components/schemas/Subject" + default: [] Paged_Episode: title: Paged[Episode] type: object @@ -3002,6 +3097,20 @@ components: $ref: "./components/subject_tags.yaml" SubjectType: $ref: "./components/subject_type.yaml" + SubjectBookCategory: + $ref: "./components/subject_cat_book.yaml" + SubjectAnimeCategory: + $ref: "./components/subject_cat_anime.yaml" + SubjectGameCategory: + $ref: "./components/subject_cat_game.yaml" + SubjectRealCategory: + $ref: "./components/subject_cat_real.yaml" + SubjectCategory: + anyOf: + - $ref: "#/components/schemas/SubjectBookCategory" + - $ref: "#/components/schemas/SubjectAnimeCategory" + - $ref: "#/components/schemas/SubjectGameCategory" + - $ref: "#/components/schemas/SubjectRealCategory" UserSubjectCollection: $ref: "./components/user_subject_collection.yaml" UserSubjectCollectionModifyPayload: diff --git a/readme.md b/readme.md index 91016cd9e..55104f6a9 100644 --- a/readme.md +++ b/readme.md @@ -78,13 +78,13 @@ ORM: [GORM](https://github.com/go-gorm/gorm) 和 [GORM Gen](https://github.com/g 启动 HTTP server ```shell -go run main.go --config config.yaml web +task web ``` 启动 kafka consumer ```shell -go run main.go canal --config config.yaml +task consumer ``` ### 后端环境 diff --git a/web/handler/subject/browse.go b/web/handler/subject/browse.go new file mode 100644 index 000000000..10618b137 --- /dev/null +++ b/web/handler/subject/browse.go @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package subject + +import ( + "net/http" + + "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/gstr" + "github.com/bangumi/server/internal/pkg/null" + "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/web/accessor" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +func (h Subject) Browse(c echo.Context) error { + page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) + if err != nil { + return err + } + + filter, err := parseBrowseQuery(c) + if err != nil { + return err + } + + count, err := h.subject.Count(c.Request().Context(), *filter) + if err != nil { + return errgo.Wrap(err, "failed to count subjects") + } + + if count == 0 { + return c.JSON(http.StatusOK, res.Paged{ + Data: []res.SubjectV0{}, Total: count, Limit: page.Limit, Offset: page.Offset}) + } + + if err = page.Check(count); err != nil { + return err + } + + subjects, err := h.subject.Browse(c.Request().Context(), *filter, page.Limit, page.Offset) + if err != nil { + return errgo.Wrap(err, "failed to browse subjects") + } + data := make([]res.SubjectV0, 0, len(subjects)) + for _, s := range subjects { + data = append(data, convertModelSubject(s, 0)) + } + + return c.JSON(http.StatusOK, res.Paged{Data: data, Total: count, Limit: page.Limit, Offset: page.Offset}) +} + +func parseBrowseQuery(c echo.Context) (*subject.BrowseFilter, error) { + filter := subject.BrowseFilter{} + u := accessor.GetFromCtx(c) + filter.NSFW = null.Bool{Value: !u.AllowNSFW(), Set: true} + if stype, err := req.ParseSubjectType(c.QueryParam("type")); err != nil { + return nil, res.BadRequest(err.Error()) + } else { + filter.Type = stype + } + if catStr := c.QueryParam("cat"); catStr != "" { + if cat, err := req.ParseSubjectCategory(filter.Type, catStr); err != nil { + return nil, res.BadRequest(err.Error()) + } else { + filter.Category = null.Uint16{Value: cat, Set: true} + } + } + if filter.Type == model.SubjectTypeBook { + if seriesStr := c.QueryParam("series"); seriesStr != "" { + if series, err := gstr.ParseBool(seriesStr); err != nil { + return nil, res.BadRequest(err.Error()) + } else { + filter.Series = null.Bool{Value: series, Set: true} + } + } + } + if filter.Type == model.SubjectTypeGame { + if platform := c.QueryParam("platform"); platform != "" { + // TODO: check if platform is valid + filter.Platform = null.String{Value: platform, Set: true} + } + } + if sort := c.QueryParam("sort"); sort != "" { + switch sort { + case "rank", "date": + filter.Sort = null.String{Value: sort, Set: true} + default: + return nil, res.BadRequest("unknown sort: " + sort) + } + } + if year, err := GetYearQuery(c); err != nil { + return nil, err + } else { + filter.Year = year + } + if month, err := GetMonthQuery(c); err != nil { + return nil, err + } else { + filter.Month = month + } + + return &filter, nil +} + +func GetYearQuery(c echo.Context) (null.Int32, error) { + yearStr := c.QueryParam("year") + if yearStr == "" { + return null.Int32{}, nil + } + if year, err := gstr.ParseInt32(yearStr); err != nil { + return null.Int32{}, res.BadRequest(err.Error()) + } else { + if year < 1900 || year > 3000 { + return null.Int32{}, res.BadRequest("invalid year: " + yearStr) + } + return null.Int32{Value: year, Set: true}, nil + } +} + +func GetMonthQuery(c echo.Context) (null.Int8, error) { + monthStr := c.QueryParam("month") + if monthStr == "" { + return null.Int8{}, nil + } + if month, err := gstr.ParseInt8(monthStr); err != nil { + return null.Int8{}, res.BadRequest(err.Error()) + } else { + if month < 1 || month > 12 { + return null.Int8{}, res.BadRequest("invalid month: " + monthStr) + } + return null.Int8{Value: month, Set: true}, nil + } +} diff --git a/web/handler/subject/subject.go b/web/handler/subject/subject.go index b1eec2e71..d7cbf6055 100644 --- a/web/handler/subject/subject.go +++ b/web/handler/subject/subject.go @@ -48,6 +48,7 @@ func New( } func (h *Subject) Routes(g *echo.Group) { + g.GET("/subjects", h.Browse) g.GET("/subjects/:id", h.Get) g.GET("/subjects/:id/image", h.GetImage) g.GET("/subjects/:id/persons", h.GetRelatedPersons) diff --git a/web/req/query_parse.go b/web/req/query_parse.go index e9a71c456..63a0fa085 100644 --- a/web/req/query_parse.go +++ b/web/req/query_parse.go @@ -22,6 +22,7 @@ import ( "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/gstr" "github.com/bangumi/server/internal/pm" + "github.com/bangumi/server/pkg/vars" "github.com/bangumi/server/web/res" ) @@ -47,6 +48,24 @@ func ParseSubjectType(s string) (model.SubjectType, error) { return 0, res.BadRequest(strconv.Quote(s) + " is not a valid subject type") } +func ParseSubjectCategory(stype model.SubjectType, s string) (uint16, error) { + if s == "" { + return 0, res.BadRequest("subject category is empty") + } + platforms, ok := vars.PlatformMap[stype] + if !ok { + return 0, res.BadRequest("bad subject type: " + strconv.Quote(s)) + } + v, err := gstr.ParseUint16(s) + if err != nil { + return 0, res.BadRequest("bad subject category: " + strconv.Quote(s)) + } + if _, ok := platforms[v]; !ok { + return 0, res.BadRequest("bad subject category: " + strconv.Quote(s)) + } + return v, nil +} + func ParseID(s string) (model.CharacterID, error) { if s == "" { return 0, errMissingID From a1c15ca6a34c00a3801b6c7f723f31d33327b3ce Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 3 Jun 2024 19:35:12 +0800 Subject: [PATCH 270/888] fix: adjust search fields (#582) --- internal/search/extractor.common.go | 11 +++++------ internal/search/index.go | 8 ++++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/internal/search/extractor.common.go b/internal/search/extractor.common.go index 7f63e83e0..6213919d1 100644 --- a/internal/search/extractor.common.go +++ b/internal/search/extractor.common.go @@ -23,20 +23,19 @@ func heat(s *model.Subject) uint32 { return s.OnHold + s.Doing + s.Dropped + s.Wish + s.Collect } -func extractNames(s *model.Subject, w wiki.Wiki) []string { - var names = make([]string, 0, 3) - names = append(names, s.Name) +func extractAliases(s *model.Subject, w wiki.Wiki) []string { + var aliases = make([]string, 0, 2) if s.NameCN != "" { - names = append(names, s.NameCN) + aliases = append(aliases, s.NameCN) } for _, field := range w.Fields { if field.Key == "别名" { - names = append(names, getValues(field)...) + aliases = append(aliases, getValues(field)...) } } - return names + return aliases } func getValues(f wiki.Field) []string { diff --git a/internal/search/index.go b/internal/search/index.go index e3f0cec76..3c7c4433c 100644 --- a/internal/search/index.go +++ b/internal/search/index.go @@ -27,9 +27,9 @@ import ( // 搜索字段因为带有排序,所以定义在 [search.searchAbleAttribute] 中. type subjectIndex struct { ID model.SubjectID `json:"id"` - Summary string `json:"summary"` Tag []string `json:"tag,omitempty" filterable:"true"` - Name []string `json:"name" searchable:"true"` + Name string `json:"name" searchable:"true"` + Aliases []string `json:"aliases,omitempty" searchable:"true"` Date int `json:"date,omitempty" filterable:"true" sortable:"true"` Score float64 `json:"score" filterable:"true" sortable:"true"` PageRank float64 `json:"page_rank" sortable:"true"` @@ -72,9 +72,9 @@ func extractSubject(s *model.Subject) subjectIndex { return subjectIndex{ ID: s.ID, - Name: extractNames(s, w), + Name: s.Name, + Aliases: extractAliases(s, w), Tag: tagNames, - Summary: s.Summary, NSFW: s.NSFW, Type: s.TypeID, Date: parseDateVal(s.Date), From 8cb0d6d5bd3bad644090dc65dc166ae63f043ce3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:26:46 +0800 Subject: [PATCH 271/888] build(deps): update module github.com/aws/aws-sdk-go to v1.53.14 (#574) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c136d3b7c..16b01445c 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.51.32 + github.com/aws/aws-sdk-go v1.53.14 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 8fca48c49..f4458cb8c 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.51.32 h1:A6mPui7QP4mwmovyzgtdedbRbNur1Iu0/El7hBWNHms= -github.com/aws/aws-sdk-go v1.51.32/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.53.14 h1:SzhkC2Pzag0iRW8WBb80RzKdGXDydJR9LAMs2GyKJ2M= +github.com/aws/aws-sdk-go v1.53.14/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= From 6d80cbf659f63acc8a8080cea79a5b92defe11ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:26:55 +0800 Subject: [PATCH 272/888] build(deps): update module github.com/prometheus/client_golang to v1.19.1 (#569) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 16b01445c..2d5ab3990 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.26.2 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.19.0 + github.com/prometheus/client_golang v1.19.1 github.com/redis/go-redis/v9 v9.5.1 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 diff --git a/go.sum b/go.sum index f4458cb8c..1ec54f6d4 100644 --- a/go.sum +++ b/go.sum @@ -340,8 +340,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From 95847f1c56a6cd81442d0257d648c94178bfd37b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:27:04 +0800 Subject: [PATCH 273/888] build(deps): update npm (#567) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index be510e9b1..8ec9b068d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,20 +8,20 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.1", + "@apidevtools/json-schema-ref-parser": "^11.6.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.2.5" + "prettier": "^3.3.0" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.6.1", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz", - "integrity": "sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==", + "version": "11.6.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.3.tgz", + "integrity": "sha512-lzKdPBz+Eo7xo7GUB2buWl4sqvUhHnMXrde1aRnj2kgbol6S8ZaHviDhKIif5M/q9E0A5ZVp3P9ZBPZnENcUHQ==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.6.1", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz", - "integrity": "sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==", + "version": "11.6.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.3.tgz", + "integrity": "sha512-lzKdPBz+Eo7xo7GUB2buWl4sqvUhHnMXrde1aRnj2kgbol6S8ZaHviDhKIif5M/q9E0A5ZVp3P9ZBPZnENcUHQ==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 068e5c511..627ab4ec9 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.1", + "@apidevtools/json-schema-ref-parser": "^11.6.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.2.5" + "prettier": "^3.3.0" }, "nodemonConfig": { "restartable": "rs", From 582bb075596bda3fada8cdf79991d87273e72b98 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:27:21 +0800 Subject: [PATCH 274/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.26.3 (#568) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2d5ab3990..2ea2d1d8f 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.26.2 + github.com/meilisearch/meilisearch-go v0.26.3 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 github.com/redis/go-redis/v9 v9.5.1 diff --git a/go.sum b/go.sum index 1ec54f6d4..e901ff530 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.26.2 h1:3gTlmiV1dHHumVUhYdJbvh3camiNiyqQ1hNveVsU2OE= -github.com/meilisearch/meilisearch-go v0.26.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.26.3 h1:EYt+C1n7IvjKzgXM3xqce5iJzNBq33F7ayZOKx96TKY= +github.com/meilisearch/meilisearch-go v0.26.3/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= From bad4e663c5cb72b1f644e4b9c99b50a8ed48c98c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:27:41 +0800 Subject: [PATCH 275/888] build(deps): update module github.com/trim21/go-phpserialize to v0.0.22 (#571) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2ea2d1d8f..063103217 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.2 - github.com/trim21/go-phpserialize v0.0.21 + github.com/trim21/go-phpserialize v0.0.22 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index e901ff530..2ab35e6dd 100644 --- a/go.sum +++ b/go.sum @@ -79,8 +79,8 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -419,8 +419,8 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= -github.com/trim21/go-phpserialize v0.0.21 h1:/RaseAU8bDOVJRzmogTD/WNLjcqKJlGueKTs5eF1FJE= -github.com/trim21/go-phpserialize v0.0.21/go.mod h1:vNqVtkwoZtQuK3VMD0KoytIGUEmofWvujEwxvPKjHyo= +github.com/trim21/go-phpserialize v0.0.22 h1:gcs36ir5s3iPFtGrp+3uU/R1lO05Et0nuhaBdUahq0Y= +github.com/trim21/go-phpserialize v0.0.22/go.mod h1:BxWksx+mEAaKC+ekgfTHas1z25dEE3n0bZbAp+tsJUM= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From 6468c635abd281c6f314df349b2ac3502cc04804 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 3 Jun 2024 20:31:23 +0800 Subject: [PATCH 276/888] fix: do not index merged subject (#583) --- internal/search/client.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/search/client.go b/internal/search/client.go index 89b0697d9..501465b61 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -159,6 +159,9 @@ func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error return errgo.Wrap(err, "subjectRepo.Get") } + if s.Redirect != 0 { + return nil + } extracted := extractSubject(&s) c.queue.Push(extracted) From b4f5f6d9ce830ee9c601d3e8789375db496e4749 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:31:37 +0800 Subject: [PATCH 277/888] build(deps): update module github.com/redis/go-redis/v9 to v9.5.2 (#570) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 063103217..b1f5177eb 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/meilisearch/meilisearch-go v0.26.3 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 - github.com/redis/go-redis/v9 v9.5.1 + github.com/redis/go-redis/v9 v9.5.2 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.0 diff --git a/go.sum b/go.sum index 2ab35e6dd..77d8a0ac1 100644 --- a/go.sum +++ b/go.sum @@ -367,8 +367,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8= -github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.5.2 h1:L0L3fcSNReTRGyZ6AqAEN0K56wYeYAwapBIhkvh0f3E= +github.com/redis/go-redis/v9 v9.5.2/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 75ce30cfa0c6b50d0b69e6442ce03224cc315392 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Tue, 4 Jun 2024 01:28:38 +0800 Subject: [PATCH 278/888] fix: empty rank for subject browsing (#584) --- internal/subject/mysql_repository.go | 4 ++-- internal/subject/mysql_repository_test.go | 19 +++++++++---------- openapi/v0.yaml | 2 +- web/handler/subject/browse.go | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 1765eb9c4..5d1652026 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -261,7 +261,7 @@ func (r mysqlRepo) Count( case "date": q = q.Order(r.q.SubjectField.Date.Desc()) case "rank": - q = q.Order(r.q.SubjectField.Rank) + q = q.Where(r.q.SubjectField.Rank.Gt(0)).Order(r.q.SubjectField.Rank) } } @@ -298,7 +298,7 @@ func (r mysqlRepo) Browse( case "date": q = q.Order(r.q.SubjectField.Date.Desc()) case "rank": - q = q.Order(r.q.SubjectField.Rank) + q = q.Where(r.q.SubjectField.Rank.Gt(0)).Order(r.q.SubjectField.Rank) } } diff --git a/internal/subject/mysql_repository_test.go b/internal/subject/mysql_repository_test.go index adcfad4ce..c6a767a99 100644 --- a/internal/subject/mysql_repository_test.go +++ b/internal/subject/mysql_repository_test.go @@ -97,16 +97,15 @@ func TestBrowse(t *testing.T) { } s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 9, len(s)) - require.Equal(t, model.SubjectID(2), s[0].ID) - require.Equal(t, model.SubjectID(20), s[1].ID) - require.Equal(t, model.SubjectID(17), s[2].ID) - require.Equal(t, model.SubjectID(16), s[3].ID) - require.Equal(t, model.SubjectID(15), s[4].ID) - require.Equal(t, model.SubjectID(406604), s[5].ID) - require.Equal(t, model.SubjectID(19), s[6].ID) - require.Equal(t, model.SubjectID(315957), s[7].ID) - require.Equal(t, model.SubjectID(18), s[8].ID) + require.Equal(t, 8, len(s)) + require.Equal(t, model.SubjectID(20), s[0].ID) + require.Equal(t, model.SubjectID(17), s[1].ID) + require.Equal(t, model.SubjectID(16), s[2].ID) + require.Equal(t, model.SubjectID(15), s[3].ID) + require.Equal(t, model.SubjectID(406604), s[4].ID) + require.Equal(t, model.SubjectID(19), s[5].ID) + require.Equal(t, model.SubjectID(315957), s[6].ID) + require.Equal(t, model.SubjectID(18), s[7].ID) filter = subject.BrowseFilter{ Type: 4, diff --git a/openapi/v0.yaml b/openapi/v0.yaml index efd29febe..e50e0959d 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -228,7 +228,7 @@ paths: required: false schema: type: string - - name: order + - name: sort in: query description: 排序,枚举值 {date|rank} required: false diff --git a/web/handler/subject/browse.go b/web/handler/subject/browse.go index 10618b137..ebfb7b5f3 100644 --- a/web/handler/subject/browse.go +++ b/web/handler/subject/browse.go @@ -69,7 +69,7 @@ func (h Subject) Browse(c echo.Context) error { func parseBrowseQuery(c echo.Context) (*subject.BrowseFilter, error) { filter := subject.BrowseFilter{} u := accessor.GetFromCtx(c) - filter.NSFW = null.Bool{Value: !u.AllowNSFW(), Set: true} + filter.NSFW = null.Bool{Value: false, Set: !u.AllowNSFW()} if stype, err := req.ParseSubjectType(c.QueryParam("type")); err != nil { return nil, res.BadRequest(err.Error()) } else { From b7a3b8d28b735d0370df4f6ae2d70ebea1b09150 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 01:47:45 +0800 Subject: [PATCH 279/888] fix: search nsfw filter --- internal/search/handle.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index e264dfb23..d4af8e959 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -205,7 +205,9 @@ func filterToMeiliFilter(req ReqFilter) [][]string { })) } if req.NSFW.Set { - filter = append(filter, []string{"nsfw = " + strconv.FormatBool(req.NSFW.Value)}) + if !req.NSFW.Value { + filter = append(filter, []string{"nsfw = false"}) + } } // AND From af87d8f304d11611ee64fb51b2c566b89167b6ea Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 22:49:27 +0800 Subject: [PATCH 280/888] fix(search): nsfw response --- internal/search/handle.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index d4af8e959..02d929745 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -110,15 +110,19 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{NSFW: r.Filter.NSFW}) + subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{}) if err != nil { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - data := slice.Map(ids, func(id model.SubjectID) ReponseSubject { - s := subjects[id] + var data = make([]ReponseSubject, 0, len(subjects)) + for _, id := range ids { + s, ok := subjects[id] + if !ok { + continue + } - return ReponseSubject{ + data = append(data, ReponseSubject{ Date: s.Date, Image: res.SubjectImage(s.Image).Large, Type: s.TypeID, @@ -131,8 +135,9 @@ func (c *client) Handle(ctx echo.Context) error { Score: s.Rating.Score, ID: s.ID, Rank: s.Rating.Rank, - } - }) + }) + + } return ctx.JSON(http.StatusOK, res.Paged{ Data: data, From 03393cd9d9d543306d9869db2ecd9ac5df0212a9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 22:57:50 +0800 Subject: [PATCH 281/888] fix(search): nsfw response --- internal/search/handle.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 02d929745..035661d70 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -110,7 +110,13 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{}) + var sf subject.Filter + + if r.Filter.NSFW.Set && !r.Filter.NSFW.Value { + sf.NSFW = null.Bool{Set: true, Value: false} + } + + subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, sf) if err != nil { return errgo.Wrap(err, "subjectRepo.GetByIDs") } From 273ad3696e4179dc7439e016153a9f001d30e9bc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 23:11:40 +0800 Subject: [PATCH 282/888] perf: browser filter hash --- internal/subject/domain.go | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/internal/subject/domain.go b/internal/subject/domain.go index ae176f560..cc47e95eb 100644 --- a/internal/subject/domain.go +++ b/internal/subject/domain.go @@ -25,7 +25,6 @@ import ( ) type Filter struct { - // if nsfw subject are allowed NSFW null.Bool } @@ -42,34 +41,30 @@ type BrowseFilter struct { func (f BrowseFilter) Hash() (string, error) { h := fnv.New64a() - fields := []string{} - fields = append(fields, fmt.Sprintf("type:%v", f.Type)) + + fmt.Fprintf(h, "type:%v", f.Type) if f.NSFW.Set { - fields = append(fields, fmt.Sprintf("nsfw:%v", f.NSFW)) + fmt.Fprintf(h, "nsfw:%v", f.NSFW) } if f.Category.Set { - fields = append(fields, fmt.Sprintf("category:%v", f.Category)) + fmt.Fprintf(h, "category:%v", f.Category) } if f.Series.Set { - fields = append(fields, fmt.Sprintf("series:%v", f.Series)) + fmt.Fprintf(h, "series:%v", f.Series) } if f.Platform.Set { - fields = append(fields, fmt.Sprintf("platform:%v", f.Platform)) + fmt.Fprintf(h, "platform:%v", f.Platform) } if f.Sort.Set { - fields = append(fields, fmt.Sprintf("sort:%v", f.Sort)) + fmt.Fprintf(h, "sort:%v", f.Sort) } if f.Year.Set { - fields = append(fields, fmt.Sprintf("year:%v", f.Year)) + fmt.Fprintf(h, "year:%v", f.Year) } if f.Month.Set { - fields = append(fields, fmt.Sprintf("month:%v", f.Month)) - } - for _, field := range fields { - if _, err := h.Write([]byte(field)); err != nil { - return "", err - } + fmt.Fprintf(h, "month:%v", f.Month) } + return fmt.Sprintf("%x", h.Sum64()), nil } From 579b0dc9ec358fc8b232173a74369b4ca644d765 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 23:18:42 +0800 Subject: [PATCH 283/888] fix(search): nsfw response --- internal/search/handle.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 035661d70..6d811f688 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -63,7 +63,9 @@ type ReqFilter struct { //nolint:musttag AirDate []string `json:"air_date"` // and Score []string `json:"rating"` // and Rank []string `json:"rank"` // and - NSFW null.Bool `json:"nsfw"` + + // if NSFW subject is enabled + NSFW bool `json:"nsfw"` } type hit struct { @@ -96,7 +98,7 @@ func (c *client) Handle(ctx echo.Context) error { } if !auth.AllowNSFW() { - r.Filter.NSFW = null.New(false) + r.Filter.NSFW = false } result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), r.Sort, q.Limit, q.Offset) @@ -112,7 +114,7 @@ func (c *client) Handle(ctx echo.Context) error { var sf subject.Filter - if r.Filter.NSFW.Set && !r.Filter.NSFW.Value { + if !r.Filter.NSFW { sf.NSFW = null.Bool{Set: true, Value: false} } @@ -215,10 +217,9 @@ func filterToMeiliFilter(req ReqFilter) [][]string { return fmt.Sprintf("type = %d", s) })) } - if req.NSFW.Set { - if !req.NSFW.Value { - filter = append(filter, []string{"nsfw = false"}) - } + + if !req.NSFW { + filter = append(filter, []string{"nsfw = false"}) } // AND From 664ff322186604e52c95a061cf9566c0715f264b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 23:23:53 +0800 Subject: [PATCH 284/888] fix(search): nsfw response --- internal/search/handle.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 6d811f688..0c321b830 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -65,7 +65,7 @@ type ReqFilter struct { //nolint:musttag Rank []string `json:"rank"` // and // if NSFW subject is enabled - NSFW bool `json:"nsfw"` + NSFW null.Bool `json:"nsfw"` } type hit struct { @@ -98,7 +98,7 @@ func (c *client) Handle(ctx echo.Context) error { } if !auth.AllowNSFW() { - r.Filter.NSFW = false + r.Filter.NSFW = null.New(false) } result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), r.Sort, q.Limit, q.Offset) @@ -112,10 +112,10 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - var sf subject.Filter + var sf = subject.Filter{NSFW: null.NewBool(false)} - if !r.Filter.NSFW { - sf.NSFW = null.Bool{Set: true, Value: false} + if r.Filter.NSFW.Set && r.Filter.NSFW.Value { + sf.NSFW = null.Bool{Set: false} } subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, sf) @@ -218,7 +218,11 @@ func filterToMeiliFilter(req ReqFilter) [][]string { })) } - if !req.NSFW { + if req.NSFW.Set { + if !req.NSFW.Value { + filter = append(filter, []string{"nsfw = false"}) + } + } else { filter = append(filter, []string{"nsfw = false"}) } From 8305216059d52ead43725b82235a8505daf54562 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 23:29:34 +0800 Subject: [PATCH 285/888] fix(search): nsfw response --- internal/search/handle.go | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 0c321b830..f2a43dfda 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -85,6 +85,7 @@ type ReponseSubject struct { Rank uint32 `json:"rank"` } +//nolint:funlen func (c *client) Handle(ctx echo.Context) error { auth := accessor.GetFromCtx(ctx) q, err := req.GetPageQuery(ctx, defaultLimit, maxLimit) @@ -98,7 +99,7 @@ func (c *client) Handle(ctx echo.Context) error { } if !auth.AllowNSFW() { - r.Filter.NSFW = null.New(false) + r.Filter.NSFW.Set = false } result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), r.Sort, q.Limit, q.Offset) @@ -112,10 +113,10 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - var sf = subject.Filter{NSFW: null.NewBool(false)} + var sf = subject.Filter{} - if r.Filter.NSFW.Set && r.Filter.NSFW.Value { - sf.NSFW = null.Bool{Set: false} + if !r.Filter.NSFW.Set || !r.Filter.NSFW.Value { + sf.NSFW = null.Bool{Set: true, Value: false} } subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, sf) @@ -144,7 +145,6 @@ func (c *client) Handle(ctx echo.Context) error { ID: s.ID, Rank: s.Rating.Rank, }) - } return ctx.JSON(http.StatusOK, res.Paged{ @@ -218,11 +218,7 @@ func filterToMeiliFilter(req ReqFilter) [][]string { })) } - if req.NSFW.Set { - if !req.NSFW.Value { - filter = append(filter, []string{"nsfw = false"}) - } - } else { + if !req.NSFW.Set || !req.NSFW.Value { filter = append(filter, []string{"nsfw = false"}) } From d198d706052d9ee955eedc4ae4cb8f052935c1f8 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 30 Jun 2024 23:32:36 +0800 Subject: [PATCH 286/888] fix: add nsfw field to search response --- internal/search/handle.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/search/handle.go b/internal/search/handle.go index f2a43dfda..8a444ef92 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -83,6 +83,7 @@ type ReponseSubject struct { Score float64 `json:"score"` ID model.SubjectID `json:"id"` Rank uint32 `json:"rank"` + NSFW bool `json:"nsfw"` } //nolint:funlen @@ -144,6 +145,7 @@ func (c *client) Handle(ctx echo.Context) error { Score: s.Rating.Score, ID: s.ID, Rank: s.Rating.Rank, + NSFW: s.NSFW, }) } From ab3d60a155a7309ec7664b2ca73d7f617baba165 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 1 Jul 2024 00:21:48 +0800 Subject: [PATCH 287/888] tests: fix --- internal/search/handle_internal_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/search/handle_internal_test.go b/internal/search/handle_internal_test.go index 17f2bb668..738f5009f 100644 --- a/internal/search/handle_internal_test.go +++ b/internal/search/handle_internal_test.go @@ -31,6 +31,7 @@ func Test_ReqFilterToMeiliFilter(t *testing.T) { }) require.Equal(t, [][]string{ + {`nsfw = false`}, {`tag = "a"`}, {`tag = "b"`}, }, actual) From 04497c0e08a4d602ba124707e14735ee387e484b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 1 Jul 2024 00:31:15 +0800 Subject: [PATCH 288/888] fix(search): subject redirect --- internal/search/client.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/search/client.go b/internal/search/client.go index 501465b61..a56a11a7d 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -160,8 +160,9 @@ func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error } if s.Redirect != 0 { - return nil + return c.DeleteSubject(ctx, id) } + extracted := extractSubject(&s) c.queue.Push(extracted) From a19056755604a985f72319f6d8d19cb3dc594de7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 00:37:38 +0800 Subject: [PATCH 289/888] ci: update autofix-ci/action digest to dd55f44 (#588) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 5d22de19f..596ac2f8a 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -29,4 +29,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@ea32e3a12414e6d3183163c3424a7d7a8631ad84 + - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a From a15b799e1d2192b788add893b76a42ee4500f8da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 00:41:33 +0800 Subject: [PATCH 290/888] build(deps): update npm (#594) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ec9b068d..287ccbe19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,20 +8,20 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.3", + "@apidevtools/json-schema-ref-parser": "^11.6.4", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.0" + "prettier": "^3.3.2" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.6.3", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.3.tgz", - "integrity": "sha512-lzKdPBz+Eo7xo7GUB2buWl4sqvUhHnMXrde1aRnj2kgbol6S8ZaHviDhKIif5M/q9E0A5ZVp3P9ZBPZnENcUHQ==", + "version": "11.6.4", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", + "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", - "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.6.3", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.3.tgz", - "integrity": "sha512-lzKdPBz+Eo7xo7GUB2buWl4sqvUhHnMXrde1aRnj2kgbol6S8ZaHviDhKIif5M/q9E0A5ZVp3P9ZBPZnENcUHQ==", + "version": "11.6.4", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", + "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", - "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 627ab4ec9..c6bc19d12 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.3", + "@apidevtools/json-schema-ref-parser": "^11.6.4", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.0" + "prettier": "^3.3.2" }, "nodemonConfig": { "restartable": "rs", From dcdf758b56d0763eb115d90f185878416f67fdb1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:24:39 +0800 Subject: [PATCH 291/888] build(deps): update module github.com/redis/go-redis/v9 to v9.5.3 (#589) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1f5177eb..33a32d1a9 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/meilisearch/meilisearch-go v0.26.3 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 - github.com/redis/go-redis/v9 v9.5.2 + github.com/redis/go-redis/v9 v9.5.3 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.0 diff --git a/go.sum b/go.sum index 77d8a0ac1..c98201e97 100644 --- a/go.sum +++ b/go.sum @@ -367,8 +367,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.5.2 h1:L0L3fcSNReTRGyZ6AqAEN0K56wYeYAwapBIhkvh0f3E= -github.com/redis/go-redis/v9 v9.5.2/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.5.3 h1:fOAp1/uJG+ZtcITgZOfYFmTKPE7n4Vclj1wZFgRciUU= +github.com/redis/go-redis/v9 v9.5.3/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 8d06c1b9ffc98f6fa5752b4094c8aa8d9934fc8c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:24:46 +0800 Subject: [PATCH 292/888] build(deps): update module github.com/spf13/cobra to v1.8.1 (#590) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 33a32d1a9..097325ebb 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/redis/go-redis/v9 v9.5.3 github.com/samber/lo v1.39.0 github.com/segmentio/kafka-go v0.4.47 - github.com/spf13/cobra v1.8.0 + github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.2 diff --git a/go.sum b/go.sum index c98201e97..55bd12b2a 100644 --- a/go.sum +++ b/go.sum @@ -60,7 +60,7 @@ github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27 github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -393,8 +393,8 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= -github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= From 194738bc4d7c87e8bc8c9af49d57fb4d0eb5662a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:25:49 +0800 Subject: [PATCH 293/888] build(deps): update module go.uber.org/fx to v1.22.1 (#591) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 097325ebb..a93ba005f 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.14 - go.uber.org/fx v1.22.0 + go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.23.0 google.golang.org/grpc v1.64.0 diff --git a/go.sum b/go.sum index 55bd12b2a..4b91c0ec1 100644 --- a/go.sum +++ b/go.sum @@ -463,8 +463,8 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.0 h1:pApUK7yL0OUHMd8vkunWSlLxZVFFk70jR2nKde8X2NM= -go.uber.org/fx v1.22.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/fx v1.22.1 h1:nvvln7mwyT5s1q201YE29V/BFrGor6vMiDNpU/78Mys= +go.uber.org/fx v1.22.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From a4c2ce1d5bf42023927347ffe226c391a14480e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:33:38 +0800 Subject: [PATCH 294/888] build(deps): update module gorm.io/driver/mysql to v1.5.7 (#592) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a93ba005f..e6af73848 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.34.0 gopkg.in/yaml.v3 v3.0.1 - gorm.io/driver/mysql v1.5.6 + gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 gorm.io/gorm v1.25.10 gorm.io/plugin/dbresolver v1.5.1 diff --git a/go.sum b/go.sum index 4b91c0ec1..1d9af5ca4 100644 --- a/go.sum +++ b/go.sum @@ -694,8 +694,8 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= -gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= -gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= +gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= +gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= From f756350ba2dfc9cce44d00b2806e4aae3bb9b1b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:34:00 +0800 Subject: [PATCH 295/888] ci: update docker/build-push-action action to v6 (#598) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 00aa61915..6f95fa57b 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -74,7 +74,7 @@ jobs: password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ./ provenance: false From a91340519f528b31429ea73196409ba1e36485dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:35:16 +0800 Subject: [PATCH 296/888] build(deps): update module github.com/aws/aws-sdk-go to v1.54.11 (#595) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e6af73848..8a1aa7ec3 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.53.14 + github.com/aws/aws-sdk-go v1.54.11 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 1d9af5ca4..9c62eb4c0 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.53.14 h1:SzhkC2Pzag0iRW8WBb80RzKdGXDydJR9LAMs2GyKJ2M= -github.com/aws/aws-sdk-go v1.53.14/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.54.11 h1:Zxuv/R+IVS0B66yz4uezhxH9FN9/G2nbxejYqAMFjxk= +github.com/aws/aws-sdk-go v1.54.11/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= From d3a6716a60e2f4a4db4736549c11ed9913bcd09b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:35:25 +0800 Subject: [PATCH 297/888] build(deps): update module github.com/go-playground/validator/v10 to v10.22.0 (#596) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8a1aa7ec3..9f84c011d 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.20.0 + github.com/go-playground/validator/v10 v10.22.0 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.13.1 github.com/go-sql-driver/mysql v1.8.1 diff --git a/go.sum b/go.sum index 9c62eb4c0..926c2ae0a 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= -github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4Bx7ia+JlgcnOao= +github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= From 7cfac46ecf4e54347116ec4989687914996cdf9a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:39:47 +0800 Subject: [PATCH 298/888] build(deps): update module gorm.io/plugin/dbresolver to v1.5.2 (#593) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 9f84c011d..4902a2d91 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,7 @@ require ( gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 gorm.io/gorm v1.25.10 - gorm.io/plugin/dbresolver v1.5.1 + gorm.io/plugin/dbresolver v1.5.2 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 926c2ae0a..fb2fec2af 100644 --- a/go.sum +++ b/go.sum @@ -108,7 +108,6 @@ github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9 github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= @@ -693,7 +692,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= -gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c= +gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= @@ -707,17 +706,15 @@ gorm.io/gen v0.3.26 h1:sFf1j7vNStimPRRAtH4zz5NiHM+1dr6eA9aaRdplyhY= gorm.io/gen v0.3.26/go.mod h1:a5lq5y3w4g5LMxBcw0wnO6tYUCdNutWODq5LrIt75LE= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= -gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.5.1 h1:s9Dj9f7r+1rE3nx/Ywzc85nXptUEaeOO0pt27xdopM8= -gorm.io/plugin/dbresolver v1.5.1/go.mod h1:l4Cn87EHLEYuqUncpEeTC2tTJQkjngPSD+lo8hIvcT0= +gorm.io/plugin/dbresolver v1.5.2 h1:Iut7lW4TXNoVs++I+ra3zxjSxTRj4ocIeFEVp4lLhII= +gorm.io/plugin/dbresolver v1.5.2/go.mod h1:jPh59GOQbO7v7v28ZKZPd45tr+u3vyT+8tHdfdfOWcU= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From e5b0933af5673f9dc45f2489a9d927b647c035fb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 05:16:21 +0800 Subject: [PATCH 299/888] build(deps): update module github.com/samber/lo to v1.44.0 (#597) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 21 ++++++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 4902a2d91..41682b049 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 github.com/redis/go-redis/v9 v9.5.3 - github.com/samber/lo v1.39.0 + github.com/samber/lo v1.44.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 @@ -87,13 +87,13 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/mod v0.14.0 // indirect + golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.25.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect - golang.org/x/text v0.15.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.17.0 // indirect + golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect gorm.io/datatypes v1.2.0 // indirect diff --git a/go.sum b/go.sum index fb2fec2af..a74ca6c64 100644 --- a/go.sum +++ b/go.sum @@ -375,8 +375,8 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samber/lo v1.39.0 h1:4gTz1wUhNYLhFSKl6O+8peW0v2F4BCY034GRpU9WnuA= -github.com/samber/lo v1.39.0/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA= +github.com/samber/lo v1.44.0 h1:5il56KxRE+GHsm1IR+sZ/6J42NODigFiqCWpSc2dybA= +github.com/samber/lo v1.44.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= @@ -489,8 +489,6 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -502,8 +500,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -544,8 +542,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -600,8 +598,9 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= @@ -624,8 +623,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 0ff8ee09dfdd9ae40d455ec1e9e5b89d3279e194 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 05:16:51 +0800 Subject: [PATCH 300/888] ci: update golangci/golangci-lint-action action to v6 (#579) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index a3b04ec85..3be3f7eb5 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -48,6 +48,6 @@ jobs: - run: go get -t ./... - name: Run linters - uses: golangci/golangci-lint-action@v5 + uses: golangci/golangci-lint-action@v6 with: version: v1.57.2 From cd8a22e3df674c88169f374329c845f9a098267f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 05:17:05 +0800 Subject: [PATCH 301/888] build(deps): update module google.golang.org/protobuf to v1.34.2 (#573) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 41682b049..95229e1e7 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( golang.org/x/crypto v0.23.0 google.golang.org/grpc v1.64.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 - google.golang.org/protobuf v1.34.0 + google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index a74ca6c64..e170b8ed5 100644 --- a/go.sum +++ b/go.sum @@ -661,8 +661,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From bd143c2bbfe300865c12b7a060ff5a6a3f2fd547 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 05:23:22 +0800 Subject: [PATCH 302/888] build(deps): update module golang.org/x/crypto to v0.24.0 (#577) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 95229e1e7..6a7cf4058 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.14 go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.23.0 + golang.org/x/crypto v0.24.0 google.golang.org/grpc v1.64.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.34.2 @@ -90,7 +90,7 @@ require ( golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.25.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.20.0 // indirect + golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect diff --git a/go.sum b/go.sum index e170b8ed5..828c1c4f3 100644 --- a/go.sum +++ b/go.sum @@ -486,8 +486,9 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -579,8 +580,9 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 82115a39470653f6d55d289fcfd177413848351b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 05:23:31 +0800 Subject: [PATCH 303/888] build(deps): update module google.golang.org/grpc/cmd/protoc-gen-go-grpc to v1.4.0 (#580) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6a7cf4058..ae1c12107 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.24.0 google.golang.org/grpc v1.64.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 diff --git a/go.sum b/go.sum index 828c1c4f3..462c86787 100644 --- a/go.sum +++ b/go.sum @@ -655,8 +655,8 @@ google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 6269bbf9620f703e9f0be428d69259f849abbf92 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 9 Jul 2024 00:20:15 +0800 Subject: [PATCH 304/888] fix: subject name escape (#599) --- internal/subject/mysql_repository.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 5d1652026..2c924b769 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -18,6 +18,7 @@ import ( "context" "errors" "fmt" + "html" "math" "github.com/trim21/errgo" @@ -75,8 +76,8 @@ func ConvertDao(s *dao.Subject) (model.Subject, error) { Redirect: s.Fields.Redirect, Date: date, ID: s.ID, - Name: s.Name, - NameCN: s.NameCN, + Name: html.UnescapeString(s.Name), + NameCN: html.UnescapeString(s.NameCN), TypeID: s.TypeID, Image: s.Image, PlatformID: s.Platform, From b8ea73948b71d08dbf0eeac1b9e99d3cf45e9209 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 06:24:16 +0800 Subject: [PATCH 305/888] build(deps): update module google.golang.org/grpc to v1.64.1 [security] (#601) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index ae1c12107..6d657ab01 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.24.0 - google.golang.org/grpc v1.64.0 + google.golang.org/grpc v1.64.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 @@ -88,7 +88,7 @@ require ( go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect + golang.org/x/net v0.26.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.21.0 // indirect golang.org/x/text v0.16.0 // indirect diff --git a/go.sum b/go.sum index 462c86787..9e44fc94b 100644 --- a/go.sum +++ b/go.sum @@ -530,8 +530,9 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -653,8 +654,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 8f260252f609413e34eb630658b1482bc75d2059 Mon Sep 17 00:00:00 2001 From: Ronnie Wang Date: Mon, 22 Jul 2024 01:30:22 +0800 Subject: [PATCH 306/888] feat: enrich new fields in archive program (#602) --- cmd/archive/main.go | 83 +++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 26 deletions(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index ca504be95..7cba8e92e 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -180,6 +180,14 @@ type Score struct { Field10 uint32 `json:"10"` } +type Favorite struct { + Wish uint32 `json:"wish"` + Done uint32 `json:"done"` + Doing uint32 `json:"doing"` + OnHold uint32 `json:"on_hold"` + Dropped uint32 `json:"dropped"` +} + type Subject struct { ID model.SubjectID `json:"id"` Type model.SubjectType `json:"type"` @@ -190,10 +198,12 @@ type Subject struct { Summary string `json:"summary"` Nsfw bool `json:"nsfw"` - Tags []Tag `json:"tags"` - Score float64 `json:"score"` - ScoreDetails Score `json:"score_details"` - Rank uint32 `json:"rank"` + Tags []Tag `json:"tags"` + Score float64 `json:"score"` + ScoreDetails Score `json:"score_details"` + Rank uint32 `json:"rank"` + Date string `json:"date"` + Favorite Favorite `json:"favorite"` } type Tag struct { @@ -238,6 +248,11 @@ func exportSubjects(q *query.Query, w io.Writer) { 6*f.Rate6+7*f.Rate7+8*f.Rate8+9*f.Rate9+10*f.Rate10) / float64(total) } + encodedDate := "" + if !subject.Fields.Date.IsZero() { + encodedDate = subject.Fields.Date.Format("2006-01-02") + } + encode(w, Subject{ ID: subject.ID, Type: subject.TypeID, @@ -262,18 +277,28 @@ func exportSubjects(q *query.Query, w io.Writer) { Field9: subject.Fields.Rate9, Field10: subject.Fields.Rate10, }, + Date: encodedDate, + Favorite: Favorite{ + Wish: subject.Wish, + Done: subject.Done, + Doing: subject.Doing, + OnHold: subject.OnHold, + Dropped: subject.Dropped, + }, }) } } } type Person struct { - ID model.PersonID `json:"id"` - Name string `json:"name"` - Type uint8 `json:"type"` - Career []string `json:"career"` - Infobox string `json:"infobox"` - Summary string `json:"summary"` + ID model.PersonID `json:"id"` + Name string `json:"name"` + Type uint8 `json:"type"` + Career []string `json:"career"` + Infobox string `json:"infobox"` + Summary string `json:"summary"` + Comments uint32 `json:"comments"` + Collects uint32 `json:"collects"` } func exportPersons(q *query.Query, w io.Writer) { @@ -286,12 +311,14 @@ func exportPersons(q *query.Query, w io.Writer) { for _, p := range persons { encode(w, Person{ - ID: p.ID, - Name: p.Name, - Type: p.Type, - Career: careers(p), - Infobox: p.Infobox, - Summary: p.Summary, + ID: p.ID, + Name: p.Name, + Type: p.Type, + Career: careers(p), + Infobox: p.Infobox, + Summary: p.Summary, + Comments: p.Comment, + Collects: p.Collects, }) } } @@ -336,11 +363,13 @@ func careers(p *dao.Person) []string { } type Character struct { - ID model.CharacterID `json:"id"` - Role uint8 `json:"role"` - Name string `json:"name"` - Infobox string `json:"infobox"` - Summary string `json:"summary"` + ID model.CharacterID `json:"id"` + Role uint8 `json:"role"` + Name string `json:"name"` + Infobox string `json:"infobox"` + Summary string `json:"summary"` + Comments uint32 `json:"comments"` + Collects uint32 `json:"collects"` } func exportCharacters(q *query.Query, w io.Writer) { @@ -353,11 +382,13 @@ func exportCharacters(q *query.Query, w io.Writer) { for _, c := range characters { encode(w, Character{ - ID: c.ID, - Name: c.Name, - Role: c.Role, - Infobox: c.Infobox, - Summary: c.Summary, + ID: c.ID, + Name: c.Name, + Role: c.Role, + Infobox: c.Infobox, + Summary: c.Summary, + Comments: c.Comment, + Collects: c.Collects, }) } } From 5c576e267268c490a0b97686d0668ffc36bf1dd9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 10:37:44 +0800 Subject: [PATCH 307/888] build(deps): update npm (#605) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 287ccbe19..40ca6472a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,20 +8,20 @@ "name": "chii", "version": "0.33.19", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.4", + "@apidevtools/json-schema-ref-parser": "^11.7.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.2" + "prettier": "^3.3.3" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.6.4", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", - "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", + "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.6.4", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", - "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", + "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index c6bc19d12..2848db844 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.6.4", + "@apidevtools/json-schema-ref-parser": "^11.7.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.2" + "prettier": "^3.3.3" }, "nodemonConfig": { "restartable": "rs", From d9e06b4a51a029a3a73625bc9471a0c38ce5f178 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 Aug 2024 22:59:31 +0800 Subject: [PATCH 308/888] minor refactor --- internal/pkg/random/string.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/pkg/random/string.go b/internal/pkg/random/string.go index fb1524822..b767b12dd 100644 --- a/internal/pkg/random/string.go +++ b/internal/pkg/random/string.go @@ -28,8 +28,8 @@ var p = pool.New(func() *bufio.Reader { // we may never need to change these values. const base62Chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -const base62CharsLength = 62 // len(base62Chars) -const base62MaxByte byte = 255 - (256 % base62CharsLength) //nolint:gomnd +const base62CharsLength = byte(len(base62Chars)) +const base62MaxByte = byte(255 - (256 % len(base62Chars))) // Base62String generate a cryptographically secure base62 string in given length. // Will panic if it can't read from 'crypto/rand'. From b18c75fbb037edd42942fadcb013e303fea3b191 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 Aug 2024 23:00:31 +0800 Subject: [PATCH 309/888] fix: upgrade chii_crt_subject_index.crt_order type --- cmd/archive/main.go | 2 +- dal/dao/chii_crt_subject_index.gen.go | 2 +- dal/query/chii_crt_subject_index.gen.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 7cba8e92e..316e9b407 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -490,7 +490,7 @@ type SubjectCharacter struct { CharacterID model.CharacterID `json:"character_id"` SubjectID model.SubjectID `json:"subject_id"` Type uint8 `json:"type"` - Order uint8 `json:"order"` + Order uint16 `json:"order"` } func exportSubjectCharacterRelations(q *query.Query, w io.Writer) { diff --git a/dal/dao/chii_crt_subject_index.gen.go b/dal/dao/chii_crt_subject_index.gen.go index 09671e218..960048ca9 100644 --- a/dal/dao/chii_crt_subject_index.gen.go +++ b/dal/dao/chii_crt_subject_index.gen.go @@ -13,7 +13,7 @@ type CharacterSubjects struct { SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null" json:""` CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节" json:""` // 可选,角色出场的的章节 - CrtOrder uint8 `gorm:"column:crt_order;type:tinyint(3) unsigned;not null" json:""` + CrtOrder uint16 `gorm:"column:crt_order;type:smallint(6) unsigned;not null" json:""` Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` } diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index 10be0b8b0..0f18a66a0 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -32,7 +32,7 @@ func newCharacterSubjects(db *gorm.DB, opts ...gen.DOOption) characterSubjects { _characterSubjects.SubjectTypeID = field.NewUint8(tableName, "subject_type_id") _characterSubjects.CrtType = field.NewUint8(tableName, "crt_type") _characterSubjects.CtrAppearEps = field.NewString(tableName, "ctr_appear_eps") - _characterSubjects.CrtOrder = field.NewUint8(tableName, "crt_order") + _characterSubjects.CrtOrder = field.NewUint16(tableName, "crt_order") _characterSubjects.Character = characterSubjectsHasOneCharacter{ db: db.Session(&gorm.Session{}), @@ -69,7 +69,7 @@ type characterSubjects struct { SubjectTypeID field.Uint8 CrtType field.Uint8 // 主角,配角 CtrAppearEps field.String // 可选,角色出场的的章节 - CrtOrder field.Uint8 + CrtOrder field.Uint16 Character characterSubjectsHasOneCharacter Subject characterSubjectsHasOneSubject @@ -94,7 +94,7 @@ func (c *characterSubjects) updateTableName(table string) *characterSubjects { c.SubjectTypeID = field.NewUint8(table, "subject_type_id") c.CrtType = field.NewUint8(table, "crt_type") c.CtrAppearEps = field.NewString(table, "ctr_appear_eps") - c.CrtOrder = field.NewUint8(table, "crt_order") + c.CrtOrder = field.NewUint16(table, "crt_order") c.fillFieldMap() From 9b62696e5f7c20a0b6182a3326d72d70f7c1c519 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 Aug 2024 23:02:09 +0800 Subject: [PATCH 310/888] ci: upgrade docker compose --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2001ad827..46dec39a0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-22.04 steps: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env - - run: cd ~/dev-env && docker-compose up -d + - run: cd ~/dev-env && docker compose up -d - uses: actions/checkout@v4 with: From d4ada11c7155ef0b6c50e6cd03258db9ac824765 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:12:37 +0800 Subject: [PATCH 311/888] build(deps): update module google.golang.org/grpc to v1.65.0 (#614) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 15 ++++++++------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 6d657ab01..c635620e0 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.24.0 - google.golang.org/grpc v1.64.1 + google.golang.org/grpc v1.65.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 @@ -53,7 +53,7 @@ require ( github.com/BurntSushi/toml v1.2.1 // indirect github.com/andybalholm/brotli v1.0.6 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -94,8 +94,8 @@ require ( golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 9e44fc94b..41eed42e8 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,9 @@ github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -641,10 +642,10 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237 h1:RFiFrvy37/mpSpdySBDrUdipW/dHwsRwh3J3+A9VgT4= -google.golang.org/genproto/googleapis/api v0.0.0-20240318140521-94a12d6c2237/go.mod h1:Z5Iiy3jtmioajWHDGFk7CeugTyHtPvMHA4UTmUkyalE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 h1:NnYq6UN9ReLM9/Y01KWNOWyI5xQ9kbIms5GGJVwS/Yc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -654,8 +655,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From e32bf0b9832d9e06e97fce2108489ef7a116bb33 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 Aug 2024 23:33:57 +0800 Subject: [PATCH 312/888] style: disable lint --- internal/pkg/random/string.go | 2 +- internal/pkg/random/string_internal_test.go | 28 --------------------- 2 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 internal/pkg/random/string_internal_test.go diff --git a/internal/pkg/random/string.go b/internal/pkg/random/string.go index b767b12dd..d5590d361 100644 --- a/internal/pkg/random/string.go +++ b/internal/pkg/random/string.go @@ -29,7 +29,7 @@ var p = pool.New(func() *bufio.Reader { // we may never need to change these values. const base62Chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" const base62CharsLength = byte(len(base62Chars)) -const base62MaxByte = byte(255 - (256 % len(base62Chars))) +const base62MaxByte = byte(255 - (256 % len(base62Chars))) //nolint:gomnd // Base62String generate a cryptographically secure base62 string in given length. // Will panic if it can't read from 'crypto/rand'. diff --git a/internal/pkg/random/string_internal_test.go b/internal/pkg/random/string_internal_test.go deleted file mode 100644 index 166cfb5ee..000000000 --- a/internal/pkg/random/string_internal_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package random - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func TestConst(t *testing.T) { - t.Parallel() - - require.EqualValues(t, len(base62Chars), base62CharsLength) - require.EqualValues(t, 255-(256%len(base62Chars)), base62MaxByte) -} From 61682811a6dde9cd33230e10d1f4c9b79fd97368 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:35:44 +0800 Subject: [PATCH 313/888] build(deps): update module github.com/redis/go-redis/v9 to v9.6.1 (#611) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c635620e0..3de6dd62a 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/meilisearch/meilisearch-go v0.26.3 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 - github.com/redis/go-redis/v9 v9.5.3 + github.com/redis/go-redis/v9 v9.6.1 github.com/samber/lo v1.44.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 diff --git a/go.sum b/go.sum index 41eed42e8..2944200b7 100644 --- a/go.sum +++ b/go.sum @@ -367,8 +367,8 @@ github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.5.3 h1:fOAp1/uJG+ZtcITgZOfYFmTKPE7n4Vclj1wZFgRciUU= -github.com/redis/go-redis/v9 v9.5.3/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= +github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= From 3d16bfb0bc2694b5dfaa70f3af1b4cdb65249923 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:36:02 +0800 Subject: [PATCH 314/888] build(deps): update module github.com/trim21/errgo to v0.0.3 (#606) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3de6dd62a..fabe91f0d 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 - github.com/trim21/errgo v0.0.2 + github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.0.22 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 diff --git a/go.sum b/go.sum index 2944200b7..4094e1bd4 100644 --- a/go.sum +++ b/go.sum @@ -36,6 +36,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= +github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/bsm/ginkgo/v2 v2.5.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= @@ -417,8 +419,8 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/trim21/errgo v0.0.2 h1:OlaTR0PaSzBGFgBMEhwwTtnpN2q03WNNr3YossUCHCY= -github.com/trim21/errgo v0.0.2/go.mod h1:T9MN4yD51VA68yqmod0e6z4ZjTBd8buD0aCFjfQ+hUM= +github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= +github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= github.com/trim21/go-phpserialize v0.0.22 h1:gcs36ir5s3iPFtGrp+3uU/R1lO05Et0nuhaBdUahq0Y= github.com/trim21/go-phpserialize v0.0.22/go.mod h1:BxWksx+mEAaKC+ekgfTHas1z25dEE3n0bZbAp+tsJUM= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= From b30fe2e79828df0d124280fc8669d78d653fc225 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:36:19 +0800 Subject: [PATCH 315/888] build(deps): update module go.etcd.io/etcd/client/v3 to v3.5.15 (#607) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index fabe91f0d..bb04f6fc6 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.14 + go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.24.0 @@ -83,8 +83,8 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.14 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect + go.etcd.io/etcd/api/v3 v3.5.15 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect go.uber.org/dig v1.17.1 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect diff --git a/go.sum b/go.sum index 4094e1bd4..19f5e67c4 100644 --- a/go.sum +++ b/go.sum @@ -452,12 +452,12 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= -go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= -go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= -go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= -go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= -go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= +go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk= +go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM= +go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA= +go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= +go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= +go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= From 3ec2ea01fea8b7d515048bc97ffba8051cce09aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:36:34 +0800 Subject: [PATCH 316/888] chore(deps): update gcr.io/distroless/static docker digest to ce46866 (#603) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index c318a35b6..78ec71132 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:41972110a1c1a5c0b6adb283e8aa092c43c31f7c5d79b8656fbffff2c3e61f05 +FROM gcr.io/distroless/static@sha256:ce46866b3a5170db3b49364900fb3168dc0833dfb46c26da5c77f22abb01d8c3 ENTRYPOINT ["/app/chii.exe"] From 2eb52906fb25a36da64e3648d1639ae7df4ac693 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:36:51 +0800 Subject: [PATCH 317/888] ci: update autofix-ci/action digest to ff86a55 (#604) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 596ac2f8a..066941984 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -29,4 +29,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@dd55f44df8f7cdb7a6bf74c78677eb8acd40cd0a + - uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c From fe5325e2b2451722eb81305b21bffe5d65cf0666 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:37:07 +0800 Subject: [PATCH 318/888] build(deps): update module gorm.io/gorm to v1.25.11 (#608) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bb04f6fc6..5c4f24aae 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 - gorm.io/gorm v1.25.10 + gorm.io/gorm v1.25.11 gorm.io/plugin/dbresolver v1.5.2 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 19f5e67c4..cfc98a958 100644 --- a/go.sum +++ b/go.sum @@ -714,8 +714,8 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= -gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.11 h1:/Wfyg1B/je1hnDx3sMkX+gAlxrlZpn6X0BXRlwXlvHg= +gorm.io/gorm v1.25.11/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.5.2 h1:Iut7lW4TXNoVs++I+ra3zxjSxTRj4ocIeFEVp4lLhII= From 845b135137df44698e40daf5d872d8f073d108df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:37:24 +0800 Subject: [PATCH 319/888] build(deps): update module golang.org/x/crypto to v0.26.0 (#613) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 5c4f24aae..d47be436f 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/fx v1.22.1 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.24.0 + golang.org/x/crypto v0.26.0 google.golang.org/grpc v1.65.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 google.golang.org/protobuf v1.34.2 @@ -89,9 +89,9 @@ require ( go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect diff --git a/go.sum b/go.sum index cfc98a958..d2944cf80 100644 --- a/go.sum +++ b/go.sum @@ -490,8 +490,8 @@ golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -547,8 +547,8 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -585,8 +585,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -605,8 +605,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= From 1af01f9f1fab8e8120ff29b4ab39e9045bce8ef0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:37:40 +0800 Subject: [PATCH 320/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.27.2 (#610) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d47be436f..47beed390 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.26.3 + github.com/meilisearch/meilisearch-go v0.27.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 github.com/redis/go-redis/v9 v9.6.1 diff --git a/go.sum b/go.sum index d2944cf80..11252fd47 100644 --- a/go.sum +++ b/go.sum @@ -272,8 +272,8 @@ github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.26.3 h1:EYt+C1n7IvjKzgXM3xqce5iJzNBq33F7ayZOKx96TKY= -github.com/meilisearch/meilisearch-go v0.26.3/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.27.2 h1:3G21dJ5i208shnLPDsIEZ0L0Geg/5oeXABFV7nlK94k= +github.com/meilisearch/meilisearch-go v0.27.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= From c32251aa8d5f2298c2ea3fcadb70176b44ba78b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:37:47 +0800 Subject: [PATCH 321/888] build(deps): update module github.com/samber/lo to v1.47.0 (#612) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 47beed390..dfcbb4009 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.19.1 github.com/redis/go-redis/v9 v9.6.1 - github.com/samber/lo v1.44.0 + github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 11252fd47..8e3444369 100644 --- a/go.sum +++ b/go.sum @@ -378,8 +378,8 @@ github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncj github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samber/lo v1.44.0 h1:5il56KxRE+GHsm1IR+sZ/6J42NODigFiqCWpSc2dybA= -github.com/samber/lo v1.44.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= +github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= +github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= From bd9c28e7cab17c23ac651103455d4d5ecc3710bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:37:59 +0800 Subject: [PATCH 322/888] build(deps): update module google.golang.org/grpc/cmd/protoc-gen-go-grpc to v1.5.1 (#615) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index dfcbb4009..7e940c9cd 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 google.golang.org/grpc v1.65.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 @@ -95,7 +95,7 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 8e3444369..be207d415 100644 --- a/go.sum +++ b/go.sum @@ -646,8 +646,8 @@ google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -659,8 +659,8 @@ google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0 h1:9SxA29VM43MF5Z9dQu694wmY5t8E/Gxr7s+RSxiIDmc= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.4.0/go.mod h1:yZOK5zhQMiALmuweVdIVoQPa6eIJyXn2B9g5dJDhqX4= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From a8d42978851ba4043481e1d32b1789738e7ba3f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 23:38:06 +0800 Subject: [PATCH 323/888] build(deps): update module github.com/aws/aws-sdk-go to v1.55.5 (#609) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7e940c9cd..98659879d 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.54.11 + github.com/aws/aws-sdk-go v1.55.5 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index be207d415..740ba3cf5 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.54.11 h1:Zxuv/R+IVS0B66yz4uezhxH9FN9/G2nbxejYqAMFjxk= -github.com/aws/aws-sdk-go v1.54.11/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= +github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= From 8707b0909bb029c9f622a359d68ddbf0f0dc631c Mon Sep 17 00:00:00 2001 From: Contextualist Date: Thu, 15 Aug 2024 18:44:09 -0700 Subject: [PATCH 324/888] feat: include field PrsnAppearEps in subject persons response (#616) --- domain/relation.go | 1 + internal/model/relation.go | 1 + internal/person/mysql_repository.go | 1 + internal/person/service.go | 1 + openapi/v0.yaml | 5 +++++ web/handler/subject/related_persons.go | 1 + web/res/subject.go | 1 + 7 files changed, 11 insertions(+) diff --git a/domain/relation.go b/domain/relation.go index 6240c906f..ac9b6714c 100644 --- a/domain/relation.go +++ b/domain/relation.go @@ -29,6 +29,7 @@ type SubjectPersonRelation struct { PersonID model.PersonID SubjectID model.SubjectID + Eps string } type SubjectCharacterRelation struct { diff --git a/internal/model/relation.go b/internal/model/relation.go index 63589d551..b997cda9a 100644 --- a/internal/model/relation.go +++ b/internal/model/relation.go @@ -24,6 +24,7 @@ type SubjectPersonRelation struct { Person Person Subject Subject TypeID uint16 + Eps string } type SubjectCharacterRelation struct { diff --git a/internal/person/mysql_repository.go b/internal/person/mysql_repository.go index d14a8284e..67d62be4d 100644 --- a/internal/person/mysql_repository.go +++ b/internal/person/mysql_repository.go @@ -68,6 +68,7 @@ func (r mysqlRepo) GetSubjectRelated( rel[i] = domain.SubjectPersonRelation{ PersonID: relation.PersonID, TypeID: relation.PrsnPosition, + Eps: relation.PrsnAppearEps, } } diff --git a/internal/person/service.go b/internal/person/service.go index 7c7b5ead2..83d2948d9 100644 --- a/internal/person/service.go +++ b/internal/person/service.go @@ -65,6 +65,7 @@ func (s service) GetSubjectRelated( Person: persons[rel.PersonID], Subject: sub, TypeID: rel.TypeID, + Eps: rel.Eps, } } diff --git a/openapi/v0.yaml b/openapi/v0.yaml index e50e0959d..76cb82d6f 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -2961,6 +2961,7 @@ components: - type - career - relation + - eps type: object properties: id: @@ -2987,6 +2988,10 @@ components: relation: title: Relation type: string + eps: + title: Eps + type: string + description: 参与章节/曲目 UserCharacterCollection: title: UserCharacterCollection required: diff --git a/web/handler/subject/related_persons.go b/web/handler/subject/related_persons.go index af1d96196..cee74ad32 100644 --- a/web/handler/subject/related_persons.go +++ b/web/handler/subject/related_persons.go @@ -62,6 +62,7 @@ func (h Subject) GetRelatedPersons(c echo.Context) error { Career: rel.Person.Careers(), Type: rel.Person.Type, ID: rel.Person.ID, + Eps: rel.Eps, } } diff --git a/web/res/subject.go b/web/res/subject.go index 39f36e54c..ba3bde9d4 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -198,6 +198,7 @@ type SubjectRelatedPerson struct { Career []string `json:"career"` Type uint8 `json:"type"` ID model.PersonID `json:"id" doc:"person ID"` + Eps string `json:"eps" doc:"episodes participated"` } type Actor struct { From e6bd50603517699e4b9806e4e192e709e47d9de5 Mon Sep 17 00:00:00 2001 From: Contextualist Date: Sun, 25 Aug 2024 15:50:01 -0700 Subject: [PATCH 325/888] fix: update staff definition (#617) --- pkg/vars/staff.go.json | 49 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/pkg/vars/staff.go.json b/pkg/vars/staff.go.json index 198929657..abfba3be4 100644 --- a/pkg/vars/staff.go.json +++ b/pkg/vars/staff.go.json @@ -53,6 +53,18 @@ "EN": "Original Character Design", "JP": "キャラクター原案", "RDF": "" + }, + "2010": { + "CN": "脚本", + "EN": "", + "JP": "シナリオ", + "RDF": "" + }, + "2011": { + "CN": "文库", + "EN": "", + "JP": "文庫", + "RDF": "" } }, "2": { @@ -635,9 +647,34 @@ "RDF": "" }, "3011": { - "en": "O.P.", - "cn": "出版方", - "jp": "音楽出版社" + "CN": "出版方", + "EN": "O.P.", + "JP": "音楽出版社", + "RDF": "" + }, + "3012": { + "CN": "母带制作", + "EN": "Mastering", + "JP": "", + "RDF": "" + }, + "3013": { + "CN": "混音", + "EN": "Mixing", + "JP": "", + "RDF": "" + }, + "3014": { + "CN": "乐器", + "EN": "Instrument", + "JP": "", + "RDF": "" + }, + "3015": { + "CN": "声乐", + "EN": "Vocal", + "JP": "", + "RDF": "" } }, "4": { @@ -942,6 +979,12 @@ "EN": "Production", "JP": "製作 製作スタジオ", "RDF": "" + }, + "4019": { + "CN": "出品", + "EN": "", + "JP": "配給", + "RDF": "" } } } From 3e358e2c9ec1d06428b9265d4e1b209f458839aa Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 30 Aug 2024 18:20:55 +0800 Subject: [PATCH 326/888] fix: archive dump escape (#618) --- cmd/archive/main.go | 6 +-- cmd/gen/gorm/main.go | 3 ++ dal/dao/chii_subjects.gen.go | 56 +++++++++++++++------------- dal/query/chii_subjects.gen.go | 18 ++++----- internal/subject/mysql_repository.go | 12 +++--- 5 files changed, 51 insertions(+), 44 deletions(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 316e9b407..97bb9e4ca 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -256,9 +256,9 @@ func exportSubjects(q *query.Query, w io.Writer) { encode(w, Subject{ ID: subject.ID, Type: subject.TypeID, - Name: subject.Name, - NameCN: subject.NameCN, - Infobox: subject.Infobox, + Name: string(subject.Name), + NameCN: string(subject.NameCN), + Infobox: string(subject.Infobox), Platform: subject.Platform, Summary: subject.Summary, Nsfw: subject.Nsfw, diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 841d551ba..d41412b05 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -318,6 +318,9 @@ func main() { gen.FieldRename("subject_collect", "Done"), gen.FieldRename("field_infobox", "infobox"), gen.FieldType("subject_id", subjectIDTypeString), + gen.FieldType("subject_name", "utiltype.HTMLEscapedString"), + gen.FieldType("field_infobox", "utiltype.HTMLEscapedString"), + gen.FieldType("subject_name_cn", "utiltype.HTMLEscapedString"), gen.FieldType("subject_ban", "uint8"), gen.FieldType("subject_type_id", subjectTypeIDTypeString), gen.FieldType("subject_airtime", "uint8"), diff --git a/dal/dao/chii_subjects.gen.go b/dal/dao/chii_subjects.gen.go index 47e26d911..d7bba616b 100644 --- a/dal/dao/chii_subjects.gen.go +++ b/dal/dao/chii_subjects.gen.go @@ -4,36 +4,40 @@ package dao +import ( + "github.com/bangumi/server/dal/utiltype" +) + const TableNameSubject = "chii_subjects" // Subject mapped from table type Subject struct { - ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` - TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null" json:""` - Name string `gorm:"column:subject_name;type:varchar(80);not null" json:""` - NameCN string `gorm:"column:subject_name_cn;type:varchar(80);not null" json:""` - UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb" json:""` // isbn / imdb - Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null" json:""` - Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null" json:""` - Image string `gorm:"column:subject_image;type:varchar(255);not null" json:""` - Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null" json:""` - Infobox string `gorm:"column:field_infobox;type:mediumtext;not null" json:""` - Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary" json:""` // summary - Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary" json:""` // author summary - Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 - Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null" json:""` - Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null" json:""` - Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null" json:""` - Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null" json:""` - OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数" json:""` // 搁置人数 - Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数" json:""` // 抛弃人数 - Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null" json:""` - SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null" json:""` - IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null" json:""` - Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null" json:""` - Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null" json:""` - Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null" json:""` - Fields SubjectField `gorm:"foreignKey:subject_id;references:field_sid" json:"fields"` + ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null" json:""` + Name utiltype.HTMLEscapedString `gorm:"column:subject_name;type:varchar(80);not null" json:""` + NameCN utiltype.HTMLEscapedString `gorm:"column:subject_name_cn;type:varchar(80);not null" json:""` + UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb" json:""` // isbn / imdb + Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null" json:""` + Image string `gorm:"column:subject_image;type:varchar(255);not null" json:""` + Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null" json:""` + Infobox utiltype.HTMLEscapedString `gorm:"column:field_infobox;type:mediumtext;not null" json:""` + Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary" json:""` // summary + Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary" json:""` // author summary + Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 + Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null" json:""` + Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null" json:""` + Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null" json:""` + Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null" json:""` + OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数" json:""` // 搁置人数 + Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数" json:""` // 抛弃人数 + Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null" json:""` + SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null" json:""` + IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null" json:""` + Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null" json:""` + Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null" json:""` + Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null" json:""` + Fields SubjectField `gorm:"foreignKey:subject_id;references:field_sid" json:"fields"` } // TableName Subject's table name diff --git a/dal/query/chii_subjects.gen.go b/dal/query/chii_subjects.gen.go index c89c7275d..1845a13ad 100644 --- a/dal/query/chii_subjects.gen.go +++ b/dal/query/chii_subjects.gen.go @@ -29,14 +29,14 @@ func newSubject(db *gorm.DB, opts ...gen.DOOption) subject { _subject.ALL = field.NewAsterisk(tableName) _subject.ID = field.NewUint32(tableName, "subject_id") _subject.TypeID = field.NewUint8(tableName, "subject_type_id") - _subject.Name = field.NewString(tableName, "subject_name") - _subject.NameCN = field.NewString(tableName, "subject_name_cn") + _subject.Name = field.NewField(tableName, "subject_name") + _subject.NameCN = field.NewField(tableName, "subject_name_cn") _subject.UID = field.NewString(tableName, "subject_uid") _subject.Creator = field.NewUint32(tableName, "subject_creator") _subject.Dateline = field.NewUint32(tableName, "subject_dateline") _subject.Image = field.NewString(tableName, "subject_image") _subject.Platform = field.NewUint16(tableName, "subject_platform") - _subject.Infobox = field.NewString(tableName, "field_infobox") + _subject.Infobox = field.NewField(tableName, "field_infobox") _subject.Summary = field.NewString(tableName, "field_summary") _subject.Field5 = field.NewString(tableName, "field_5") _subject.Volumes = field.NewUint32(tableName, "field_volumes") @@ -69,14 +69,14 @@ type subject struct { ALL field.Asterisk ID field.Uint32 TypeID field.Uint8 - Name field.String - NameCN field.String + Name field.Field + NameCN field.Field UID field.String // isbn / imdb Creator field.Uint32 Dateline field.Uint32 Image field.String Platform field.Uint16 - Infobox field.String + Infobox field.Field Summary field.String // summary Field5 field.String // author summary Volumes field.Uint32 // 卷数 @@ -111,14 +111,14 @@ func (s *subject) updateTableName(table string) *subject { s.ALL = field.NewAsterisk(table) s.ID = field.NewUint32(table, "subject_id") s.TypeID = field.NewUint8(table, "subject_type_id") - s.Name = field.NewString(table, "subject_name") - s.NameCN = field.NewString(table, "subject_name_cn") + s.Name = field.NewField(table, "subject_name") + s.NameCN = field.NewField(table, "subject_name_cn") s.UID = field.NewString(table, "subject_uid") s.Creator = field.NewUint32(table, "subject_creator") s.Dateline = field.NewUint32(table, "subject_dateline") s.Image = field.NewString(table, "subject_image") s.Platform = field.NewUint16(table, "subject_platform") - s.Infobox = field.NewString(table, "field_infobox") + s.Infobox = field.NewField(table, "field_infobox") s.Summary = field.NewString(table, "field_summary") s.Field5 = field.NewString(table, "field_5") s.Volumes = field.NewUint32(table, "field_volumes") diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 2c924b769..64e9ccaf9 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -18,7 +18,6 @@ import ( "context" "errors" "fmt" - "html" "math" "github.com/trim21/errgo" @@ -27,6 +26,7 @@ import ( "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/dal/utiltype" "github.com/bangumi/server/domain" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/model" @@ -76,12 +76,12 @@ func ConvertDao(s *dao.Subject) (model.Subject, error) { Redirect: s.Fields.Redirect, Date: date, ID: s.ID, - Name: html.UnescapeString(s.Name), - NameCN: html.UnescapeString(s.NameCN), + Name: string(s.Name), + NameCN: string(s.NameCN), TypeID: s.TypeID, Image: s.Image, PlatformID: s.Platform, - Infobox: s.Infobox, + Infobox: string(s.Infobox), Summary: s.Summary, Volumes: s.Volumes, Eps: s.Eps, @@ -248,7 +248,7 @@ func (r mysqlRepo) Count( q = q.Where(r.q.Subject.Series.Is(filter.Series.Value)) } if filter.Platform.Set { - q = q.Where(r.q.Subject.Infobox.Like(fmt.Sprintf("%%[%s]%%", filter.Platform.Value))) + q = q.Where(r.q.Subject.Infobox.Like(utiltype.HTMLEscapedString(fmt.Sprintf("%%[%s]%%", filter.Platform.Value)))) } if filter.Year.Set { q = q.Where(r.q.SubjectField.Year.Eq(filter.Year.Value)) @@ -285,7 +285,7 @@ func (r mysqlRepo) Browse( q = q.Where(r.q.Subject.Series.Is(filter.Series.Value)) } if filter.Platform.Set { - q = q.Where(r.q.Subject.Infobox.Like(fmt.Sprintf("%%[%s]%%", filter.Platform.Value))) + q = q.Where(r.q.Subject.Infobox.Like(utiltype.HTMLEscapedString(fmt.Sprintf("%%[%s]%%", filter.Platform.Value)))) } if filter.Year.Set { q = q.Where(r.q.SubjectField.Year.Eq(filter.Year.Value)) From 9a7bf633766da01a9b07e46176467503f7970806 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 01:24:34 +0800 Subject: [PATCH 327/888] build(deps): update module go.uber.org/fx to v1.22.2 (#620) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 98659879d..31e1dbb4b 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.etcd.io/etcd/client/v3 v3.5.15 - go.uber.org/fx v1.22.1 + go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 google.golang.org/grpc v1.65.0 @@ -85,7 +85,7 @@ require ( github.com/valyala/fasttemplate v1.2.2 // indirect go.etcd.io/etcd/api/v3 v3.5.15 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect - go.uber.org/dig v1.17.1 // indirect + go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.26.0 // indirect diff --git a/go.sum b/go.sum index 740ba3cf5..3cce30ca8 100644 --- a/go.sum +++ b/go.sum @@ -463,10 +463,10 @@ go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= -go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.1 h1:nvvln7mwyT5s1q201YE29V/BFrGor6vMiDNpU/78Mys= -go.uber.org/fx v1.22.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= +go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= +go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From 37536d2771c6258b3b36111be6e02d0c173d3e4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Sep 2024 03:09:12 +0800 Subject: [PATCH 328/888] build(deps): update module github.com/go-resty/resty/v2 to v2.14.0 (#621) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 27 +++++++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 31e1dbb4b..8d6f044ed 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.22.0 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.13.1 + github.com/go-resty/resty/v2 v2.14.0 github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 @@ -88,11 +88,11 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect diff --git a/go.sum b/go.sum index 3cce30ca8..f49cae89d 100644 --- a/go.sum +++ b/go.sum @@ -108,8 +108,8 @@ github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4 github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= -github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.14.0 h1:/rhkzsAqGQkozwfKS5aFAbb6TyKd3zyFRWcdRXLPCAU= +github.com/go-resty/resty/v2 v2.14.0/go.mod h1:IW6mekUOsElt9C7oWr0XRt9BNSD6D5rr9mhk6NjmNHg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= @@ -487,9 +487,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -504,6 +506,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -531,11 +535,12 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -547,6 +552,9 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -582,18 +590,23 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -605,12 +618,13 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -629,6 +643,7 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 4d917a770b77c78a11162ee0e89633ae5a482384 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 5 Sep 2024 00:59:18 +0800 Subject: [PATCH 329/888] feat(archive): add series --- cmd/archive/main.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 97bb9e4ca..3a7bcee3e 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -204,6 +204,8 @@ type Subject struct { Rank uint32 `json:"rank"` Date string `json:"date"` Favorite Favorite `json:"favorite"` + + Series bool `json:"series"` } type Tag struct { @@ -277,7 +279,8 @@ func exportSubjects(q *query.Query, w io.Writer) { Field9: subject.Fields.Rate9, Field10: subject.Fields.Rate10, }, - Date: encodedDate, + Date: encodedDate, + Series: subject.Series, Favorite: Favorite{ Wish: subject.Wish, Done: subject.Done, From 60f2e7f0ba2b59c7d7eca04447414b79185ec446 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 22:05:31 +0800 Subject: [PATCH 330/888] build(deps): update module github.com/prometheus/client_golang to v1.20.3 (#623) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 11 ++++++----- go.sum | 24 ++++++++++++++---------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 8d6f044ed..0368a5058 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.27.2 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.19.1 + github.com/prometheus/client_golang v1.20.3 github.com/redis/go-redis/v9 v9.6.1 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 @@ -69,16 +69,17 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect diff --git a/go.sum b/go.sum index f49cae89d..c6336fc39 100644 --- a/go.sum +++ b/go.sum @@ -233,8 +233,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -245,6 +245,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0= github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= @@ -290,6 +292,8 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= @@ -342,31 +346,31 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= +github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= From 5a8f047ddfb036f01e861bba0a7d69136dc29c68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:18:52 +0800 Subject: [PATCH 331/888] build(deps): update module google.golang.org/grpc to v1.66.1 (#624) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 0368a5058..fedeeb0f7 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 - google.golang.org/grpc v1.65.0 + google.golang.org/grpc v1.66.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 @@ -95,7 +95,7 @@ require ( golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index c6336fc39..59dbb5684 100644 --- a/go.sum +++ b/go.sum @@ -663,8 +663,8 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -676,8 +676,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= +google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From ce9291d643677e328e4b83fac474f873a008c3cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:22:46 +0800 Subject: [PATCH 332/888] build(deps): update module golang.org/x/crypto to v0.27.0 (#626) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index fedeeb0f7..32b831726 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.26.0 + golang.org/x/crypto v0.27.0 google.golang.org/grpc v1.66.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 @@ -91,8 +91,8 @@ require ( golang.org/x/mod v0.17.0 // indirect golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect diff --git a/go.sum b/go.sum index 59dbb5684..550d007f2 100644 --- a/go.sum +++ b/go.sum @@ -496,8 +496,8 @@ golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -599,8 +599,8 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -623,8 +623,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= From f91b72beb74ffedeb7a9def50550d5c66ab0da29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:26:33 +0800 Subject: [PATCH 333/888] chore(deps): update gcr.io/distroless/static docker digest to 95eb83a (#627) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 78ec71132..372fc4140 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:ce46866b3a5170db3b49364900fb3168dc0833dfb46c26da5c77f22abb01d8c3 +FROM gcr.io/distroless/static@sha256:95eb83a44a62c1c27e5f0b38d26085c486d71ece83dd64540b7209536bb13f6d ENTRYPOINT ["/app/chii.exe"] From 0f095e3e40da64714c03b322b09b916a1102a635 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 14 Sep 2024 20:28:02 +0800 Subject: [PATCH 334/888] feat: include episode duraiton in dump --- cmd/archive/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 3a7bcee3e..782ff3a9b 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -404,6 +404,7 @@ type Episode struct { Description string `json:"description"` AirDate string `json:"airdate"` Disc uint8 `json:"disc"` + Duration string `json:"duration"` SubjectID model.SubjectID `json:"subject_id"` Sort float32 `json:"sort"` Type episode.Type `json:"type"` @@ -428,6 +429,7 @@ func exportEpisodes(q *query.Query, w io.Writer) { NameCn: e.NameCn, Sort: e.Sort, SubjectID: e.SubjectID, + Duration: e.Duration, Description: e.Desc, Type: e.Type, AirDate: e.Airdate, From bffc5f2ced434c193822c69c46328b7fb2739742 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 21 Sep 2024 08:16:41 +0800 Subject: [PATCH 335/888] ci: release branches --- .github/workflows/release-docker.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 6f95fa57b..490897392 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -6,6 +6,8 @@ on: - "v*.*.*" branches: - master + branches-ignore: + - "renovate/**" permissions: packages: write From c1a20e7bb6bb258118019ff627710079304ad2fd Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 21 Sep 2024 08:18:15 +0800 Subject: [PATCH 336/888] Update release-docker.yaml --- .github/workflows/release-docker.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 490897392..b7b5c8bf1 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -4,8 +4,6 @@ on: push: tags: - "v*.*.*" - branches: - - master branches-ignore: - "renovate/**" From 8fa5b60c0efa9a747cc4aa7addd4ec6426e22670 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 21 Sep 2024 08:47:01 +0800 Subject: [PATCH 337/888] refactor: remove etcd and use lb (#628) --- config/config.go | 6 +++--- go.mod | 8 -------- go.sum | 29 ----------------------------- internal/timeline/grpc.go | 23 ++++------------------- 4 files changed, 7 insertions(+), 59 deletions(-) diff --git a/config/config.go b/config/config.go index 32b7b510f..cd98eb246 100644 --- a/config/config.go +++ b/config/config.go @@ -68,9 +68,9 @@ type AppConfig struct { DisableWords string `yaml:"disable_words"` BannedDomain string `yaml:"banned_domain"` - // "http://localhost:2379" - EtcdAddr string `yaml:"etcd_addr" env:"ETCD_ADDR"` - EtcdNamespace string `yaml:"etcd_namespace" env:"ETCD_NAMESPACE" env-default:"/chii/services"` + // a timeline microservice listen domain + SrvTimelineDomain string `yaml:"srv_timeline_domain" env:"SRV_TIMELINE_DOMAIN"` + SrvTimelinePort uint16 `yaml:"srv_timeline_port" env:"SRV_TIMELINE_PORT"` S3EntryPoint string `yaml:"s3_entry_point" env:"S3_ENTRY_POINT"` S3AccessKey string `yaml:"s3_access_key" env:"S3_ACCESS_KEY"` diff --git a/go.mod b/go.mod index 32b831726..339b8655a 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,6 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.etcd.io/etcd/client/v3 v3.5.15 go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 @@ -54,15 +53,11 @@ require ( github.com/andybalholm/brotli v1.0.6 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/coreos/go-semver v0.3.0 // indirect - github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect @@ -84,8 +79,6 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - go.etcd.io/etcd/api/v3 v3.5.15 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect @@ -95,7 +88,6 @@ require ( golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index 550d007f2..7d8a979ff 100644 --- a/go.sum +++ b/go.sum @@ -56,11 +56,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27wIbmOGUs7RIbVgPEjb31ehTVniDwPGXyMxm5U= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -115,13 +111,10 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -144,8 +137,6 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -228,7 +219,6 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= @@ -451,17 +441,9 @@ github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3k github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.etcd.io/etcd/api/v3 v3.5.15 h1:3KpLJir1ZEBrYuV2v+Twaa/e2MdDCEZ/70H+lzEiwsk= -go.etcd.io/etcd/api/v3 v3.5.15/go.mod h1:N9EhGzXq58WuMllgH9ZvnEr7SI9pS0k0+DHZezGp7jM= -go.etcd.io/etcd/client/pkg/v3 v3.5.15 h1:fo0HpWz/KlHGMCC+YejpiCmyWDEuIpnTDzpJLB5fWlA= -go.etcd.io/etcd/client/pkg/v3 v3.5.15/go.mod h1:mXDI4NAOwEiszrHCb0aqfAYNCrZP4e9hRca3d1YK8EU= -go.etcd.io/etcd/client/v3 v3.5.15 h1:23M0eY4Fd/inNv1ZfU3AxrbbOdW79r9V9Rl62Nm6ip4= -go.etcd.io/etcd/client/v3 v3.5.15/go.mod h1:CLSJxrYjvLtHsrPKsy7LmZEE+DK2ktfd2bN4RhBMwlU= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -506,8 +488,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= @@ -530,9 +510,7 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -553,7 +531,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= @@ -580,7 +557,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -643,8 +619,6 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= @@ -653,7 +627,6 @@ golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxb golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -663,8 +636,6 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= -google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= diff --git a/internal/timeline/grpc.go b/internal/timeline/grpc.go index b096c7ba5..b86f94e45 100644 --- a/internal/timeline/grpc.go +++ b/internal/timeline/grpc.go @@ -20,8 +20,6 @@ import ( "time" "github.com/trim21/errgo" - clientv3 "go.etcd.io/etcd/client/v3" - "go.etcd.io/etcd/client/v3/naming/resolver" "go.uber.org/zap" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" @@ -130,26 +128,13 @@ func (m grpcClient) ChangeEpisodeStatus( } func newGrpcClient(cfg config.AppConfig) (pb.TimeLineServiceClient, error) { - if cfg.EtcdAddr == "" { - logger.Info("no etcd, using nope timeline service") + if cfg.SrvTimelineDomain == "" || cfg.SrvTimelinePort == 0 { + logger.Info("no srv_timeline_domain and srv_timeline_port, using nope timeline service") return noopClient{}, nil } - logger.Info("using etcd to discovery timeline services " + cfg.EtcdAddr) - - cli, err := clientv3.NewFromURL(cfg.EtcdAddr) - if err != nil { - return nil, errgo.Wrap(err, "etcd new client") - } - - etcdResolver, err := resolver.NewBuilder(cli) - if err != nil { - return nil, errgo.Wrap(err, "etcd grpc resolver") - } - - conn, err := grpc.Dial( - fmt.Sprintf("etcd:///%s/timeline", cfg.EtcdNamespace), - grpc.WithResolvers(etcdResolver), + conn, err := grpc.NewClient( + fmt.Sprintf("dns:///%s:%d", cfg.SrvTimelineDomain, cfg.SrvTimelinePort), grpc.WithTransportCredentials(insecure.NewCredentials()), ) if err != nil { From 1ca319c16bb1f60211752c3c1325f775e7532b13 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 24 Sep 2024 04:16:40 +0800 Subject: [PATCH 338/888] refactor: remove redis broker --- canal/canal.go | 14 +---- canal/stream_redis.go | 143 ------------------------------------------ 2 files changed, 2 insertions(+), 155 deletions(-) delete mode 100644 canal/stream_redis.go diff --git a/canal/canal.go b/canal/canal.go index db51a2d5a..50ac7f1b8 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -35,7 +35,7 @@ import ( "github.com/bangumi/server/web/session" ) -const groupID = "my-group" +const groupID = "go-canal" var errNoTopic = fmt.Errorf("missing search events topic") @@ -50,16 +50,6 @@ func Main() error { return errNoTopic } - var opt fx.Option - switch cfg.Canal.Broker { - case "redis": - opt = fx.Provide(newRedisStream) - case "kafka": - opt = fx.Provide(newKafkaStream) - default: - return fmt.Errorf("broker not supported, only support redis/kafka as debezium broker") // nolint: goerr113 - } - var h *eventHandler di := fx.New( fx.NopLogger, @@ -77,7 +67,7 @@ func Main() error { newEventHandler, ), - opt, + fx.Provide(newKafkaStream), fx.Populate(&h), ) diff --git a/canal/stream_redis.go b/canal/stream_redis.go deleted file mode 100644 index d5dd39ac8..000000000 --- a/canal/stream_redis.go +++ /dev/null @@ -1,143 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package canal - -import ( - "context" - "reflect" - "sync/atomic" - "time" - - "github.com/redis/go-redis/v9" - "github.com/samber/lo" - "github.com/trim21/errgo" - "go.uber.org/zap" - - "github.com/bangumi/server/canal/stream" - "github.com/bangumi/server/config" - "github.com/bangumi/server/internal/pkg/logger" -) - -func newRedisStream(cfg config.AppConfig, redisClient *redis.Client) (Stream, error) { - var ch = make(chan Msg, 1) - - reader := stream.New( - redisClient, - groupID, - "canal", - lo.Map(cfg.Canal.Topics, func(item string, _ int) stream.Option { - return stream.WithStream(item) - })..., - ) - - r := &redisStream{ - log: logger.Named("canal.search.stream"), - ch: ch, - cfg: cfg, - redis: redisClient, - reader: reader, - } - - for _, s := range r.cfg.Canal.Topics { - var infos, err = r.redis.XInfoGroups(context.Background(), s).Result() - if err != nil { - if err.Error() != "ERR no such key" { - return nil, errgo.Trace(err) - } - } - - groups := lo.SliceToMap(infos, func(item redis.XInfoGroup) (string, bool) { - return item.Name, true - }) - - if !groups[groupID] { - err := r.redis.XGroupCreateMkStream(context.Background(), s, groupID, "$").Err() - if err != nil { - return nil, errgo.Trace(err) - } - } - } - - return r, nil -} - -type redisStream struct { - log *zap.Logger - redis *redis.Client - ch chan Msg - cfg config.AppConfig - closed atomic.Bool - reader *stream.Consumer -} - -func (r *redisStream) Read(ctx context.Context, onMessage func(msg Msg) error) error { - for { - if r.closed.Load() { - return nil - } - - rr, err := r.reader.Read(ctx) - if err != nil { - r.log.Error("failed to read new messages", zap.Error(err)) - time.Sleep(time.Second) - continue - } - - for _, msg := range rr { - r.log.Debug("new message", zap.String("id", msg.ID), zap.String("s", msg.Stream)) - - rawKey := msg.Values["key"] - rawValue := msg.Values["value"] - - if rawKey == nil || rawValue == nil { - _ = r.reader.Ack(context.Background(), msg) - continue - } - - value, ok := rawValue.(string) - if !ok { - r.log.Error("failed to handle event", zap.String("id", msg.ID), - zap.String("value-type", reflect.TypeOf(rawKey).String())) - _ = r.reader.Ack(context.Background(), msg) - continue - } - - key, ok := rawKey.(string) - if !ok { - r.log.Error("failed to handle event", zap.String("id", msg.ID), - zap.String("key-type", reflect.TypeOf(rawKey).String())) - _ = r.reader.Ack(context.Background(), msg) - continue - } - - if err := onMessage(Msg{ID: msg.ID, Stream: msg.Stream, Key: []byte(key), Value: []byte(value)}); err != nil { - return errgo.Trace(err) - } - - if err := r.reader.Ack(ctx, msg); err != nil { - return errgo.Trace(err) - } - } - } -} - -func (r *redisStream) Close() error { - r.closed.Store(true) - return nil -} - -func (r *redisStream) Ack(ctx context.Context, msg Msg) error { - return r.reader.Ack(ctx, stream.Message{Stream: msg.Stream, ID: msg.ID}) -} From 02fb312a5ed582a995eabe4d51d89fb52cd95bc0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 24 Sep 2024 04:22:10 +0800 Subject: [PATCH 339/888] build: upgrade meilisearch deps --- go.mod | 4 +--- go.sum | 19 ++----------------- internal/search/client.go | 20 +++++++++++--------- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/go.mod b/go.mod index 339b8655a..3f8276585 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.27.2 + github.com/meilisearch/meilisearch-go v0.28.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.3 github.com/redis/go-redis/v9 v9.6.1 @@ -50,7 +50,6 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect - github.com/andybalholm/brotli v1.0.6 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -77,7 +76,6 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect - github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d // indirect github.com/valyala/fasttemplate v1.2.2 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.10.0 // indirect diff --git a/go.sum b/go.sum index 7d8a979ff..bd3c42303 100644 --- a/go.sum +++ b/go.sum @@ -15,9 +15,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= -github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -220,8 +217,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= @@ -264,8 +259,8 @@ github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.27.2 h1:3G21dJ5i208shnLPDsIEZ0L0Geg/5oeXABFV7nlK94k= -github.com/meilisearch/meilisearch-go v0.27.2/go.mod h1:SxuSqDcPBIykjWz1PX+KzsYzArNLSCadQodWs8extS0= +github.com/meilisearch/meilisearch-go v0.28.0 h1:f3XJ66ZM+R8bANAOLqsjvoq/HhQNpVJPYoNt6QgNzME= +github.com/meilisearch/meilisearch-go v0.28.0/go.mod h1:Szcc9CaDiKIfjdgdt49jlmDKpEzjD+x+b6Y6heMdlQ0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= @@ -427,11 +422,8 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d h1:xS9QTPgKl9ewGsAOPc+xW7DeStJDqYPfisDmeSCcbco= -github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= github.com/volatiletech/null/v9 v9.0.0/go.mod h1:zRFghPVahaiIMRXiUJrc6gsoG83Cm3ZoAfSTw7VHGQc= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= @@ -472,7 +464,6 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= @@ -512,8 +503,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= @@ -559,10 +548,7 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -590,7 +576,6 @@ golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/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.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= diff --git a/internal/search/client.go b/internal/search/client.go index a56a11a7d..b619def91 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -18,6 +18,7 @@ import ( "context" "errors" "fmt" + "net/http" "net/url" "os" "reflect" @@ -60,13 +61,13 @@ func New( return nil, errgo.Wrap(err, "url.Parse") } - meili := meilisearch.NewClient(meilisearch.ClientConfig{ - Host: cfg.Search.MeiliSearch.URL, - APIKey: cfg.Search.MeiliSearch.Key, - Timeout: cfg.Search.MeiliSearch.Timeout, - }) + meili := meilisearch.New( + cfg.Search.MeiliSearch.URL, + meilisearch.WithAPIKey(cfg.Search.MeiliSearch.Key), + meilisearch.WithCustomClient(&http.Client{Timeout: cfg.Search.MeiliSearch.Timeout}), + ) - if _, err := meili.GetVersion(); err != nil { + if _, err := meili.Version(); err != nil { return nil, errgo.Wrap(err, "meilisearch") } @@ -135,9 +136,9 @@ func (c *client) canalInit(cfg config.AppConfig) error { type client struct { subjectRepo subject.Repo - meili *meilisearch.Client + meili meilisearch.ServiceManager q *query.Query - subjectIndex *meilisearch.Index + subjectIndex meilisearch.IndexManager log *zap.Logger subject string queue *queue.Batched[subjectIndex] @@ -193,7 +194,8 @@ func (c *client) sendBatch(items []subjectIndex) { retry.Delay(time.Microsecond*100), retry.Attempts(5), //nolint:gomnd retry.RetryIf(func(err error) bool { - return errors.As(err, &meilisearch.Error{}) + var r = &meilisearch.Error{} + return errors.As(err, &r) }), ) From b1070869058a4240a1a3389f6f0a2e491b67edf3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 25 Sep 2024 06:47:40 +0800 Subject: [PATCH 340/888] fix: remove schema from kafka message --- canal/event.go | 33 ++++++++++----------------------- canal/ifce.go | 8 ++++---- canal/on_subject.go | 4 ++-- canal/on_user.go | 2 +- canal/stream_kafka.go | 8 ++++---- 5 files changed, 21 insertions(+), 34 deletions(-) diff --git a/canal/event.go b/canal/event.go index 7af69f9a7..f880b784e 100644 --- a/canal/event.go +++ b/canal/event.go @@ -64,12 +64,12 @@ type eventHandler struct { func (e *eventHandler) start() error { ee := e.stream.Read(context.Background(), func(msg Msg) error { - e.log.Debug("new message", zap.String("stream", msg.Stream), zap.String("id", msg.ID)) + e.log.Debug("new message", zap.String("topic", msg.Topic), zap.String("id", msg.ID)) err := e.onMessage(msg.Key, msg.Value) if err != nil { e.log.Error("failed to handle stream msg", - zap.Error(err), zap.String("stream", msg.Stream), zap.String("id", msg.ID)) + zap.Error(err), zap.String("stream", msg.Topic), zap.String("id", msg.ID)) return errgo.Trace(err) } @@ -103,26 +103,21 @@ func (e *eventHandler) onMessage(key, value []byte) error { return nil } - var k messageKey - if err := json.Unmarshal(key, &k); err != nil { + var p Payload + if err := json.Unmarshal(value, &p); err != nil { return nil } - var v messageValue - if err := json.Unmarshal(value, &v); err != nil { - return nil - } - - e.log.Debug("new message", zap.String("table", v.Payload.Source.Table)) + e.log.Debug("new message", zap.String("table", p.Source.Table)) var err error - switch v.Payload.Source.Table { + switch p.Source.Table { case "chii_subject_fields": - err = e.OnSubjectField(k.Payload, v.Payload) + err = e.OnSubjectField(key, p) case "chii_subjects": - err = e.OnSubject(k.Payload, v.Payload) + err = e.OnSubject(key, p) case "chii_members": - err = e.OnUserChange(k.Payload, v.Payload) + err = e.OnUserChange(key, p) } return err @@ -138,15 +133,7 @@ const ( // https://debezium.io/documentation/reference/connectors/mysql.html // Table 9. Overview of change event basic content -type messageKey struct { - Payload json.RawMessage `json:"payload"` -} - -type messageValue struct { - Payload payload `json:"payload"` -} - -type payload struct { +type Payload struct { Before json.RawMessage `json:"before"` After json.RawMessage `json:"after"` Source source `json:"source"` diff --git a/canal/ifce.go b/canal/ifce.go index 1de12767c..892d546db 100644 --- a/canal/ifce.go +++ b/canal/ifce.go @@ -19,10 +19,10 @@ import ( ) type Msg struct { - ID string - Stream string - Key []byte - Value []byte + ID string + Topic string + Key []byte + Value []byte } type Stream interface { diff --git a/canal/on_subject.go b/canal/on_subject.go index 214f9ddfa..fbe70e8b4 100644 --- a/canal/on_subject.go +++ b/canal/on_subject.go @@ -23,7 +23,7 @@ import ( "github.com/bangumi/server/internal/model" ) -func (e *eventHandler) OnSubject(key json.RawMessage, payload payload) error { +func (e *eventHandler) OnSubject(key json.RawMessage, payload Payload) error { var k SubjectKey if err := json.Unmarshal(key, &k); err != nil { return nil @@ -32,7 +32,7 @@ func (e *eventHandler) OnSubject(key json.RawMessage, payload payload) error { return e.onSubjectChange(k.ID, payload.Op) } -func (e *eventHandler) OnSubjectField(key json.RawMessage, payload payload) error { +func (e *eventHandler) OnSubjectField(key json.RawMessage, payload Payload) error { var k SubjectFieldKey if err := json.Unmarshal(key, &k); err != nil { return nil diff --git a/canal/on_user.go b/canal/on_user.go index 34c08902e..da16f7b7a 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -30,7 +30,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger/log" ) -func (e *eventHandler) OnUserChange(key json.RawMessage, payload payload) error { +func (e *eventHandler) OnUserChange(key json.RawMessage, payload Payload) error { var k UserKey if err := json.Unmarshal(key, &k); err != nil { e.log.Error("failed to unmarshal json", zap.Error(err)) diff --git a/canal/stream_kafka.go b/canal/stream_kafka.go index 5dbbd83b4..8166a9761 100644 --- a/canal/stream_kafka.go +++ b/canal/stream_kafka.go @@ -74,10 +74,10 @@ func (s *kafkaStream) Read(ctx context.Context, onMessage func(msg Msg) error) e s.log.Debug("new message", zap.String("topic", msg.Topic)) m := Msg{ - ID: strconv.FormatInt(msg.Offset, 10), - Stream: msg.Topic, - Key: msg.Key, - Value: msg.Value, + ID: strconv.FormatInt(msg.Offset, 10), + Topic: msg.Topic, + Key: msg.Key, + Value: msg.Value, } if err := onMessage(m); err != nil { From 3cb7c9a86fa691c410c840c4c6f6d1b8532dc318 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 25 Sep 2024 13:32:00 +0800 Subject: [PATCH 341/888] timeline: remove deprecated fields --- generated/proto/go/api/v1/timeline.pb.go | 218 +++++++---------------- proto | 2 +- 2 files changed, 64 insertions(+), 156 deletions(-) diff --git a/generated/proto/go/api/v1/timeline.pb.go b/generated/proto/go/api/v1/timeline.pb.go index 864c35ffd..4dfa208bc 100644 --- a/generated/proto/go/api/v1/timeline.pb.go +++ b/generated/proto/go/api/v1/timeline.pb.go @@ -262,16 +262,8 @@ type Subject struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Image string `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Series bool `protobuf:"varint,6,opt,name=series,proto3" json:"series,omitempty"` + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` VolsTotal uint32 `protobuf:"varint,7,opt,name=vols_total,json=volsTotal,proto3" json:"vols_total,omitempty"` EpsTotal uint32 `protobuf:"varint,8,opt,name=eps_total,json=epsTotal,proto3" json:"eps_total,omitempty"` } @@ -322,38 +314,6 @@ func (x *Subject) GetType() uint32 { return 0 } -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Subject) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Subject) GetNameCn() string { - if x != nil { - return x.NameCn - } - return "" -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Subject) GetImage() string { - if x != nil { - return x.Image - } - return "" -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Subject) GetSeries() bool { - if x != nil { - return x.Series - } - return false -} - func (x *Subject) GetVolsTotal() uint32 { if x != nil { return x.VolsTotal @@ -374,14 +334,6 @@ type Episode struct { unknownFields protoimpl.UnknownFields Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - NameCn string `protobuf:"bytes,4,opt,name=name_cn,json=nameCn,proto3" json:"name_cn,omitempty"` - // Deprecated: Marked as deprecated in api/v1/timeline.proto. - Sort float64 `protobuf:"fixed64,5,opt,name=sort,proto3" json:"sort,omitempty"` } func (x *Episode) Reset() { @@ -423,38 +375,6 @@ func (x *Episode) GetId() uint32 { return 0 } -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Episode) GetType() uint32 { - if x != nil { - return x.Type - } - return 0 -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Episode) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Episode) GetNameCn() string { - if x != nil { - return x.NameCn - } - return "" -} - -// Deprecated: Marked as deprecated in api/v1/timeline.proto. -func (x *Episode) GetSort() float64 { - if x != nil { - return x.Sort - } - return 0 -} - // The request message containing the user's name. type SubjectCollectRequest struct { state protoimpl.MessageState @@ -695,83 +615,71 @@ var file_api_v1_timeline_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x28, 0x0a, 0x16, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd4, 0x01, - 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, - 0x43, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x06, - 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x6f, - 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x70, 0x73, 0x5f, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x70, 0x73, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x7e, 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x16, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x07, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6e, 0x61, 0x6d, 0x65, 0x43, 0x6e, 0x12, 0x16, 0x0a, 0x04, - 0x73, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, - 0x73, 0x6f, 0x72, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, + 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x6f, 0x0a, + 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x70, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x65, 0x70, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x07, 0x22, 0x1f, + 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x06, 0x22, + 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, + 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, - 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x0a, - 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, - 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, - 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x73, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x6c, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, - 0x4c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, - 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x1f, 0x5a, 0x1d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, - 0x6e, 0x67, 0x75, 0x6d, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, + 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, + 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x70, 0x69, 0x73, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x67, 0x75, 0x6d, 0x69, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/proto b/proto index 134977239..7475c4b23 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 134977239d0a241d32ae029076c31b55b070650f +Subproject commit 7475c4b237d2541de47d726ded88560405f17013 From f584afc3558e2e511bacb41cfa458accf3b70ac8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:43:26 +0800 Subject: [PATCH 342/888] ci: update peter-evans/create-pull-request action to v7 (#637) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-openapi.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 6c4ac250e..38c92ba0d 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -26,7 +26,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@v6 + uses: peter-evans/create-pull-request@v7 with: path: api token: ${{ secrets.PAT }} From 240e4036da1b1348a99aacc3e87a997d0b33b486 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:43:35 +0800 Subject: [PATCH 343/888] ci: update dependency ubuntu to v24 (#636) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/release.yaml | 2 +- .github/workflows/test.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 55fb7c2ad..204e4058a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -26,7 +26,7 @@ on: jobs: docker: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 3be3f7eb5..2e25d92f2 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -24,7 +24,7 @@ on: jobs: lint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index b7b5c8bf1..92499f354 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -14,7 +14,7 @@ jobs: docker: name: "docker" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 38c92ba0d..9604a4afc 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -8,7 +8,7 @@ on: jobs: openapi: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index af87e55df..a8d424a6e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,7 +7,7 @@ on: jobs: github: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 46dec39a0..a91f69108 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -24,7 +24,7 @@ on: jobs: test: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env - run: cd ~/dev-env && docker compose up -d From f6f50cb7a421a0d6551470ba6ccc63ee0b9d75fb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:43:46 +0800 Subject: [PATCH 344/888] build(deps): update module github.com/go-resty/resty/v2 to v2.15.3 (#634) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 29 ++--------------------------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/go.mod b/go.mod index 3f8276585..2dec30080 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.22.0 github.com/go-redis/redismock/v9 v9.2.0 - github.com/go-resty/resty/v2 v2.14.0 + github.com/go-resty/resty/v2 v2.15.3 github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index bd3c42303..cef4ddc79 100644 --- a/go.sum +++ b/go.sum @@ -101,8 +101,8 @@ github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4 github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= -github.com/go-resty/resty/v2 v2.14.0 h1:/rhkzsAqGQkozwfKS5aFAbb6TyKd3zyFRWcdRXLPCAU= -github.com/go-resty/resty/v2 v2.14.0/go.mod h1:IW6mekUOsElt9C7oWr0XRt9BNSD6D5rr9mhk6NjmNHg= +github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= +github.com/go-resty/resty/v2 v2.15.3/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= @@ -464,11 +464,7 @@ golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -481,8 +477,6 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -506,10 +500,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -522,9 +513,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -556,23 +544,14 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -581,9 +560,6 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -606,7 +582,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 51e6df6bf349be74f6e211bd37236b1d8dc69892 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:44:01 +0800 Subject: [PATCH 345/888] build(deps): update module gorm.io/plugin/dbresolver to v1.5.3 (#633) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 2dec30080..88ddf0a99 100644 --- a/go.mod +++ b/go.mod @@ -42,8 +42,8 @@ require ( gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 - gorm.io/gorm v1.25.11 - gorm.io/plugin/dbresolver v1.5.2 + gorm.io/gorm v1.25.12 + gorm.io/plugin/dbresolver v1.5.3 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index cef4ddc79..68fe1f95b 100644 --- a/go.sum +++ b/go.sum @@ -647,7 +647,6 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= -gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= @@ -664,12 +663,12 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.11 h1:/Wfyg1B/je1hnDx3sMkX+gAlxrlZpn6X0BXRlwXlvHg= -gorm.io/gorm v1.25.11/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= +gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= +gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.5.2 h1:Iut7lW4TXNoVs++I+ra3zxjSxTRj4ocIeFEVp4lLhII= -gorm.io/plugin/dbresolver v1.5.2/go.mod h1:jPh59GOQbO7v7v28ZKZPd45tr+u3vyT+8tHdfdfOWcU= +gorm.io/plugin/dbresolver v1.5.3 h1:wFwINGZZmttuu9h7XpvbDHd8Lf9bb8GNzp/NpAMV2wU= +gorm.io/plugin/dbresolver v1.5.3/go.mod h1:TSrVhaUg2DZAWP3PrHlDlITEJmNOkL0tFTjvTEsQ4XE= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From f846f5f5ff60e9bf6dd56e6fe8acb822f185b1ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:44:46 +0800 Subject: [PATCH 346/888] chore(deps): update gcr.io/distroless/static docker digest to 69830f2 (#629) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 372fc4140..08b4b7188 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:95eb83a44a62c1c27e5f0b38d26085c486d71ece83dd64540b7209536bb13f6d +FROM gcr.io/distroless/static@sha256:69830f29ed7545c762777507426a412f97dad3d8d32bae3e74ad3fb6160917ea ENTRYPOINT ["/app/chii.exe"] From bddd8675fc5d42c12bb54f5a48f31d88b21ffab0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:45:58 +0800 Subject: [PATCH 347/888] build(deps): update module google.golang.org/grpc to v1.67.0 (#635) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 88ddf0a99..e1cb28e15 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 - google.golang.org/grpc v1.66.1 + google.golang.org/grpc v1.67.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 @@ -80,13 +80,13 @@ require ( go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.27.0 // indirect + golang.org/x/net v0.28.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/text v0.18.0 // indirect golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect gorm.io/datatypes v1.2.0 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 68fe1f95b..b57533f0f 100644 --- a/go.sum +++ b/go.sum @@ -501,8 +501,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -560,6 +560,7 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -596,8 +597,8 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -607,8 +608,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.66.1 h1:hO5qAXR19+/Z44hmvIM4dQFMSYX9XcWsByfoxutBpAM= -google.golang.org/grpc v1.66.1/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From cfb6a17f414e119e2b5186af5a30d23d8c14f23d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:46:08 +0800 Subject: [PATCH 348/888] build(deps): update module github.com/prometheus/client_golang to v1.20.4 (#631) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e1cb28e15..27a0ad8c5 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.28.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.20.3 + github.com/prometheus/client_golang v1.20.4 github.com/redis/go-redis/v9 v9.6.1 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 diff --git a/go.sum b/go.sum index b57533f0f..f69651d80 100644 --- a/go.sum +++ b/go.sum @@ -331,8 +331,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From 51f5e9489bafd84635c9420730c49db18649a4cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:46:13 +0800 Subject: [PATCH 349/888] build(deps): update module github.com/go-playground/validator/v10 to v10.22.1 (#630) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 27a0ad8c5..09b2d1de6 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.22.0 + github.com/go-playground/validator/v10 v10.22.1 github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.15.3 github.com/go-sql-driver/mysql v1.8.1 diff --git a/go.sum b/go.sum index f69651d80..ebf7cfa15 100644 --- a/go.sum +++ b/go.sum @@ -97,8 +97,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.0 h1:k6HsTZ0sTnROkhS//R0O+55JgM8C4Bx7ia+JlgcnOao= -github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= +github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= From 7935a6de422ea6dd7df509407fc1daff580cc0ed Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 1 Oct 2024 13:54:25 +0800 Subject: [PATCH 350/888] feat: return user timezone (#638) --- internal/mocks/UserRepo.go | 57 +++++++++++++++++++++++++++++++ internal/user/domain.go | 3 ++ internal/user/model.go | 12 +++++++ internal/user/mysql_repository.go | 41 ++++++++++++++++++++++ openapi/v0.yaml | 8 ++++- web/handler/user/me.go | 31 ++++++++++++----- web/handler/user/user_test.go | 2 +- 7 files changed, 143 insertions(+), 11 deletions(-) diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index ee0c909d2..cea8aa675 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -385,6 +385,63 @@ func (_c *UserRepo_GetFriends_Call) RunAndReturn(run func(context.Context, uint3 return _c } +// GetFullUser provides a mock function with given fields: ctx, userID +func (_m *UserRepo) GetFullUser(ctx context.Context, userID uint32) (user.FullUser, error) { + ret := _m.Called(ctx, userID) + + if len(ret) == 0 { + panic("no return value specified for GetFullUser") + } + + var r0 user.FullUser + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, uint32) (user.FullUser, error)); ok { + return rf(ctx, userID) + } + if rf, ok := ret.Get(0).(func(context.Context, uint32) user.FullUser); ok { + r0 = rf(ctx, userID) + } else { + r0 = ret.Get(0).(user.FullUser) + } + + if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { + r1 = rf(ctx, userID) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// UserRepo_GetFullUser_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetFullUser' +type UserRepo_GetFullUser_Call struct { + *mock.Call +} + +// GetFullUser is a helper method to define mock.On call +// - ctx context.Context +// - userID uint32 +func (_e *UserRepo_Expecter) GetFullUser(ctx interface{}, userID interface{}) *UserRepo_GetFullUser_Call { + return &UserRepo_GetFullUser_Call{Call: _e.mock.On("GetFullUser", ctx, userID)} +} + +func (_c *UserRepo_GetFullUser_Call) Run(run func(ctx context.Context, userID uint32)) *UserRepo_GetFullUser_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32)) + }) + return _c +} + +func (_c *UserRepo_GetFullUser_Call) Return(_a0 user.FullUser, _a1 error) *UserRepo_GetFullUser_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *UserRepo_GetFullUser_Call) RunAndReturn(run func(context.Context, uint32) (user.FullUser, error)) *UserRepo_GetFullUser_Call { + _c.Call.Return(run) + return _c +} + // NewUserRepo creates a new instance of UserRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. func NewUserRepo(t interface { diff --git a/internal/user/domain.go b/internal/user/domain.go index d547004c0..c34c2fdd6 100644 --- a/internal/user/domain.go +++ b/internal/user/domain.go @@ -21,6 +21,9 @@ import ( ) type Repo interface { + // GetFullUser find a user by uid. + GetFullUser(ctx context.Context, userID model.UserID) (FullUser, error) + // GetByID find a user by uid. GetByID(ctx context.Context, userID model.UserID) (User, error) // GetByName find a user by username. diff --git a/internal/user/model.go b/internal/user/model.go index fc79bece2..d550b7df2 100644 --- a/internal/user/model.go +++ b/internal/user/model.go @@ -22,6 +22,18 @@ import ( "github.com/bangumi/server/internal/model" ) +// FullUser is for current user or admin only. +type FullUser struct { + RegistrationTime time.Time + NickName string + Avatar string + Sign string + UserName string + ID model.UserID + UserGroup GroupID + TimeOffset int8 +} + type GroupID = uint8 // User is visible for everyone. diff --git a/internal/user/mysql_repository.go b/internal/user/mysql_repository.go index d288f6504..3cd7b960d 100644 --- a/internal/user/mysql_repository.go +++ b/internal/user/mysql_repository.go @@ -17,6 +17,7 @@ package user import ( "context" "errors" + "strconv" "time" "github.com/trim21/errgo" @@ -40,6 +41,46 @@ type mysqlRepo struct { log *zap.Logger } +func (m mysqlRepo) GetFullUser(ctx context.Context, userID model.UserID) (FullUser, error) { + u, err := m.q.Member.WithContext(ctx).Where(m.q.Member.ID.Eq(userID)).Take() + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return FullUser{}, gerr.ErrUserNotFound + } + + m.log.Error("unexpected error happened", zap.Error(err)) + return FullUser{}, errgo.Wrap(err, "dal") + } + + return FullUser{ + UserName: u.Username, + NickName: u.Nickname, + UserGroup: u.Groupid, + Avatar: u.Avatar, + Sign: string(u.Sign), + ID: u.ID, + RegistrationTime: time.Unix(u.Regdate, 0), + TimeOffset: parseTimeOffset(u.Timeoffset), + }, nil +} + +// default time zone GMT+8. +const defaultTimeOffset = 8 + +func parseTimeOffset(s string) int8 { + switch s { + case "", "9999": + return defaultTimeOffset + } + + v, err := strconv.ParseInt(s, 10, 8) + if err != nil { + return defaultTimeOffset + } + + return int8(v) +} + func (m mysqlRepo) GetByID(ctx context.Context, userID model.UserID) (User, error) { u, err := m.q.Member.WithContext(ctx).Where(m.q.Member.ID.Eq(userID)).Take() if err != nil { diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 76cb82d6f..13848f4ce 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -982,7 +982,13 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/User" + allOf: + - "$ref": "#/components/schemas/User" + - type: object + properties: + time_offset: + description: "用户设置的时区偏移,以小时为单位。比如 GMT+8(shanghai/beijing)为 8" + type: integer "403": description: unauthorized content: diff --git a/web/handler/user/me.go b/web/handler/user/me.go index b0c48d45f..d2482c903 100644 --- a/web/handler/user/me.go +++ b/web/handler/user/me.go @@ -20,28 +20,41 @@ import ( "github.com/labstack/echo/v4" "github.com/trim21/errgo" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/res" ) +type CurrentUser struct { + Avatar res.Avatar `json:"avatar"` + Sign string `json:"sign"` + URL string `json:"url"` + Username string `json:"username"` + Nickname string `json:"nickname"` + ID model.UserID `json:"id"` + UserGroup uint8 `json:"user_group"` + TimeOffset int8 `json:"time_offset"` +} + func (h User) GetCurrent(c echo.Context) error { u := accessor.GetFromCtx(c) if !u.Login || u.ID == 0 { return res.Unauthorized("need Login") } - user, err := h.user.GetByID(c.Request().Context(), u.ID) + user, err := h.user.GetFullUser(c.Request().Context(), u.ID) if err != nil { return errgo.Wrap(err, "failed to get user") } - return c.JSON(http.StatusOK, res.User{ - ID: user.ID, - URL: "https://bgm.tv/user/" + user.UserName, - Username: user.UserName, - Nickname: user.NickName, - UserGroup: user.UserGroup, - Avatar: res.UserAvatar(user.Avatar), - Sign: user.Sign, + return c.JSON(http.StatusOK, CurrentUser{ + ID: user.ID, + URL: "https://bgm.tv/user/" + user.UserName, + Username: user.UserName, + Nickname: user.NickName, + UserGroup: user.UserGroup, + Avatar: res.UserAvatar(user.Avatar), + Sign: user.Sign, + TimeOffset: user.TimeOffset, }) } diff --git a/web/handler/user/user_test.go b/web/handler/user/user_test.go index 31a8d8a7f..87fdc7122 100644 --- a/web/handler/user/user_test.go +++ b/web/handler/user/user_test.go @@ -36,7 +36,7 @@ func TestUser_Get(t *testing.T) { const uid model.UserID = 7 u := mocks.NewUserRepo(t) - u.EXPECT().GetByID(mock.Anything, uid).Return(user.User{ID: uid}, nil) + u.EXPECT().GetFullUser(mock.Anything, uid).Return(user.FullUser{ID: uid}, nil) a := mocks.NewAuthRepo(t) a.EXPECT().GetByToken(mock.Anything, "token").Return(auth.UserInfo{ID: uid}, nil) From ce10030231aaa47e057d213f286ea2ddcb42c739 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 1 Oct 2024 13:54:44 +0800 Subject: [PATCH 351/888] bump: 0.34.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 40ca6472a..859cecfca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chii", - "version": "0.33.19", + "version": "0.34.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "chii", - "version": "0.33.19", + "version": "0.34.0", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.7.0", "js-yaml": "^4.1.0", diff --git a/package.json b/package.json index 2848db844..710d89354 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "chii", - "version": "0.33.19", + "version": "0.34.0", "description": "tools to bundle openapi spec, not used in our server", "private": true, "scripts": { From 5d9de80060415ad84230890dc4413ae4ca7fa01a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:57:30 +0800 Subject: [PATCH 352/888] build(deps): update module google.golang.org/grpc to v1.67.1 (#639) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 09b2d1de6..e2a17663e 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 - google.golang.org/grpc v1.67.0 + google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index ebf7cfa15..e4d505731 100644 --- a/go.sum +++ b/go.sum @@ -608,8 +608,8 @@ google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= -google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= From 3782f98f6d4c535e332b6ffe613cb167964da789 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 1 Oct 2024 13:58:06 +0800 Subject: [PATCH 353/888] chore: re-generate code --- generated/proto/go/api/v1/timeline.pb.go | 24 ++++++------ generated/proto/go/api/v1/timeline_grpc.pb.go | 37 +++++++++++++------ 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/generated/proto/go/api/v1/timeline.pb.go b/generated/proto/go/api/v1/timeline.pb.go index 4dfa208bc..de176aca5 100644 --- a/generated/proto/go/api/v1/timeline.pb.go +++ b/generated/proto/go/api/v1/timeline.pb.go @@ -2,7 +2,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc (unknown) // source: api/v1/timeline.proto @@ -695,7 +695,7 @@ func file_api_v1_timeline_proto_rawDescGZIP() []byte { } var file_api_v1_timeline_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_api_v1_timeline_proto_goTypes = []interface{}{ +var file_api_v1_timeline_proto_goTypes = []any{ (*HelloRequest)(nil), // 0: api.v1.HelloRequest (*HelloResponse)(nil), // 1: api.v1.HelloResponse (*SubjectCollectResponse)(nil), // 2: api.v1.SubjectCollectResponse @@ -733,7 +733,7 @@ func file_api_v1_timeline_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_api_v1_timeline_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*HelloRequest); i { case 0: return &v.state @@ -745,7 +745,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*HelloResponse); i { case 0: return &v.state @@ -757,7 +757,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*SubjectCollectResponse); i { case 0: return &v.state @@ -769,7 +769,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*SubjectProgressResponse); i { case 0: return &v.state @@ -781,7 +781,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*EpisodeCollectResponse); i { case 0: return &v.state @@ -793,7 +793,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*Subject); i { case 0: return &v.state @@ -805,7 +805,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*Episode); i { case 0: return &v.state @@ -817,7 +817,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*SubjectCollectRequest); i { case 0: return &v.state @@ -829,7 +829,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*EpisodeCollectRequest); i { case 0: return &v.state @@ -841,7 +841,7 @@ func file_api_v1_timeline_proto_init() { return nil } } - file_api_v1_timeline_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_api_v1_timeline_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*SubjectProgressRequest); i { case 0: return &v.state diff --git a/generated/proto/go/api/v1/timeline_grpc.pb.go b/generated/proto/go/api/v1/timeline_grpc.pb.go index e41f6a4fa..1ad4df8cd 100644 --- a/generated/proto/go/api/v1/timeline_grpc.pb.go +++ b/generated/proto/go/api/v1/timeline_grpc.pb.go @@ -2,7 +2,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc (unknown) // source: api/v1/timeline.proto @@ -17,8 +17,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( TimeLineService_Hello_FullMethodName = "/api.v1.TimeLineService/Hello" @@ -47,8 +47,9 @@ func NewTimeLineServiceClient(cc grpc.ClientConnInterface) TimeLineServiceClient } func (c *timeLineServiceClient) Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelloResponse) - err := c.cc.Invoke(ctx, TimeLineService_Hello_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, TimeLineService_Hello_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -56,8 +57,9 @@ func (c *timeLineServiceClient) Hello(ctx context.Context, in *HelloRequest, opt } func (c *timeLineServiceClient) SubjectCollect(ctx context.Context, in *SubjectCollectRequest, opts ...grpc.CallOption) (*SubjectCollectResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SubjectCollectResponse) - err := c.cc.Invoke(ctx, TimeLineService_SubjectCollect_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, TimeLineService_SubjectCollect_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -65,8 +67,9 @@ func (c *timeLineServiceClient) SubjectCollect(ctx context.Context, in *SubjectC } func (c *timeLineServiceClient) SubjectProgress(ctx context.Context, in *SubjectProgressRequest, opts ...grpc.CallOption) (*SubjectProgressResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SubjectProgressResponse) - err := c.cc.Invoke(ctx, TimeLineService_SubjectProgress_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, TimeLineService_SubjectProgress_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -74,8 +77,9 @@ func (c *timeLineServiceClient) SubjectProgress(ctx context.Context, in *Subject } func (c *timeLineServiceClient) EpisodeCollect(ctx context.Context, in *EpisodeCollectRequest, opts ...grpc.CallOption) (*EpisodeCollectResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(EpisodeCollectResponse) - err := c.cc.Invoke(ctx, TimeLineService_EpisodeCollect_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, TimeLineService_EpisodeCollect_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -84,7 +88,7 @@ func (c *timeLineServiceClient) EpisodeCollect(ctx context.Context, in *EpisodeC // TimeLineServiceServer is the server API for TimeLineService service. // All implementations must embed UnimplementedTimeLineServiceServer -// for forward compatibility +// for forward compatibility. type TimeLineServiceServer interface { // Debug function Hello(context.Context, *HelloRequest) (*HelloResponse, error) @@ -94,9 +98,12 @@ type TimeLineServiceServer interface { mustEmbedUnimplementedTimeLineServiceServer() } -// UnimplementedTimeLineServiceServer must be embedded to have forward compatible implementations. -type UnimplementedTimeLineServiceServer struct { -} +// UnimplementedTimeLineServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedTimeLineServiceServer struct{} func (UnimplementedTimeLineServiceServer) Hello(context.Context, *HelloRequest) (*HelloResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") @@ -111,6 +118,7 @@ func (UnimplementedTimeLineServiceServer) EpisodeCollect(context.Context, *Episo return nil, status.Errorf(codes.Unimplemented, "method EpisodeCollect not implemented") } func (UnimplementedTimeLineServiceServer) mustEmbedUnimplementedTimeLineServiceServer() {} +func (UnimplementedTimeLineServiceServer) testEmbeddedByValue() {} // UnsafeTimeLineServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to TimeLineServiceServer will @@ -120,6 +128,13 @@ type UnsafeTimeLineServiceServer interface { } func RegisterTimeLineServiceServer(s grpc.ServiceRegistrar, srv TimeLineServiceServer) { + // If the following call pancis, it indicates UnimplementedTimeLineServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&TimeLineService_ServiceDesc, srv) } From 98bf0e165b9eb8eee88dd947f6c3a7df3363985f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 01:03:23 +0800 Subject: [PATCH 354/888] fix: subject collection tags (#640) --- .golangci.yaml | 1 - cmd/archive/main.go | 2 +- cmd/gen/gorm/main.go | 41 ++ dal/dao/chii_members.gen.go | 6 +- dal/dao/chii_subject_relations.gen.go | 2 +- dal/dao/chii_subject_revisions.gen.go | 31 +- dal/dao/chii_subjects.gen.go | 53 +-- dal/dao/chii_tag_neue_index.gen.go | 23 + dal/dao/chii_tag_neue_list.gen.go | 23 + dal/query/chii_members.gen.go | 24 +- dal/query/chii_subject_relations.gen.go | 6 +- dal/query/chii_subject_revisions.gen.go | 38 +- dal/query/chii_subjects.gen.go | 60 +-- dal/query/chii_tag_neue_index.gen.go | 351 +++++++++++++++ dal/query/chii_tag_neue_list.gen.go | 425 ++++++++++++++++++ dal/query/export_db.go | 23 + dal/query/gen.go | 12 + internal/collections/infra/mysql_repo.go | 264 +++++++---- internal/collections/infra/mysql_repo_test.go | 31 +- internal/model/tag.go | 21 + 20 files changed, 1232 insertions(+), 205 deletions(-) create mode 100644 dal/dao/chii_tag_neue_index.gen.go create mode 100644 dal/dao/chii_tag_neue_list.gen.go create mode 100644 dal/query/chii_tag_neue_index.gen.go create mode 100644 dal/query/chii_tag_neue_list.gen.go create mode 100644 dal/query/export_db.go create mode 100644 internal/model/tag.go diff --git a/.golangci.yaml b/.golangci.yaml index 12d004952..dcb38b1d1 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -250,7 +250,6 @@ linters: - gocritic - gocyclo - godot - - goerr113 - gofmt - gomnd - gomoddirectives diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 782ff3a9b..b60cda329 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -443,7 +443,7 @@ type SubjectRelation struct { SubjectID model.SubjectID `json:"subject_id"` RelationType uint16 `json:"relation_type"` RelatedSubjectID model.SubjectID `json:"related_subject_id"` - Order uint8 `json:"order"` + Order uint16 `json:"order"` } func exportSubjectRelations(q *query.Query, w io.Writer) { diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index d41412b05..5477fbea3 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -55,6 +55,7 @@ func DeprecatedFiled(s string) gen.ModelOpt { } const createdTime = "CreatedTime" +const updateTime = "UpdatedTime" // generate code. func main() { @@ -159,10 +160,33 @@ func main() { modelField := g.GenerateModelAs("chii_memberfields", "MemberField", gen.FieldType("uid", userIDTypeString), gen.FieldType("privacy", "[]byte"), + gen.FieldIgnore("index_sort"), + gen.FieldIgnore("user_agent"), + gen.FieldIgnore("ignorepm"), + gen.FieldIgnore("groupterms"), + gen.FieldIgnore("authstr"), + gen.FieldIgnoreReg("^(homepage|reg_source|invite_num|email_verified|reset_password_dateline|reset_password_token)$"), + gen.FieldIgnoreReg("^(reset_password_force|email_verify_dateline|email_verify_token|email_verify_score)$"), ) modelMember := g.GenerateModelAs("chii_members", "Member", gen.FieldRename("uid", "ID"), + // gen.FieldIgnore("password_crypt"), + gen.FieldIgnore("secques"), + gen.FieldIgnore("gender"), + gen.FieldIgnore("adminid"), + gen.FieldIgnore("regip"), + gen.FieldIgnore("lastip"), + + // gen.FieldIgnore("email"), + gen.FieldIgnore("bday"), + gen.FieldIgnore("styleid"), + gen.FieldIgnore("newsletter"), + gen.FieldIgnore("ukagaka_settings"), + gen.FieldIgnore("username_lock"), + gen.FieldIgnore("invited"), + gen.FieldIgnore("img_chart"), + gen.FieldType("uid", userIDTypeString), gen.FieldType("sign", "utiltype.HTMLEscapedString"), gen.FieldType("regdate", "int64"), @@ -499,6 +523,23 @@ func main() { gen.FieldRename("msg_rdeleted", "DeletedByReceiver"), )) + modelTagIndex := g.GenerateModelAs("chii_tag_neue_index", "TagIndex", + gen.FieldTrimPrefix("tag_"), + gen.FieldRename("tag_dateline", createdTime), + gen.FieldRename("tag_lasttouch", updateTime), + ) + + g.ApplyBasic(modelTagIndex) + + g.ApplyBasic(g.GenerateModelAs("chii_tag_neue_list", "TagList", + gen.FieldTrimPrefix("tlt_"), + gen.FieldRename("tlt_dateline", createdTime), + + gen.FieldRelate(field.HasOne, "Tag", modelTagIndex, &field.RelateConfig{ + GORMTag: field.GormTag{"foreignKey": []string{"tag_id"}, "references": []string{"tlt_tid"}}, + }), + )) + // execute the action of code generation g.Execute() } diff --git a/dal/dao/chii_members.gen.go b/dal/dao/chii_members.gen.go index b5cdebd31..56748c034 100644 --- a/dal/dao/chii_members.gen.go +++ b/dal/dao/chii_members.gen.go @@ -15,21 +15,21 @@ type Member struct { ID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` Username string `gorm:"column:username;type:char(15);not null" json:""` Nickname string `gorm:"column:nickname;type:varchar(30);not null" json:""` + PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null" json:""` Avatar string `gorm:"column:avatar;type:varchar(255);not null" json:""` Groupid uint8 `gorm:"column:groupid;type:smallint(6) unsigned;not null" json:""` Regdate int64 `gorm:"column:regdate;type:int(10) unsigned;not null" json:""` Lastvisit uint32 `gorm:"column:lastvisit;type:int(10) unsigned;not null" json:""` Lastactivity uint32 `gorm:"column:lastactivity;type:int(10) unsigned;not null" json:""` Lastpost uint32 `gorm:"column:lastpost;type:int(10) unsigned;not null" json:""` + Email string `gorm:"column:email;type:char(50);not null" json:""` Dateformat string `gorm:"column:dateformat;type:char(10);not null" json:""` Timeformat bool `gorm:"column:timeformat;type:tinyint(1);not null" json:""` Timeoffset string `gorm:"column:timeoffset;type:char(4);not null" json:""` Newpm bool `gorm:"column:newpm;type:tinyint(1);not null" json:""` NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null;comment:新提醒" json:""` // 新提醒 - Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null" json:""` - PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null" json:""` - Email string `gorm:"column:email;type:char(50);not null" json:""` Acl string `gorm:"column:acl;type:mediumtext;not null" json:""` + Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null" json:""` Fields MemberField `gorm:"foreignKey:uid;references:uid" json:"fields"` } diff --git a/dal/dao/chii_subject_relations.gen.go b/dal/dao/chii_subject_relations.gen.go index dd09b6c40..08628db94 100644 --- a/dal/dao/chii_subject_relations.gen.go +++ b/dal/dao/chii_subject_relations.gen.go @@ -14,7 +14,7 @@ type SubjectRelation struct { RelatedSubjectID uint32 `gorm:"column:rlt_related_subject_id;type:mediumint(8) unsigned;primaryKey;comment:关联目标 ID" json:""` // 关联目标 ID RelatedSubjectTypeID uint8 `gorm:"column:rlt_related_subject_type_id;type:tinyint(3) unsigned;not null;comment:关联目标类型" json:""` // 关联目标类型 ViceVersa bool `gorm:"column:rlt_vice_versa;type:tinyint(1) unsigned;primaryKey" json:""` - Order uint8 `gorm:"column:rlt_order;type:tinyint(3) unsigned;not null;comment:关联排序" json:""` // 关联排序 + Order uint16 `gorm:"column:rlt_order;type:smallint(6) unsigned;not null;comment:关联排序" json:""` // 关联排序 Subject Subject `gorm:"foreignKey:rlt_related_subject_id;references:subject_id" json:"subject"` } diff --git a/dal/dao/chii_subject_revisions.gen.go b/dal/dao/chii_subject_revisions.gen.go index 8c1ad4d55..57360bb8f 100644 --- a/dal/dao/chii_subject_revisions.gen.go +++ b/dal/dao/chii_subject_revisions.gen.go @@ -8,21 +8,22 @@ const TableNameSubjectRevision = "chii_subject_revisions" // SubjectRevision mapped from table type SubjectRevision struct { - ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` - Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1;comment:修订类型" json:""` // 修订类型 - SubjectID uint32 `gorm:"column:rev_subject_id;type:mediumint(8) unsigned;not null" json:""` - TypeID uint16 `gorm:"column:rev_type_id;type:smallint(6) unsigned;not null" json:""` - CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null" json:""` - Dateline uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null" json:""` - Name string `gorm:"column:rev_name;type:varchar(80);not null" json:""` - NameCN string `gorm:"column:rev_name_cn;type:varchar(80);not null" json:""` - FieldInfobox string `gorm:"column:rev_field_infobox;type:mediumtext;not null" json:""` - FieldSummary string `gorm:"column:rev_field_summary;type:mediumtext;not null" json:""` - VoteField string `gorm:"column:rev_vote_field;type:mediumtext;not null" json:""` - FieldEps uint32 `gorm:"column:rev_field_eps;type:mediumint(8) unsigned;not null" json:""` - EditSummary string `gorm:"column:rev_edit_summary;type:varchar(200);not null" json:""` - Platform uint16 `gorm:"column:rev_platform;type:smallint(6) unsigned;not null" json:""` - Subject Subject `gorm:"foreignKey:rev_subject_id;references:subject_id" json:"subject"` + ID uint32 `gorm:"column:rev_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Type uint8 `gorm:"column:rev_type;type:tinyint(3) unsigned;not null;default:1;comment:修订类型" json:""` // 修订类型 + SubjectID uint32 `gorm:"column:rev_subject_id;type:mediumint(8) unsigned;not null" json:""` + TypeID uint16 `gorm:"column:rev_type_id;type:smallint(6) unsigned;not null" json:""` + CreatorID uint32 `gorm:"column:rev_creator;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:rev_dateline;type:int(10) unsigned;not null" json:""` + Name string `gorm:"column:rev_name;type:varchar(80);not null" json:""` + NameCN string `gorm:"column:rev_name_cn;type:varchar(80);not null" json:""` + FieldInfobox string `gorm:"column:rev_field_infobox;type:mediumtext;not null" json:""` + FieldMetaTags string `gorm:"column:rev_field_meta_tags;type:mediumtext;not null" json:""` + FieldSummary string `gorm:"column:rev_field_summary;type:mediumtext;not null" json:""` + VoteField string `gorm:"column:rev_vote_field;type:mediumtext;not null" json:""` + FieldEps uint32 `gorm:"column:rev_field_eps;type:mediumint(8) unsigned;not null" json:""` + EditSummary string `gorm:"column:rev_edit_summary;type:varchar(200);not null" json:""` + Platform uint16 `gorm:"column:rev_platform;type:smallint(6) unsigned;not null" json:""` + Subject Subject `gorm:"foreignKey:rev_subject_id;references:subject_id" json:"subject"` } // TableName SubjectRevision's table name diff --git a/dal/dao/chii_subjects.gen.go b/dal/dao/chii_subjects.gen.go index d7bba616b..f345bd642 100644 --- a/dal/dao/chii_subjects.gen.go +++ b/dal/dao/chii_subjects.gen.go @@ -12,32 +12,33 @@ const TableNameSubject = "chii_subjects" // Subject mapped from table type Subject struct { - ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` - TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null" json:""` - Name utiltype.HTMLEscapedString `gorm:"column:subject_name;type:varchar(80);not null" json:""` - NameCN utiltype.HTMLEscapedString `gorm:"column:subject_name_cn;type:varchar(80);not null" json:""` - UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb" json:""` // isbn / imdb - Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null" json:""` - Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null" json:""` - Image string `gorm:"column:subject_image;type:varchar(255);not null" json:""` - Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null" json:""` - Infobox utiltype.HTMLEscapedString `gorm:"column:field_infobox;type:mediumtext;not null" json:""` - Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary" json:""` // summary - Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary" json:""` // author summary - Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 - Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null" json:""` - Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null" json:""` - Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null" json:""` - Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null" json:""` - OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数" json:""` // 搁置人数 - Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数" json:""` // 抛弃人数 - Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null" json:""` - SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null" json:""` - IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null" json:""` - Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null" json:""` - Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null" json:""` - Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null" json:""` - Fields SubjectField `gorm:"foreignKey:subject_id;references:field_sid" json:"fields"` + ID uint32 `gorm:"column:subject_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + TypeID uint8 `gorm:"column:subject_type_id;type:smallint(6) unsigned;not null" json:""` + Name utiltype.HTMLEscapedString `gorm:"column:subject_name;type:varchar(512);not null" json:""` + NameCN utiltype.HTMLEscapedString `gorm:"column:subject_name_cn;type:varchar(512);not null" json:""` + UID string `gorm:"column:subject_uid;type:varchar(20);not null;comment:isbn / imdb" json:""` // isbn / imdb + Creator uint32 `gorm:"column:subject_creator;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:subject_dateline;type:int(10) unsigned;not null" json:""` + Image string `gorm:"column:subject_image;type:varchar(255);not null" json:""` + Platform uint16 `gorm:"column:subject_platform;type:smallint(6) unsigned;not null" json:""` + Infobox utiltype.HTMLEscapedString `gorm:"column:field_infobox;type:mediumtext;not null" json:""` + FieldMetaTags string `gorm:"column:field_meta_tags;type:mediumtext;not null" json:""` + Summary string `gorm:"column:field_summary;type:mediumtext;not null;comment:summary" json:""` // summary + Field5 string `gorm:"column:field_5;type:mediumtext;not null;comment:author summary" json:""` // author summary + Volumes uint32 `gorm:"column:field_volumes;type:mediumint(8) unsigned;not null;comment:卷数" json:""` // 卷数 + Eps uint32 `gorm:"column:field_eps;type:mediumint(8) unsigned;not null" json:""` + Wish uint32 `gorm:"column:subject_wish;type:mediumint(8) unsigned;not null" json:""` + Done uint32 `gorm:"column:subject_collect;type:mediumint(8) unsigned;not null" json:""` + Doing uint32 `gorm:"column:subject_doing;type:mediumint(8) unsigned;not null" json:""` + OnHold uint32 `gorm:"column:subject_on_hold;type:mediumint(8) unsigned;not null;comment:搁置人数" json:""` // 搁置人数 + Dropped uint32 `gorm:"column:subject_dropped;type:mediumint(8) unsigned;not null;comment:抛弃人数" json:""` // 抛弃人数 + Series bool `gorm:"column:subject_series;type:tinyint(1) unsigned;not null" json:""` + SeriesEntry uint32 `gorm:"column:subject_series_entry;type:mediumint(8) unsigned;not null" json:""` + IdxCn string `gorm:"column:subject_idx_cn;type:varchar(1);not null" json:""` + Airtime uint8 `gorm:"column:subject_airtime;type:tinyint(1) unsigned;not null" json:""` + Nsfw bool `gorm:"column:subject_nsfw;type:tinyint(1);not null" json:""` + Ban uint8 `gorm:"column:subject_ban;type:tinyint(1) unsigned;not null" json:""` + Fields SubjectField `gorm:"foreignKey:subject_id;references:field_sid" json:"fields"` } // TableName Subject's table name diff --git a/dal/dao/chii_tag_neue_index.gen.go b/dal/dao/chii_tag_neue_index.gen.go new file mode 100644 index 000000000..bd14964d5 --- /dev/null +++ b/dal/dao/chii_tag_neue_index.gen.go @@ -0,0 +1,23 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package dao + +const TableNameTagIndex = "chii_tag_neue_index" + +// TagIndex mapped from table +type TagIndex struct { + ID uint32 `gorm:"column:tag_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name string `gorm:"column:tag_name;type:varchar(30);not null" json:""` + Cat int8 `gorm:"column:tag_cat;type:tinyint(3);not null;comment:0=条目 1=日志 2=天窗" json:""` // 0=条目 1=日志 2=天窗 + Type int8 `gorm:"column:tag_type;type:tinyint(3);not null" json:""` + Results uint32 `gorm:"column:tag_results;type:mediumint(8) unsigned;not null" json:""` + CreatedTime uint32 `gorm:"column:tag_dateline;type:int(10) unsigned;not null" json:""` + UpdatedTime uint32 `gorm:"column:tag_lasttouch;type:int(10) unsigned;not null" json:""` +} + +// TableName TagIndex's table name +func (*TagIndex) TableName() string { + return TableNameTagIndex +} diff --git a/dal/dao/chii_tag_neue_list.gen.go b/dal/dao/chii_tag_neue_list.gen.go new file mode 100644 index 000000000..7b6499b7b --- /dev/null +++ b/dal/dao/chii_tag_neue_list.gen.go @@ -0,0 +1,23 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package dao + +const TableNameTagList = "chii_tag_neue_list" + +// TagList mapped from table +type TagList struct { + Tid uint32 `gorm:"column:tlt_tid;type:mediumint(8) unsigned;not null" json:""` + UID uint32 `gorm:"column:tlt_uid;type:mediumint(8) unsigned;not null" json:""` + Cat uint8 `gorm:"column:tlt_cat;type:tinyint(3) unsigned;not null" json:""` + Type uint8 `gorm:"column:tlt_type;type:tinyint(3) unsigned;not null" json:""` + Mid uint32 `gorm:"column:tlt_mid;type:mediumint(8) unsigned;not null" json:""` + CreatedTime uint32 `gorm:"column:tlt_dateline;type:int(10) unsigned;not null" json:""` + Tag TagIndex `gorm:"foreignKey:tag_id;references:tlt_tid" json:"tag"` +} + +// TableName TagList's table name +func (*TagList) TableName() string { + return TableNameTagList +} diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index 23de42ee5..525531682 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -30,21 +30,21 @@ func newMember(db *gorm.DB, opts ...gen.DOOption) member { _member.ID = field.NewUint32(tableName, "uid") _member.Username = field.NewString(tableName, "username") _member.Nickname = field.NewString(tableName, "nickname") + _member.PasswordCrypt = field.NewBytes(tableName, "password_crypt") _member.Avatar = field.NewString(tableName, "avatar") _member.Groupid = field.NewUint8(tableName, "groupid") _member.Regdate = field.NewInt64(tableName, "regdate") _member.Lastvisit = field.NewUint32(tableName, "lastvisit") _member.Lastactivity = field.NewUint32(tableName, "lastactivity") _member.Lastpost = field.NewUint32(tableName, "lastpost") + _member.Email = field.NewString(tableName, "email") _member.Dateformat = field.NewString(tableName, "dateformat") _member.Timeformat = field.NewBool(tableName, "timeformat") _member.Timeoffset = field.NewString(tableName, "timeoffset") _member.Newpm = field.NewBool(tableName, "newpm") _member.NewNotify = field.NewUint16(tableName, "new_notify") - _member.Sign = field.NewField(tableName, "sign") - _member.PasswordCrypt = field.NewBytes(tableName, "password_crypt") - _member.Email = field.NewString(tableName, "email") _member.Acl = field.NewString(tableName, "acl") + _member.Sign = field.NewField(tableName, "sign") _member.Fields = memberHasOneFields{ db: db.Session(&gorm.Session{}), @@ -63,21 +63,21 @@ type member struct { ID field.Uint32 Username field.String Nickname field.String + PasswordCrypt field.Bytes Avatar field.String Groupid field.Uint8 Regdate field.Int64 Lastvisit field.Uint32 Lastactivity field.Uint32 Lastpost field.Uint32 + Email field.String Dateformat field.String Timeformat field.Bool Timeoffset field.String Newpm field.Bool NewNotify field.Uint16 // 新提醒 - Sign field.Field - PasswordCrypt field.Bytes - Email field.String Acl field.String + Sign field.Field Fields memberHasOneFields fieldMap map[string]field.Expr @@ -98,21 +98,21 @@ func (m *member) updateTableName(table string) *member { m.ID = field.NewUint32(table, "uid") m.Username = field.NewString(table, "username") m.Nickname = field.NewString(table, "nickname") + m.PasswordCrypt = field.NewBytes(table, "password_crypt") m.Avatar = field.NewString(table, "avatar") m.Groupid = field.NewUint8(table, "groupid") m.Regdate = field.NewInt64(table, "regdate") m.Lastvisit = field.NewUint32(table, "lastvisit") m.Lastactivity = field.NewUint32(table, "lastactivity") m.Lastpost = field.NewUint32(table, "lastpost") + m.Email = field.NewString(table, "email") m.Dateformat = field.NewString(table, "dateformat") m.Timeformat = field.NewBool(table, "timeformat") m.Timeoffset = field.NewString(table, "timeoffset") m.Newpm = field.NewBool(table, "newpm") m.NewNotify = field.NewUint16(table, "new_notify") - m.Sign = field.NewField(table, "sign") - m.PasswordCrypt = field.NewBytes(table, "password_crypt") - m.Email = field.NewString(table, "email") m.Acl = field.NewString(table, "acl") + m.Sign = field.NewField(table, "sign") m.fillFieldMap() @@ -141,21 +141,21 @@ func (m *member) fillFieldMap() { m.fieldMap["uid"] = m.ID m.fieldMap["username"] = m.Username m.fieldMap["nickname"] = m.Nickname + m.fieldMap["password_crypt"] = m.PasswordCrypt m.fieldMap["avatar"] = m.Avatar m.fieldMap["groupid"] = m.Groupid m.fieldMap["regdate"] = m.Regdate m.fieldMap["lastvisit"] = m.Lastvisit m.fieldMap["lastactivity"] = m.Lastactivity m.fieldMap["lastpost"] = m.Lastpost + m.fieldMap["email"] = m.Email m.fieldMap["dateformat"] = m.Dateformat m.fieldMap["timeformat"] = m.Timeformat m.fieldMap["timeoffset"] = m.Timeoffset m.fieldMap["newpm"] = m.Newpm m.fieldMap["new_notify"] = m.NewNotify - m.fieldMap["sign"] = m.Sign - m.fieldMap["password_crypt"] = m.PasswordCrypt - m.fieldMap["email"] = m.Email m.fieldMap["acl"] = m.Acl + m.fieldMap["sign"] = m.Sign } diff --git a/dal/query/chii_subject_relations.gen.go b/dal/query/chii_subject_relations.gen.go index 01f786f63..06591e68c 100644 --- a/dal/query/chii_subject_relations.gen.go +++ b/dal/query/chii_subject_relations.gen.go @@ -33,7 +33,7 @@ func newSubjectRelation(db *gorm.DB, opts ...gen.DOOption) subjectRelation { _subjectRelation.RelatedSubjectID = field.NewUint32(tableName, "rlt_related_subject_id") _subjectRelation.RelatedSubjectTypeID = field.NewUint8(tableName, "rlt_related_subject_type_id") _subjectRelation.ViceVersa = field.NewBool(tableName, "rlt_vice_versa") - _subjectRelation.Order = field.NewUint8(tableName, "rlt_order") + _subjectRelation.Order = field.NewUint16(tableName, "rlt_order") _subjectRelation.Subject = subjectRelationHasOneSubject{ db: db.Session(&gorm.Session{}), @@ -61,7 +61,7 @@ type subjectRelation struct { RelatedSubjectID field.Uint32 // 关联目标 ID RelatedSubjectTypeID field.Uint8 // 关联目标类型 ViceVersa field.Bool - Order field.Uint8 // 关联排序 + Order field.Uint16 // 关联排序 Subject subjectRelationHasOneSubject fieldMap map[string]field.Expr @@ -85,7 +85,7 @@ func (s *subjectRelation) updateTableName(table string) *subjectRelation { s.RelatedSubjectID = field.NewUint32(table, "rlt_related_subject_id") s.RelatedSubjectTypeID = field.NewUint8(table, "rlt_related_subject_type_id") s.ViceVersa = field.NewBool(table, "rlt_vice_versa") - s.Order = field.NewUint8(table, "rlt_order") + s.Order = field.NewUint16(table, "rlt_order") s.fillFieldMap() diff --git a/dal/query/chii_subject_revisions.gen.go b/dal/query/chii_subject_revisions.gen.go index 0d50fdc81..93c7f4927 100644 --- a/dal/query/chii_subject_revisions.gen.go +++ b/dal/query/chii_subject_revisions.gen.go @@ -36,6 +36,7 @@ func newSubjectRevision(db *gorm.DB, opts ...gen.DOOption) subjectRevision { _subjectRevision.Name = field.NewString(tableName, "rev_name") _subjectRevision.NameCN = field.NewString(tableName, "rev_name_cn") _subjectRevision.FieldInfobox = field.NewString(tableName, "rev_field_infobox") + _subjectRevision.FieldMetaTags = field.NewString(tableName, "rev_field_meta_tags") _subjectRevision.FieldSummary = field.NewString(tableName, "rev_field_summary") _subjectRevision.VoteField = field.NewString(tableName, "rev_vote_field") _subjectRevision.FieldEps = field.NewUint32(tableName, "rev_field_eps") @@ -60,22 +61,23 @@ func newSubjectRevision(db *gorm.DB, opts ...gen.DOOption) subjectRevision { type subjectRevision struct { subjectRevisionDo subjectRevisionDo - ALL field.Asterisk - ID field.Uint32 - Type field.Uint8 // 修订类型 - SubjectID field.Uint32 - TypeID field.Uint16 - CreatorID field.Uint32 - Dateline field.Uint32 - Name field.String - NameCN field.String - FieldInfobox field.String - FieldSummary field.String - VoteField field.String - FieldEps field.Uint32 - EditSummary field.String - Platform field.Uint16 - Subject subjectRevisionBelongsToSubject + ALL field.Asterisk + ID field.Uint32 + Type field.Uint8 // 修订类型 + SubjectID field.Uint32 + TypeID field.Uint16 + CreatorID field.Uint32 + Dateline field.Uint32 + Name field.String + NameCN field.String + FieldInfobox field.String + FieldMetaTags field.String + FieldSummary field.String + VoteField field.String + FieldEps field.Uint32 + EditSummary field.String + Platform field.Uint16 + Subject subjectRevisionBelongsToSubject fieldMap map[string]field.Expr } @@ -101,6 +103,7 @@ func (s *subjectRevision) updateTableName(table string) *subjectRevision { s.Name = field.NewString(table, "rev_name") s.NameCN = field.NewString(table, "rev_name_cn") s.FieldInfobox = field.NewString(table, "rev_field_infobox") + s.FieldMetaTags = field.NewString(table, "rev_field_meta_tags") s.FieldSummary = field.NewString(table, "rev_field_summary") s.VoteField = field.NewString(table, "rev_vote_field") s.FieldEps = field.NewUint32(table, "rev_field_eps") @@ -134,7 +137,7 @@ func (s *subjectRevision) GetFieldByName(fieldName string) (field.OrderExpr, boo } func (s *subjectRevision) fillFieldMap() { - s.fieldMap = make(map[string]field.Expr, 15) + s.fieldMap = make(map[string]field.Expr, 16) s.fieldMap["rev_id"] = s.ID s.fieldMap["rev_type"] = s.Type s.fieldMap["rev_subject_id"] = s.SubjectID @@ -144,6 +147,7 @@ func (s *subjectRevision) fillFieldMap() { s.fieldMap["rev_name"] = s.Name s.fieldMap["rev_name_cn"] = s.NameCN s.fieldMap["rev_field_infobox"] = s.FieldInfobox + s.fieldMap["rev_field_meta_tags"] = s.FieldMetaTags s.fieldMap["rev_field_summary"] = s.FieldSummary s.fieldMap["rev_vote_field"] = s.VoteField s.fieldMap["rev_field_eps"] = s.FieldEps diff --git a/dal/query/chii_subjects.gen.go b/dal/query/chii_subjects.gen.go index 1845a13ad..53b6a059f 100644 --- a/dal/query/chii_subjects.gen.go +++ b/dal/query/chii_subjects.gen.go @@ -37,6 +37,7 @@ func newSubject(db *gorm.DB, opts ...gen.DOOption) subject { _subject.Image = field.NewString(tableName, "subject_image") _subject.Platform = field.NewUint16(tableName, "subject_platform") _subject.Infobox = field.NewField(tableName, "field_infobox") + _subject.FieldMetaTags = field.NewString(tableName, "field_meta_tags") _subject.Summary = field.NewString(tableName, "field_summary") _subject.Field5 = field.NewString(tableName, "field_5") _subject.Volumes = field.NewUint32(tableName, "field_volumes") @@ -66,33 +67,34 @@ func newSubject(db *gorm.DB, opts ...gen.DOOption) subject { type subject struct { subjectDo subjectDo - ALL field.Asterisk - ID field.Uint32 - TypeID field.Uint8 - Name field.Field - NameCN field.Field - UID field.String // isbn / imdb - Creator field.Uint32 - Dateline field.Uint32 - Image field.String - Platform field.Uint16 - Infobox field.Field - Summary field.String // summary - Field5 field.String // author summary - Volumes field.Uint32 // 卷数 - Eps field.Uint32 - Wish field.Uint32 - Done field.Uint32 - Doing field.Uint32 - OnHold field.Uint32 // 搁置人数 - Dropped field.Uint32 // 抛弃人数 - Series field.Bool - SeriesEntry field.Uint32 - IdxCn field.String - Airtime field.Uint8 - Nsfw field.Bool - Ban field.Uint8 - Fields subjectHasOneFields + ALL field.Asterisk + ID field.Uint32 + TypeID field.Uint8 + Name field.Field + NameCN field.Field + UID field.String // isbn / imdb + Creator field.Uint32 + Dateline field.Uint32 + Image field.String + Platform field.Uint16 + Infobox field.Field + FieldMetaTags field.String + Summary field.String // summary + Field5 field.String // author summary + Volumes field.Uint32 // 卷数 + Eps field.Uint32 + Wish field.Uint32 + Done field.Uint32 + Doing field.Uint32 + OnHold field.Uint32 // 搁置人数 + Dropped field.Uint32 // 抛弃人数 + Series field.Bool + SeriesEntry field.Uint32 + IdxCn field.String + Airtime field.Uint8 + Nsfw field.Bool + Ban field.Uint8 + Fields subjectHasOneFields fieldMap map[string]field.Expr } @@ -119,6 +121,7 @@ func (s *subject) updateTableName(table string) *subject { s.Image = field.NewString(table, "subject_image") s.Platform = field.NewUint16(table, "subject_platform") s.Infobox = field.NewField(table, "field_infobox") + s.FieldMetaTags = field.NewString(table, "field_meta_tags") s.Summary = field.NewString(table, "field_summary") s.Field5 = field.NewString(table, "field_5") s.Volumes = field.NewUint32(table, "field_volumes") @@ -158,7 +161,7 @@ func (s *subject) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (s *subject) fillFieldMap() { - s.fieldMap = make(map[string]field.Expr, 26) + s.fieldMap = make(map[string]field.Expr, 27) s.fieldMap["subject_id"] = s.ID s.fieldMap["subject_type_id"] = s.TypeID s.fieldMap["subject_name"] = s.Name @@ -169,6 +172,7 @@ func (s *subject) fillFieldMap() { s.fieldMap["subject_image"] = s.Image s.fieldMap["subject_platform"] = s.Platform s.fieldMap["field_infobox"] = s.Infobox + s.fieldMap["field_meta_tags"] = s.FieldMetaTags s.fieldMap["field_summary"] = s.Summary s.fieldMap["field_5"] = s.Field5 s.fieldMap["field_volumes"] = s.Volumes diff --git a/dal/query/chii_tag_neue_index.gen.go b/dal/query/chii_tag_neue_index.gen.go new file mode 100644 index 000000000..c7e42f1bb --- /dev/null +++ b/dal/query/chii_tag_neue_index.gen.go @@ -0,0 +1,351 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/bangumi/server/dal/dao" +) + +func newTagIndex(db *gorm.DB, opts ...gen.DOOption) tagIndex { + _tagIndex := tagIndex{} + + _tagIndex.tagIndexDo.UseDB(db, opts...) + _tagIndex.tagIndexDo.UseModel(&dao.TagIndex{}) + + tableName := _tagIndex.tagIndexDo.TableName() + _tagIndex.ALL = field.NewAsterisk(tableName) + _tagIndex.ID = field.NewUint32(tableName, "tag_id") + _tagIndex.Name = field.NewString(tableName, "tag_name") + _tagIndex.Cat = field.NewInt8(tableName, "tag_cat") + _tagIndex.Type = field.NewInt8(tableName, "tag_type") + _tagIndex.Results = field.NewUint32(tableName, "tag_results") + _tagIndex.CreatedTime = field.NewUint32(tableName, "tag_dateline") + _tagIndex.UpdatedTime = field.NewUint32(tableName, "tag_lasttouch") + + _tagIndex.fillFieldMap() + + return _tagIndex +} + +type tagIndex struct { + tagIndexDo tagIndexDo + + ALL field.Asterisk + ID field.Uint32 + Name field.String + Cat field.Int8 // 0=条目 1=日志 2=天窗 + Type field.Int8 + Results field.Uint32 + CreatedTime field.Uint32 + UpdatedTime field.Uint32 + + fieldMap map[string]field.Expr +} + +func (t tagIndex) Table(newTableName string) *tagIndex { + t.tagIndexDo.UseTable(newTableName) + return t.updateTableName(newTableName) +} + +func (t tagIndex) As(alias string) *tagIndex { + t.tagIndexDo.DO = *(t.tagIndexDo.As(alias).(*gen.DO)) + return t.updateTableName(alias) +} + +func (t *tagIndex) updateTableName(table string) *tagIndex { + t.ALL = field.NewAsterisk(table) + t.ID = field.NewUint32(table, "tag_id") + t.Name = field.NewString(table, "tag_name") + t.Cat = field.NewInt8(table, "tag_cat") + t.Type = field.NewInt8(table, "tag_type") + t.Results = field.NewUint32(table, "tag_results") + t.CreatedTime = field.NewUint32(table, "tag_dateline") + t.UpdatedTime = field.NewUint32(table, "tag_lasttouch") + + t.fillFieldMap() + + return t +} + +func (t *tagIndex) WithContext(ctx context.Context) *tagIndexDo { return t.tagIndexDo.WithContext(ctx) } + +func (t tagIndex) TableName() string { return t.tagIndexDo.TableName() } + +func (t tagIndex) Alias() string { return t.tagIndexDo.Alias() } + +func (t tagIndex) Columns(cols ...field.Expr) gen.Columns { return t.tagIndexDo.Columns(cols...) } + +func (t *tagIndex) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := t.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (t *tagIndex) fillFieldMap() { + t.fieldMap = make(map[string]field.Expr, 7) + t.fieldMap["tag_id"] = t.ID + t.fieldMap["tag_name"] = t.Name + t.fieldMap["tag_cat"] = t.Cat + t.fieldMap["tag_type"] = t.Type + t.fieldMap["tag_results"] = t.Results + t.fieldMap["tag_dateline"] = t.CreatedTime + t.fieldMap["tag_lasttouch"] = t.UpdatedTime +} + +func (t tagIndex) clone(db *gorm.DB) tagIndex { + t.tagIndexDo.ReplaceConnPool(db.Statement.ConnPool) + return t +} + +func (t tagIndex) replaceDB(db *gorm.DB) tagIndex { + t.tagIndexDo.ReplaceDB(db) + return t +} + +type tagIndexDo struct{ gen.DO } + +func (t tagIndexDo) Debug() *tagIndexDo { + return t.withDO(t.DO.Debug()) +} + +func (t tagIndexDo) WithContext(ctx context.Context) *tagIndexDo { + return t.withDO(t.DO.WithContext(ctx)) +} + +func (t tagIndexDo) ReadDB() *tagIndexDo { + return t.Clauses(dbresolver.Read) +} + +func (t tagIndexDo) WriteDB() *tagIndexDo { + return t.Clauses(dbresolver.Write) +} + +func (t tagIndexDo) Session(config *gorm.Session) *tagIndexDo { + return t.withDO(t.DO.Session(config)) +} + +func (t tagIndexDo) Clauses(conds ...clause.Expression) *tagIndexDo { + return t.withDO(t.DO.Clauses(conds...)) +} + +func (t tagIndexDo) Returning(value interface{}, columns ...string) *tagIndexDo { + return t.withDO(t.DO.Returning(value, columns...)) +} + +func (t tagIndexDo) Not(conds ...gen.Condition) *tagIndexDo { + return t.withDO(t.DO.Not(conds...)) +} + +func (t tagIndexDo) Or(conds ...gen.Condition) *tagIndexDo { + return t.withDO(t.DO.Or(conds...)) +} + +func (t tagIndexDo) Select(conds ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Select(conds...)) +} + +func (t tagIndexDo) Where(conds ...gen.Condition) *tagIndexDo { + return t.withDO(t.DO.Where(conds...)) +} + +func (t tagIndexDo) Order(conds ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Order(conds...)) +} + +func (t tagIndexDo) Distinct(cols ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Distinct(cols...)) +} + +func (t tagIndexDo) Omit(cols ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Omit(cols...)) +} + +func (t tagIndexDo) Join(table schema.Tabler, on ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Join(table, on...)) +} + +func (t tagIndexDo) LeftJoin(table schema.Tabler, on ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.LeftJoin(table, on...)) +} + +func (t tagIndexDo) RightJoin(table schema.Tabler, on ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.RightJoin(table, on...)) +} + +func (t tagIndexDo) Group(cols ...field.Expr) *tagIndexDo { + return t.withDO(t.DO.Group(cols...)) +} + +func (t tagIndexDo) Having(conds ...gen.Condition) *tagIndexDo { + return t.withDO(t.DO.Having(conds...)) +} + +func (t tagIndexDo) Limit(limit int) *tagIndexDo { + return t.withDO(t.DO.Limit(limit)) +} + +func (t tagIndexDo) Offset(offset int) *tagIndexDo { + return t.withDO(t.DO.Offset(offset)) +} + +func (t tagIndexDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *tagIndexDo { + return t.withDO(t.DO.Scopes(funcs...)) +} + +func (t tagIndexDo) Unscoped() *tagIndexDo { + return t.withDO(t.DO.Unscoped()) +} + +func (t tagIndexDo) Create(values ...*dao.TagIndex) error { + if len(values) == 0 { + return nil + } + return t.DO.Create(values) +} + +func (t tagIndexDo) CreateInBatches(values []*dao.TagIndex, batchSize int) error { + return t.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (t tagIndexDo) Save(values ...*dao.TagIndex) error { + if len(values) == 0 { + return nil + } + return t.DO.Save(values) +} + +func (t tagIndexDo) First() (*dao.TagIndex, error) { + if result, err := t.DO.First(); err != nil { + return nil, err + } else { + return result.(*dao.TagIndex), nil + } +} + +func (t tagIndexDo) Take() (*dao.TagIndex, error) { + if result, err := t.DO.Take(); err != nil { + return nil, err + } else { + return result.(*dao.TagIndex), nil + } +} + +func (t tagIndexDo) Last() (*dao.TagIndex, error) { + if result, err := t.DO.Last(); err != nil { + return nil, err + } else { + return result.(*dao.TagIndex), nil + } +} + +func (t tagIndexDo) Find() ([]*dao.TagIndex, error) { + result, err := t.DO.Find() + return result.([]*dao.TagIndex), err +} + +func (t tagIndexDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*dao.TagIndex, err error) { + buf := make([]*dao.TagIndex, 0, batchSize) + err = t.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (t tagIndexDo) FindInBatches(result *[]*dao.TagIndex, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return t.DO.FindInBatches(result, batchSize, fc) +} + +func (t tagIndexDo) Attrs(attrs ...field.AssignExpr) *tagIndexDo { + return t.withDO(t.DO.Attrs(attrs...)) +} + +func (t tagIndexDo) Assign(attrs ...field.AssignExpr) *tagIndexDo { + return t.withDO(t.DO.Assign(attrs...)) +} + +func (t tagIndexDo) Joins(fields ...field.RelationField) *tagIndexDo { + for _, _f := range fields { + t = *t.withDO(t.DO.Joins(_f)) + } + return &t +} + +func (t tagIndexDo) Preload(fields ...field.RelationField) *tagIndexDo { + for _, _f := range fields { + t = *t.withDO(t.DO.Preload(_f)) + } + return &t +} + +func (t tagIndexDo) FirstOrInit() (*dao.TagIndex, error) { + if result, err := t.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*dao.TagIndex), nil + } +} + +func (t tagIndexDo) FirstOrCreate() (*dao.TagIndex, error) { + if result, err := t.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*dao.TagIndex), nil + } +} + +func (t tagIndexDo) FindByPage(offset int, limit int) (result []*dao.TagIndex, count int64, err error) { + result, err = t.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = t.Offset(-1).Limit(-1).Count() + return +} + +func (t tagIndexDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = t.Count() + if err != nil { + return + } + + err = t.Offset(offset).Limit(limit).Scan(result) + return +} + +func (t tagIndexDo) Scan(result interface{}) (err error) { + return t.DO.Scan(result) +} + +func (t tagIndexDo) Delete(models ...*dao.TagIndex) (result gen.ResultInfo, err error) { + return t.DO.Delete(models) +} + +func (t *tagIndexDo) withDO(do gen.Dao) *tagIndexDo { + t.DO = *do.(*gen.DO) + return t +} diff --git a/dal/query/chii_tag_neue_list.gen.go b/dal/query/chii_tag_neue_list.gen.go new file mode 100644 index 000000000..ee820e9ef --- /dev/null +++ b/dal/query/chii_tag_neue_list.gen.go @@ -0,0 +1,425 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/bangumi/server/dal/dao" +) + +func newTagList(db *gorm.DB, opts ...gen.DOOption) tagList { + _tagList := tagList{} + + _tagList.tagListDo.UseDB(db, opts...) + _tagList.tagListDo.UseModel(&dao.TagList{}) + + tableName := _tagList.tagListDo.TableName() + _tagList.ALL = field.NewAsterisk(tableName) + _tagList.Tid = field.NewUint32(tableName, "tlt_tid") + _tagList.UID = field.NewUint32(tableName, "tlt_uid") + _tagList.Cat = field.NewUint8(tableName, "tlt_cat") + _tagList.Type = field.NewUint8(tableName, "tlt_type") + _tagList.Mid = field.NewUint32(tableName, "tlt_mid") + _tagList.CreatedTime = field.NewUint32(tableName, "tlt_dateline") + _tagList.Tag = tagListHasOneTag{ + db: db.Session(&gorm.Session{}), + + RelationField: field.NewRelation("Tag", "dao.TagIndex"), + } + + _tagList.fillFieldMap() + + return _tagList +} + +type tagList struct { + tagListDo tagListDo + + ALL field.Asterisk + Tid field.Uint32 + UID field.Uint32 + Cat field.Uint8 + Type field.Uint8 + Mid field.Uint32 + CreatedTime field.Uint32 + Tag tagListHasOneTag + + fieldMap map[string]field.Expr +} + +func (t tagList) Table(newTableName string) *tagList { + t.tagListDo.UseTable(newTableName) + return t.updateTableName(newTableName) +} + +func (t tagList) As(alias string) *tagList { + t.tagListDo.DO = *(t.tagListDo.As(alias).(*gen.DO)) + return t.updateTableName(alias) +} + +func (t *tagList) updateTableName(table string) *tagList { + t.ALL = field.NewAsterisk(table) + t.Tid = field.NewUint32(table, "tlt_tid") + t.UID = field.NewUint32(table, "tlt_uid") + t.Cat = field.NewUint8(table, "tlt_cat") + t.Type = field.NewUint8(table, "tlt_type") + t.Mid = field.NewUint32(table, "tlt_mid") + t.CreatedTime = field.NewUint32(table, "tlt_dateline") + + t.fillFieldMap() + + return t +} + +func (t *tagList) WithContext(ctx context.Context) *tagListDo { return t.tagListDo.WithContext(ctx) } + +func (t tagList) TableName() string { return t.tagListDo.TableName() } + +func (t tagList) Alias() string { return t.tagListDo.Alias() } + +func (t tagList) Columns(cols ...field.Expr) gen.Columns { return t.tagListDo.Columns(cols...) } + +func (t *tagList) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := t.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (t *tagList) fillFieldMap() { + t.fieldMap = make(map[string]field.Expr, 7) + t.fieldMap["tlt_tid"] = t.Tid + t.fieldMap["tlt_uid"] = t.UID + t.fieldMap["tlt_cat"] = t.Cat + t.fieldMap["tlt_type"] = t.Type + t.fieldMap["tlt_mid"] = t.Mid + t.fieldMap["tlt_dateline"] = t.CreatedTime + +} + +func (t tagList) clone(db *gorm.DB) tagList { + t.tagListDo.ReplaceConnPool(db.Statement.ConnPool) + return t +} + +func (t tagList) replaceDB(db *gorm.DB) tagList { + t.tagListDo.ReplaceDB(db) + return t +} + +type tagListHasOneTag struct { + db *gorm.DB + + field.RelationField +} + +func (a tagListHasOneTag) Where(conds ...field.Expr) *tagListHasOneTag { + if len(conds) == 0 { + return &a + } + + exprs := make([]clause.Expression, 0, len(conds)) + for _, cond := range conds { + exprs = append(exprs, cond.BeCond().(clause.Expression)) + } + a.db = a.db.Clauses(clause.Where{Exprs: exprs}) + return &a +} + +func (a tagListHasOneTag) WithContext(ctx context.Context) *tagListHasOneTag { + a.db = a.db.WithContext(ctx) + return &a +} + +func (a tagListHasOneTag) Session(session *gorm.Session) *tagListHasOneTag { + a.db = a.db.Session(session) + return &a +} + +func (a tagListHasOneTag) Model(m *dao.TagList) *tagListHasOneTagTx { + return &tagListHasOneTagTx{a.db.Model(m).Association(a.Name())} +} + +type tagListHasOneTagTx struct{ tx *gorm.Association } + +func (a tagListHasOneTagTx) Find() (result *dao.TagIndex, err error) { + return result, a.tx.Find(&result) +} + +func (a tagListHasOneTagTx) Append(values ...*dao.TagIndex) (err error) { + targetValues := make([]interface{}, len(values)) + for i, v := range values { + targetValues[i] = v + } + return a.tx.Append(targetValues...) +} + +func (a tagListHasOneTagTx) Replace(values ...*dao.TagIndex) (err error) { + targetValues := make([]interface{}, len(values)) + for i, v := range values { + targetValues[i] = v + } + return a.tx.Replace(targetValues...) +} + +func (a tagListHasOneTagTx) Delete(values ...*dao.TagIndex) (err error) { + targetValues := make([]interface{}, len(values)) + for i, v := range values { + targetValues[i] = v + } + return a.tx.Delete(targetValues...) +} + +func (a tagListHasOneTagTx) Clear() error { + return a.tx.Clear() +} + +func (a tagListHasOneTagTx) Count() int64 { + return a.tx.Count() +} + +type tagListDo struct{ gen.DO } + +func (t tagListDo) Debug() *tagListDo { + return t.withDO(t.DO.Debug()) +} + +func (t tagListDo) WithContext(ctx context.Context) *tagListDo { + return t.withDO(t.DO.WithContext(ctx)) +} + +func (t tagListDo) ReadDB() *tagListDo { + return t.Clauses(dbresolver.Read) +} + +func (t tagListDo) WriteDB() *tagListDo { + return t.Clauses(dbresolver.Write) +} + +func (t tagListDo) Session(config *gorm.Session) *tagListDo { + return t.withDO(t.DO.Session(config)) +} + +func (t tagListDo) Clauses(conds ...clause.Expression) *tagListDo { + return t.withDO(t.DO.Clauses(conds...)) +} + +func (t tagListDo) Returning(value interface{}, columns ...string) *tagListDo { + return t.withDO(t.DO.Returning(value, columns...)) +} + +func (t tagListDo) Not(conds ...gen.Condition) *tagListDo { + return t.withDO(t.DO.Not(conds...)) +} + +func (t tagListDo) Or(conds ...gen.Condition) *tagListDo { + return t.withDO(t.DO.Or(conds...)) +} + +func (t tagListDo) Select(conds ...field.Expr) *tagListDo { + return t.withDO(t.DO.Select(conds...)) +} + +func (t tagListDo) Where(conds ...gen.Condition) *tagListDo { + return t.withDO(t.DO.Where(conds...)) +} + +func (t tagListDo) Order(conds ...field.Expr) *tagListDo { + return t.withDO(t.DO.Order(conds...)) +} + +func (t tagListDo) Distinct(cols ...field.Expr) *tagListDo { + return t.withDO(t.DO.Distinct(cols...)) +} + +func (t tagListDo) Omit(cols ...field.Expr) *tagListDo { + return t.withDO(t.DO.Omit(cols...)) +} + +func (t tagListDo) Join(table schema.Tabler, on ...field.Expr) *tagListDo { + return t.withDO(t.DO.Join(table, on...)) +} + +func (t tagListDo) LeftJoin(table schema.Tabler, on ...field.Expr) *tagListDo { + return t.withDO(t.DO.LeftJoin(table, on...)) +} + +func (t tagListDo) RightJoin(table schema.Tabler, on ...field.Expr) *tagListDo { + return t.withDO(t.DO.RightJoin(table, on...)) +} + +func (t tagListDo) Group(cols ...field.Expr) *tagListDo { + return t.withDO(t.DO.Group(cols...)) +} + +func (t tagListDo) Having(conds ...gen.Condition) *tagListDo { + return t.withDO(t.DO.Having(conds...)) +} + +func (t tagListDo) Limit(limit int) *tagListDo { + return t.withDO(t.DO.Limit(limit)) +} + +func (t tagListDo) Offset(offset int) *tagListDo { + return t.withDO(t.DO.Offset(offset)) +} + +func (t tagListDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *tagListDo { + return t.withDO(t.DO.Scopes(funcs...)) +} + +func (t tagListDo) Unscoped() *tagListDo { + return t.withDO(t.DO.Unscoped()) +} + +func (t tagListDo) Create(values ...*dao.TagList) error { + if len(values) == 0 { + return nil + } + return t.DO.Create(values) +} + +func (t tagListDo) CreateInBatches(values []*dao.TagList, batchSize int) error { + return t.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (t tagListDo) Save(values ...*dao.TagList) error { + if len(values) == 0 { + return nil + } + return t.DO.Save(values) +} + +func (t tagListDo) First() (*dao.TagList, error) { + if result, err := t.DO.First(); err != nil { + return nil, err + } else { + return result.(*dao.TagList), nil + } +} + +func (t tagListDo) Take() (*dao.TagList, error) { + if result, err := t.DO.Take(); err != nil { + return nil, err + } else { + return result.(*dao.TagList), nil + } +} + +func (t tagListDo) Last() (*dao.TagList, error) { + if result, err := t.DO.Last(); err != nil { + return nil, err + } else { + return result.(*dao.TagList), nil + } +} + +func (t tagListDo) Find() ([]*dao.TagList, error) { + result, err := t.DO.Find() + return result.([]*dao.TagList), err +} + +func (t tagListDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*dao.TagList, err error) { + buf := make([]*dao.TagList, 0, batchSize) + err = t.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (t tagListDo) FindInBatches(result *[]*dao.TagList, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return t.DO.FindInBatches(result, batchSize, fc) +} + +func (t tagListDo) Attrs(attrs ...field.AssignExpr) *tagListDo { + return t.withDO(t.DO.Attrs(attrs...)) +} + +func (t tagListDo) Assign(attrs ...field.AssignExpr) *tagListDo { + return t.withDO(t.DO.Assign(attrs...)) +} + +func (t tagListDo) Joins(fields ...field.RelationField) *tagListDo { + for _, _f := range fields { + t = *t.withDO(t.DO.Joins(_f)) + } + return &t +} + +func (t tagListDo) Preload(fields ...field.RelationField) *tagListDo { + for _, _f := range fields { + t = *t.withDO(t.DO.Preload(_f)) + } + return &t +} + +func (t tagListDo) FirstOrInit() (*dao.TagList, error) { + if result, err := t.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*dao.TagList), nil + } +} + +func (t tagListDo) FirstOrCreate() (*dao.TagList, error) { + if result, err := t.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*dao.TagList), nil + } +} + +func (t tagListDo) FindByPage(offset int, limit int) (result []*dao.TagList, count int64, err error) { + result, err = t.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = t.Offset(-1).Limit(-1).Count() + return +} + +func (t tagListDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = t.Count() + if err != nil { + return + } + + err = t.Offset(offset).Limit(limit).Scan(result) + return +} + +func (t tagListDo) Scan(result interface{}) (err error) { + return t.DO.Scan(result) +} + +func (t tagListDo) Delete(models ...*dao.TagList) (result gen.ResultInfo, err error) { + return t.DO.Delete(models) +} + +func (t *tagListDo) withDO(do gen.Dao) *tagListDo { + t.DO = *do.(*gen.DO) + return t +} diff --git a/dal/query/export_db.go b/dal/query/export_db.go new file mode 100644 index 000000000..bac903af6 --- /dev/null +++ b/dal/query/export_db.go @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package query + +import ( + "gorm.io/gorm" +) + +func (q *Query) DB() *gorm.DB { + return q.db +} diff --git a/dal/query/gen.go b/dal/query/gen.go index 133139c48..d24e02f71 100644 --- a/dal/query/gen.go +++ b/dal/query/gen.go @@ -43,6 +43,8 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query { SubjectField: newSubjectField(db, opts...), SubjectRelation: newSubjectRelation(db, opts...), SubjectRevision: newSubjectRevision(db, opts...), + TagIndex: newTagIndex(db, opts...), + TagList: newTagList(db, opts...), UserGroup: newUserGroup(db, opts...), WebSession: newWebSession(db, opts...), } @@ -76,6 +78,8 @@ type Query struct { SubjectField subjectField SubjectRelation subjectRelation SubjectRevision subjectRevision + TagIndex tagIndex + TagList tagList UserGroup userGroup WebSession webSession } @@ -110,6 +114,8 @@ func (q *Query) clone(db *gorm.DB) *Query { SubjectField: q.SubjectField.clone(db), SubjectRelation: q.SubjectRelation.clone(db), SubjectRevision: q.SubjectRevision.clone(db), + TagIndex: q.TagIndex.clone(db), + TagList: q.TagList.clone(db), UserGroup: q.UserGroup.clone(db), WebSession: q.WebSession.clone(db), } @@ -151,6 +157,8 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query { SubjectField: q.SubjectField.replaceDB(db), SubjectRelation: q.SubjectRelation.replaceDB(db), SubjectRevision: q.SubjectRevision.replaceDB(db), + TagIndex: q.TagIndex.replaceDB(db), + TagList: q.TagList.replaceDB(db), UserGroup: q.UserGroup.replaceDB(db), WebSession: q.WebSession.replaceDB(db), } @@ -182,6 +190,8 @@ type queryCtx struct { SubjectField *subjectFieldDo SubjectRelation *subjectRelationDo SubjectRevision *subjectRevisionDo + TagIndex *tagIndexDo + TagList *tagListDo UserGroup *userGroupDo WebSession *webSessionDo } @@ -213,6 +223,8 @@ func (q *Query) WithContext(ctx context.Context) *queryCtx { SubjectField: q.SubjectField.WithContext(ctx), SubjectRelation: q.SubjectRelation.WithContext(ctx), SubjectRevision: q.SubjectRevision.WithContext(ctx), + TagIndex: q.TagIndex.WithContext(ctx), + TagList: q.TagList.WithContext(ctx), UserGroup: q.UserGroup.WithContext(ctx), WebSession: q.WebSession.WithContext(ctx), } diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 2d0114a8c..e0dd06b48 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -15,10 +15,11 @@ package infra import ( + "cmp" "context" "errors" "fmt" - "sort" + "slices" "strings" "time" @@ -27,8 +28,8 @@ import ( "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen" - "gorm.io/gen/field" "gorm.io/gorm" + "gorm.io/gorm/clause" "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" @@ -162,10 +163,156 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return err } + err = r.updateUserTags(ctx, userID, subject, at, s) + if err != nil { + return errgo.Trace(err) + } + r.updateSubject(ctx, subject.ID) return nil } +//nolint:funlen +func (r mysqlRepo) updateUserTags( + ctx context.Context, + userID model.UserID, + subject model.Subject, + at time.Time, + s *collection.Subject, +) error { + return r.q.Transaction(func(q *query.Query) error { + tx := q.WithContext(ctx) + + if (len(s.Tags())) == 0 { + _, err := tx.TagList.Where(q.TagList.UID.Eq(userID), + q.TagList.Mid.Eq(subject.ID), + q.TagList.Cat.Eq(model.TagCatSubject)).Delete() + if err != nil { + return errgo.Trace(err) + } + return r.reCountSubjectTags(ctx, q, subject.ID) + } + + tags, err := tx.TagIndex.Select(). + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject)).Find() + if err != nil { + return errgo.Trace(err) + } + + var existsTags = lo.SliceToMap(tags, func(item *dao.TagIndex) (string, bool) { + return item.Name, true + }) + + var missingTags []string + for _, tag := range s.Tags() { + if !existsTags[tag] { + missingTags = append(missingTags, tag) + } + } + + if len(missingTags) > 0 { + err = tx.TagIndex.Create(lo.Map(missingTags, func(item string, index int) *dao.TagIndex { + return &dao.TagIndex{ + Name: item, + Cat: model.TagCatSubject, + Type: int8(subject.TypeID), + Results: 1, + CreatedTime: uint32(at.Unix()), + UpdatedTime: uint32(at.Unix()), + } + })...) + + if err != nil { + return errgo.Trace(err) + } + } + + tags, err = tx.TagIndex.Select(). + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject)).Find() + if err != nil { + return errgo.Trace(err) + } + + err = tx.TagList.Clauses(clause.OnConflict{DoNothing: true}). + Create(lo.Map(tags, func(item *dao.TagIndex, index int) *dao.TagList { + return &dao.TagList{ + Tid: item.ID, + UID: s.User(), + Cat: model.TagCatSubject, + Type: subject.TypeID, + Mid: subject.ID, + CreatedTime: uint32(at.Unix()), + } + })...) + if err != nil { + return errgo.Trace(err) + } + + return r.reCountSubjectTags(ctx, q, subject.ID) + }) +} + +func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id model.SubjectID) error { + tags, err := tx.WithContext(ctx).TagList.Select(). + Where(tx.TagList.Cat.Eq(model.TagCatSubject), tx.TagList.Mid.Eq(id)).Find() + if err != nil { + return err + } + + db := tx.DB().WithContext(ctx) + + err = db.Exec(` + update chii_tag_neue_index + set tag_results = ( + select count(1) + from chii_tag_neue_list + where tlt_tid = chii_tag_neue_index.tag_id + ) + where tag_id in ? + `, lo.Map(tags, func(item *dao.TagList, index int) uint32 { + return item.Tid + })).Error + + if err != nil { + return errgo.Trace(err) + } + + tagList, err := tx.WithContext(ctx).TagList.Preload(tx.TagList.Tag). + Where(tx.TagList.Cat.Eq(model.TagCatSubject), tx.TagList.Mid.Eq(id)).Find() + if err != nil { + return errgo.Trace(err) + } + + var count = make(map[string]int) + + for _, tag := range tagList { + count[tag.Tag.Name]++ + } + + var phpTags = make([]subject.Tag, 0, len(count)) + + for name, c := range count { + phpTags = append(phpTags, subject.Tag{ + Name: lo.ToPtr(name), + Count: c, + }) + } + + slices.SortFunc(phpTags, func(a, b subject.Tag) int { + return cmp.Compare(a.Count, b.Count) + }) + + newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:gomnd + if err != nil { + return errgo.Wrap(err, "php.Marshal") + } + + _, err = tx.WithContext(ctx).SubjectField.Where(r.q.SubjectField.Sid.Eq(id)). + UpdateSimple(r.q.SubjectField.Tags.Value(newTag)) + + return errgo.Wrap(err, "failed to update subject field") +} + // 根据新旧 collection.Subject 状态 // 更新 dao.SubjectCollection. func (r mysqlRepo) updateSubjectCollection( @@ -339,105 +486,32 @@ func (r mysqlRepo) GetSubjectEpisodesCollection( } func (r mysqlRepo) updateSubject(ctx context.Context, subjectID model.SubjectID) { - if err := r.updateSubjectTags(ctx, subjectID); err != nil { - r.log.Error("failed to update subject tags", zap.Error(err)) - } - if err := r.reCountSubjectCollection(ctx, subjectID); err != nil { r.log.Error("failed to update collection counts", zap.Error(err)) } } func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model.SubjectID) error { - var counts []struct { - Type uint8 `gorm:"type"` - Total uint32 `gorm:"total"` - } - - err := r.q.SubjectCollection.WithContext(ctx). - Select(r.q.SubjectCollection.Type.As("type"), r.q.SubjectCollection.Type.Count().As("total")). - Group(r.q.SubjectCollection.Type). - Where(r.q.SubjectCollection.SubjectID.Eq(subjectID)).Group(r.q.SubjectCollection.Type).Scan(&counts) - if err != nil { - return errgo.Wrap(err, "dal") - } - - var updater = make([]field.AssignExpr, 0, 5) - - for _, count := range counts { - switch collection.SubjectCollection(count.Type) { //nolint:exhaustive - case collection.SubjectCollectionDropped: - updater = append(updater, r.q.Subject.Dropped.Value(count.Total)) - - case collection.SubjectCollectionWish: - updater = append(updater, r.q.Subject.Wish.Value(count.Total)) - - case collection.SubjectCollectionDoing: - updater = append(updater, r.q.Subject.Doing.Value(count.Total)) - - case collection.SubjectCollectionOnHold: - updater = append(updater, r.q.Subject.OnHold.Value(count.Total)) - - case collection.SubjectCollectionDone: - updater = append(updater, r.q.Subject.Done.Value(count.Total)) - } - } - - _, err = r.q.Subject.WithContext(ctx).Where(r.q.Subject.ID.Eq(subjectID)).UpdateSimple(updater...) - if err != nil { - return errgo.Wrap(err, "dal") - } - - return nil -} - -func (r mysqlRepo) updateSubjectTags(ctx context.Context, subjectID model.SubjectID) error { - collections, err := r.q.SubjectCollection.WithContext(ctx). - Where( - r.q.SubjectCollection.SubjectID.Eq(subjectID), - r.q.SubjectCollection.Private.Neq(uint8(collection.CollectPrivacyBan)), - ).Find() - if err != nil { - return errgo.Wrap(err, "failed to get all collection") - } - - var tags = make(map[string]int) - for _, collection := range collections { - for _, s := range strings.Split(collection.Tag, " ") { - if s == "" { - continue - } - tags[s]++ - } - } - - var phpTags = make([]subject.Tag, 0, len(tags)) - - for name, count := range tags { - name := name - phpTags = append(phpTags, subject.Tag{ - Name: &name, - Count: count, - }) - } - - sort.Slice(phpTags, func(i, j int) bool { - if phpTags[i].Count != phpTags[j].Count { - return phpTags[i].Count > phpTags[j].Count - } - - return *phpTags[i].Name > *phpTags[j].Name - }) - - newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:gomnd - if err != nil { - return errgo.Wrap(err, "php.Marshal") - } - - _, err = r.q.SubjectField.WithContext(ctx).Where(r.q.SubjectField.Sid.Eq(subjectID)). - UpdateSimple(r.q.SubjectField.Tags.Value(newTag)) - - return errgo.Wrap(err, "failed to update subject field") + err := r.q.DB().WithContext(ctx).Exec(` + update chii_subjects + set subject_wish = (select count(1) + from chii_subject_interests + where interest_subject_id = 1 and interest_type = subject_id), + subject_collect = (select count(1) + from chii_subject_interests + where interest_subject_id = 2 and interest_type = subject_id), + subject_doing = (select count(1) + from chii_subject_interests + where interest_subject_id = 3 and interest_type = subject_id), + subject_on_hold = (select count(1) + from chii_subject_interests + where interest_subject_id = 4 and interest_type = subject_id), + subject_dropped = (select count(1) + from chii_subject_interests + where interest_subject_id = 5 and interest_type = subject_id) + where chii_subjects.subject_id = ? +`, subjectID).Error + return errgo.Trace(err) } func (r mysqlRepo) updateCollectionTime(obj *dao.SubjectCollection, diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index 7507b6110..923230929 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -19,11 +19,13 @@ import ( "testing" "time" + "github.com/samber/lo" "github.com/stretchr/testify/require" "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen/field" "gorm.io/gorm" + "gorm.io/gorm/clause" "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" @@ -32,11 +34,13 @@ import ( "github.com/bangumi/server/internal/collections/infra" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/test" + subject2 "github.com/bangumi/server/internal/subject" ) func getRepo(t *testing.T) (collections.Repo, *query.Query) { t.Helper() q := test.GetQuery(t) + repo, err := infra.NewMysqlRepo(q, zap.NewNop()) require.NoError(t, err) @@ -209,12 +213,24 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { repo, q := getRepo(t) table := q.SubjectCollection + err := q.Subject.WithContext(context.TODO()).Clauses(clause.OnConflict{DoNothing: true}). + Where(q.Subject.ID.Eq(sid)).Create(&dao.Subject{ID: sid}) + require.NoError(t, err) + + err = q.SubjectField.WithContext(context.TODO()).Clauses(clause.OnConflict{DoNothing: true}). + Where(q.Subject.ID.Eq(sid)).Create(&dao.SubjectField{Sid: sid, Tags: []byte("")}) + require.NoError(t, err) + + t.Cleanup(func() { + lo.Must(q.Subject.WithContext(context.TODO()).Where(q.Subject.ID.Eq(sid)).Delete()) + lo.Must(q.SubjectField.WithContext(context.TODO()).Where(q.SubjectField.Sid.Eq(sid)).Delete()) + }) + test.RunAndCleanup(t, func() { - _, err := table.WithContext(context.TODO()).Where(field.Or(table.SubjectID.Eq(sid), table.UserID.Eq(uid))).Delete() - require.NoError(t, err) + lo.Must(table.WithContext(context.TODO()).Where(field.Or(table.SubjectID.Eq(sid), table.UserID.Eq(uid))).Delete()) }) - err := table.WithContext(context.Background()).Create( + err = table.WithContext(context.Background()).Create( &dao.SubjectCollection{ UserID: uid, SubjectID: sid + 1, Rate: 8, Type: uint8(collection.SubjectCollectionDoing), }, @@ -247,6 +263,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { s.UpdateType(collection.SubjectCollectionDropped) require.NoError(t, s.UpdateComment("c")) require.NoError(t, s.UpdateRate(1)) + require.NoError(t, s.UpdateTags([]string{"1", "2", "3"})) return s, nil }) require.NoError(t, err) @@ -287,6 +304,14 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.NoError(t, err) require.EqualValues(t, 8, r.Rate) + + s, err := q.WithContext(context.Background()).Subject.Preload(q.Subject.Fields).Where(q.Subject.ID.Eq(sid)).First() + require.NoError(t, err) + + tags, err := subject2.ParseTags(s.Fields.Tags) + require.NoError(t, err) + + require.Len(t, tags, 3) } func TestMysqlRepo_UpdateSubjectCollection(t *testing.T) { diff --git a/internal/model/tag.go b/internal/model/tag.go new file mode 100644 index 000000000..becc2f209 --- /dev/null +++ b/internal/model/tag.go @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package model + +// TagCatSubject 条目tag. +const TagCatSubject = 0 + +// TagCatMeta 官方tag. +const TagCatMeta = 3 From 93b9258f09564c104e009b1f43d3b876d769a7d7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 01:06:12 +0800 Subject: [PATCH 355/888] style: upgrade linter --- .github/workflows/lint.yaml | 2 +- .golangci.yaml | 6 +++--- cmd/archive/main.go | 2 +- internal/collections/infra/mysql_repo.go | 2 +- internal/metrics/metrics.go | 2 +- internal/pkg/random/string.go | 4 ++-- internal/search/client.go | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2e25d92f2..78dce3e58 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -50,4 +50,4 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v6 with: - version: v1.57.2 + version: v1.59.1 diff --git a/.golangci.yaml b/.golangci.yaml index dcb38b1d1..f1be719f4 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -131,7 +131,7 @@ linters-settings: - pkg: "github.com/golang/mock" desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' - gomnd: + mnd: # settings: # mnd: # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. @@ -251,7 +251,7 @@ linters: - gocyclo - godot - gofmt - - gomnd + - mnd - gomoddirectives - gomodguard - goprintffuncname @@ -318,7 +318,7 @@ issues: - source: 'var .* sync\.Once' linters: [gochecknoglobals] - - linters: [goerr113, errorlint] + - linters: [err113, errorlint] source: "if err == redis.Nil {" # https://github.com/kunwardeep/paralleltest/issues/8 diff --git a/cmd/archive/main.go b/cmd/archive/main.go index b60cda329..fd23fbc79 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -231,7 +231,7 @@ func exportSubjects(q *query.Query, w io.Writer) { return tags[i].Count >= tags[j].Count }) - tags = lo.Filter(lo.Slice(tags, 0, 11), func(item model.Tag, index int) bool { //nolint:gomnd + tags = lo.Filter(lo.Slice(tags, 0, 11), func(item model.Tag, index int) bool { //nolint:mnd return utf8.RuneCountInString(item.Name) < 10 || item.Count >= 10 }) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e0dd06b48..e38329fa4 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -302,7 +302,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m return cmp.Compare(a.Count, b.Count) }) - newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:gomnd + newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:mnd if err != nil { return errgo.Wrap(err, "php.Marshal") } diff --git a/internal/metrics/metrics.go b/internal/metrics/metrics.go index 410f90e5c..8e42118eb 100644 --- a/internal/metrics/metrics.go +++ b/internal/metrics/metrics.go @@ -12,7 +12,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -//nolint:gomnd,gochecknoinits,gochecknoglobals +//nolint:mnd,gochecknoinits,gochecknoglobals package metrics import ( diff --git a/internal/pkg/random/string.go b/internal/pkg/random/string.go index d5590d361..600cb653b 100644 --- a/internal/pkg/random/string.go +++ b/internal/pkg/random/string.go @@ -29,7 +29,7 @@ var p = pool.New(func() *bufio.Reader { // we may never need to change these values. const base62Chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" const base62CharsLength = byte(len(base62Chars)) -const base62MaxByte = byte(255 - (256 % len(base62Chars))) //nolint:gomnd +const base62MaxByte = byte(255 - (256 % len(base62Chars))) //nolint:mnd // Base62String generate a cryptographically secure base62 string in given length. // Will panic if it can't read from 'crypto/rand'. @@ -39,7 +39,7 @@ func Base62String(length int) string { b := make([]byte, length) // storage for random bytes. - r := make([]byte, length+(length/4)) //nolint:gomnd + r := make([]byte, length+(length/4)) //nolint:mnd i := 0 for { diff --git a/internal/search/client.go b/internal/search/client.go index b619def91..69e3f16ab 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -192,7 +192,7 @@ func (c *client) sendBatch(items []subjectIndex) { retry.DelayType(retry.BackOffDelay), retry.Delay(time.Microsecond*100), - retry.Attempts(5), //nolint:gomnd + retry.Attempts(5), //nolint:mnd retry.RetryIf(func(err error) bool { var r = &meilisearch.Error{} return errors.As(err, &r) From 57632d7ba3582533b28f4bd249b18f5e2cc475bd Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 01:17:08 +0800 Subject: [PATCH 356/888] fix: tag should be filtered by subject type --- internal/collections/infra/mysql_repo.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e38329fa4..3bb2f246c 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -194,7 +194,8 @@ func (r mysqlRepo) updateUserTags( } tags, err := tx.TagIndex.Select(). - Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject)).Find() + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), + q.TagIndex.Type.Eq(int8(subject.TypeID))).Find() if err != nil { return errgo.Trace(err) } @@ -228,7 +229,8 @@ func (r mysqlRepo) updateUserTags( } tags, err = tx.TagIndex.Select(). - Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject)).Find() + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), + q.TagIndex.Type.Eq(int8(subject.TypeID))).Find() if err != nil { return errgo.Trace(err) } @@ -266,7 +268,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m set tag_results = ( select count(1) from chii_tag_neue_list - where tlt_tid = chii_tag_neue_index.tag_id + where tlt_tid = chii_tag_neue_index.tag_id and tlt_type = tag_type ) where tag_id in ? `, lo.Map(tags, func(item *dao.TagList, index int) uint32 { From ad27c96ff504d2bea2f91bc3761978f4856bb8d4 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 02:46:33 +0800 Subject: [PATCH 357/888] fix: subject tag sorting --- internal/collections/infra/mysql_repo.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 3bb2f246c..7516a4fa4 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -163,9 +163,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return err } - err = r.updateUserTags(ctx, userID, subject, at, s) - if err != nil { - return errgo.Trace(err) + if s.Privacy() == collection.CollectPrivacyNone { + err = r.updateUserTags(ctx, userID, subject, at, s) + if err != nil { + return errgo.Trace(err) + } } r.updateSubject(ctx, subject.ID) @@ -301,7 +303,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m } slices.SortFunc(phpTags, func(a, b subject.Tag) int { - return cmp.Compare(a.Count, b.Count) + return -cmp.Compare(a.Count, b.Count) }) newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:mnd From 53b03d02856ea4891265375ca968b95a94b875f5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 10:58:34 +0800 Subject: [PATCH 358/888] fix: subject collection count --- internal/collections/infra/mysql_repo.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 7516a4fa4..8dbcaab3e 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -500,19 +500,19 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model update chii_subjects set subject_wish = (select count(1) from chii_subject_interests - where interest_subject_id = 1 and interest_type = subject_id), + where interest_type = 1 and interest_subject_id = subject_id), subject_collect = (select count(1) from chii_subject_interests - where interest_subject_id = 2 and interest_type = subject_id), + where interest_type = 2 and interest_subject_id = subject_id), subject_doing = (select count(1) from chii_subject_interests - where interest_subject_id = 3 and interest_type = subject_id), + where interest_type = 3 and interest_subject_id = subject_id), subject_on_hold = (select count(1) from chii_subject_interests - where interest_subject_id = 4 and interest_type = subject_id), + where interest_type = 4 and interest_subject_id = subject_id), subject_dropped = (select count(1) from chii_subject_interests - where interest_subject_id = 5 and interest_type = subject_id) + where interest_type = 5 and interest_subject_id = subject_id) where chii_subjects.subject_id = ? `, subjectID).Error return errgo.Trace(err) From 4bc2bf5e45401d3be989fa0aca39fc41d7d168d3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 11:23:25 +0800 Subject: [PATCH 359/888] perf: dedupe tag id in app before send to mysql --- internal/collections/infra/mysql_repo.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 8dbcaab3e..71222e3ae 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -270,12 +270,12 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m set tag_results = ( select count(1) from chii_tag_neue_list - where tlt_tid = chii_tag_neue_index.tag_id and tlt_type = tag_type + where tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type ) - where tag_id in ? - `, lo.Map(tags, func(item *dao.TagList, index int) uint32 { + where tag_id IN ? + `, lo.Uniq(lo.Map(tags, func(item *dao.TagList, index int) uint32 { return item.Tid - })).Error + }))).Error if err != nil { return errgo.Trace(err) From ce4182b3744104bdb0aa2d24591e516ff6c74f9e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 11:28:34 +0800 Subject: [PATCH 360/888] perf: add cat filter --- internal/collections/infra/mysql_repo.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 71222e3ae..a5b3022ca 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -270,10 +270,10 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m set tag_results = ( select count(1) from chii_tag_neue_list - where tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type + where tlt_cat = ? AND tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type ) - where tag_id IN ? - `, lo.Uniq(lo.Map(tags, func(item *dao.TagList, index int) uint32 { + where tag_cat = ? AND tag_id IN ? + `, model.TagCatSubject, model.TagCatSubject, lo.Uniq(lo.Map(tags, func(item *dao.TagList, index int) uint32 { return item.Tid }))).Error From c712d738d313dd8ca9a605005e5ebe995214a374 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 11:37:09 +0800 Subject: [PATCH 361/888] perf: improve tag count --- internal/collections/infra/mysql_repo.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index a5b3022ca..2d1b78911 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -257,25 +257,17 @@ func (r mysqlRepo) updateUserTags( } func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id model.SubjectID) error { - tags, err := tx.WithContext(ctx).TagList.Select(). - Where(tx.TagList.Cat.Eq(model.TagCatSubject), tx.TagList.Mid.Eq(id)).Find() - if err != nil { - return err - } - db := tx.DB().WithContext(ctx) - err = db.Exec(` + err := db.Exec(` update chii_tag_neue_index set tag_results = ( select count(1) from chii_tag_neue_list where tlt_cat = ? AND tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type ) - where tag_cat = ? AND tag_id IN ? - `, model.TagCatSubject, model.TagCatSubject, lo.Uniq(lo.Map(tags, func(item *dao.TagList, index int) uint32 { - return item.Tid - }))).Error + where tag_cat = ? AND tag_id IN (select distinct tag_id from chii_tag_neue_list as tl where tl.tlt_cat = ? and tl.tlt_mid = ?) + `, model.TagCatSubject, model.TagCatSubject, model.TagCatSubject, id).Error if err != nil { return errgo.Trace(err) From b6fd833f6b793d39ea66a16cdbf02ce96c80b0e2 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 11:40:47 +0800 Subject: [PATCH 362/888] perf: improve tag count --- internal/collections/infra/mysql_repo.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 2d1b78911..4fb042bc5 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -263,10 +263,12 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id m update chii_tag_neue_index set tag_results = ( select count(1) - from chii_tag_neue_list - where tlt_cat = ? AND tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type + from chii_tag_neue_list + where tlt_cat = ? AND tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type ) - where tag_cat = ? AND tag_id IN (select distinct tag_id from chii_tag_neue_list as tl where tl.tlt_cat = ? and tl.tlt_mid = ?) + where tag_cat = ? AND tag_id IN ( + select distinct tl.tlt_tid from chii_tag_neue_list as tl where tl.tlt_cat = ? and tl.tlt_mid = ? + ) `, model.TagCatSubject, model.TagCatSubject, model.TagCatSubject, id).Error if err != nil { From a94105b7d9c0dd9276e32b85c4bb8102ec9d0d3a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 12:07:13 +0800 Subject: [PATCH 363/888] perf: improve tag count --- a.sql | 12 ++++ cmd/gen/gorm/main.go | 1 + dal/dao/chii_tag_neue_index.gen.go | 2 +- dal/query/chii_tag_neue_index.gen.go | 6 +- internal/collections/infra/mysql_repo.go | 71 +++++++++++++----------- 5 files changed, 57 insertions(+), 35 deletions(-) create mode 100644 a.sql diff --git a/a.sql b/a.sql new file mode 100644 index 000000000..b120cf010 --- /dev/null +++ b/a.sql @@ -0,0 +1,12 @@ +update chii_tag_neue_index +set tag_results = (select count(1) + from chii_tag_neue_list AS tl1 + where tl1.tlt_cat = ? + AND tl1.tlt_tid = chii_tag_neue_index.tag_id + AND tl1.tlt_type = chii_tag_neue_index.tag_type) +where tag_cat = ? + AND tag_id IN (select distinct tl2.tlt_tid + from chii_tag_neue_list as tl2 + inner join chii_tag_neue_index as ti on ti.tag_id = tl2.tlt_tid + where tl2.tlt_cat = ? + and tl2.tlt_mid = ?) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 5477fbea3..643aa85d4 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -527,6 +527,7 @@ func main() { gen.FieldTrimPrefix("tag_"), gen.FieldRename("tag_dateline", createdTime), gen.FieldRename("tag_lasttouch", updateTime), + gen.FieldType("tag_type", "uint8"), ) g.ApplyBasic(modelTagIndex) diff --git a/dal/dao/chii_tag_neue_index.gen.go b/dal/dao/chii_tag_neue_index.gen.go index bd14964d5..142365250 100644 --- a/dal/dao/chii_tag_neue_index.gen.go +++ b/dal/dao/chii_tag_neue_index.gen.go @@ -11,7 +11,7 @@ type TagIndex struct { ID uint32 `gorm:"column:tag_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` Name string `gorm:"column:tag_name;type:varchar(30);not null" json:""` Cat int8 `gorm:"column:tag_cat;type:tinyint(3);not null;comment:0=条目 1=日志 2=天窗" json:""` // 0=条目 1=日志 2=天窗 - Type int8 `gorm:"column:tag_type;type:tinyint(3);not null" json:""` + Type uint8 `gorm:"column:tag_type;type:tinyint(3);not null" json:""` Results uint32 `gorm:"column:tag_results;type:mediumint(8) unsigned;not null" json:""` CreatedTime uint32 `gorm:"column:tag_dateline;type:int(10) unsigned;not null" json:""` UpdatedTime uint32 `gorm:"column:tag_lasttouch;type:int(10) unsigned;not null" json:""` diff --git a/dal/query/chii_tag_neue_index.gen.go b/dal/query/chii_tag_neue_index.gen.go index c7e42f1bb..630c6d284 100644 --- a/dal/query/chii_tag_neue_index.gen.go +++ b/dal/query/chii_tag_neue_index.gen.go @@ -30,7 +30,7 @@ func newTagIndex(db *gorm.DB, opts ...gen.DOOption) tagIndex { _tagIndex.ID = field.NewUint32(tableName, "tag_id") _tagIndex.Name = field.NewString(tableName, "tag_name") _tagIndex.Cat = field.NewInt8(tableName, "tag_cat") - _tagIndex.Type = field.NewInt8(tableName, "tag_type") + _tagIndex.Type = field.NewUint8(tableName, "tag_type") _tagIndex.Results = field.NewUint32(tableName, "tag_results") _tagIndex.CreatedTime = field.NewUint32(tableName, "tag_dateline") _tagIndex.UpdatedTime = field.NewUint32(tableName, "tag_lasttouch") @@ -47,7 +47,7 @@ type tagIndex struct { ID field.Uint32 Name field.String Cat field.Int8 // 0=条目 1=日志 2=天窗 - Type field.Int8 + Type field.Uint8 Results field.Uint32 CreatedTime field.Uint32 UpdatedTime field.Uint32 @@ -70,7 +70,7 @@ func (t *tagIndex) updateTableName(table string) *tagIndex { t.ID = field.NewUint32(table, "tag_id") t.Name = field.NewString(table, "tag_name") t.Cat = field.NewInt8(table, "tag_cat") - t.Type = field.NewInt8(table, "tag_type") + t.Type = field.NewUint8(table, "tag_type") t.Results = field.NewUint32(table, "tag_results") t.CreatedTime = field.NewUint32(table, "tag_dateline") t.UpdatedTime = field.NewUint32(table, "tag_lasttouch") diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 4fb042bc5..e27fe4cfb 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -142,6 +142,8 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( original := *collectionSubject + relatedTags := slices.Clone(original.Tags()) + // Update subject collection s, err := update(ctx, collectionSubject) if err != nil { @@ -163,11 +165,18 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return err } - if s.Privacy() == collection.CollectPrivacyNone { - err = r.updateUserTags(ctx, userID, subject, at, s) - if err != nil { - return errgo.Trace(err) - } + relatedTags = append(relatedTags, s.Tags()...) + + err = r.updateUserTags(ctx, userID, subject, at, s) + if err != nil { + return errgo.Trace(err) + } + + err = r.q.Transaction(func(tx *query.Query) error { + return r.reCountSubjectTags(ctx, tx, subject, relatedTags) + }) + if err != nil { + return errgo.Trace(err) } r.updateSubject(ctx, subject.ID) @@ -175,13 +184,9 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( } //nolint:funlen -func (r mysqlRepo) updateUserTags( - ctx context.Context, - userID model.UserID, - subject model.Subject, - at time.Time, - s *collection.Subject, -) error { +func (r mysqlRepo) updateUserTags(ctx context.Context, + userID model.UserID, subject model.Subject, + at time.Time, s *collection.Subject) error { return r.q.Transaction(func(q *query.Query) error { tx := q.WithContext(ctx) @@ -189,15 +194,12 @@ func (r mysqlRepo) updateUserTags( _, err := tx.TagList.Where(q.TagList.UID.Eq(userID), q.TagList.Mid.Eq(subject.ID), q.TagList.Cat.Eq(model.TagCatSubject)).Delete() - if err != nil { - return errgo.Trace(err) - } - return r.reCountSubjectTags(ctx, q, subject.ID) + return errgo.Trace(err) } tags, err := tx.TagIndex.Select(). Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), - q.TagIndex.Type.Eq(int8(subject.TypeID))).Find() + q.TagIndex.Type.Eq(subject.TypeID)).Find() if err != nil { return errgo.Trace(err) } @@ -218,7 +220,7 @@ func (r mysqlRepo) updateUserTags( return &dao.TagIndex{ Name: item, Cat: model.TagCatSubject, - Type: int8(subject.TypeID), + Type: subject.TypeID, Results: 1, CreatedTime: uint32(at.Unix()), UpdatedTime: uint32(at.Unix()), @@ -232,7 +234,7 @@ func (r mysqlRepo) updateUserTags( tags, err = tx.TagIndex.Select(). Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), - q.TagIndex.Type.Eq(int8(subject.TypeID))).Find() + q.TagIndex.Type.Eq(subject.TypeID)).Find() if err != nil { return errgo.Trace(err) } @@ -252,31 +254,38 @@ func (r mysqlRepo) updateUserTags( return errgo.Trace(err) } - return r.reCountSubjectTags(ctx, q, subject.ID) + return nil }) } -func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, id model.SubjectID) error { +func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s model.Subject, relatedTags []string) error { + tagIndexs, err := tx.WithContext(ctx).TagIndex.Select(). + Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), tx.TagIndex.Type.Eq(s.TypeID)).Find() + if err != nil { + return err + } + db := tx.DB().WithContext(ctx) - err := db.Exec(` - update chii_tag_neue_index + err = db.Exec(` + update chii_tag_neue_index as ti set tag_results = ( select count(1) - from chii_tag_neue_list - where tlt_cat = ? AND tlt_tid = chii_tag_neue_index.tag_id and tlt_type = chii_tag_neue_index.tag_type + from chii_tag_neue_list as tl + where tl.tlt_cat = ti.tag_cat AND tl.tlt_tid = ti.tag_id and tl.tlt_type = ti.tag_type ) - where tag_cat = ? AND tag_id IN ( - select distinct tl.tlt_tid from chii_tag_neue_list as tl where tl.tlt_cat = ? and tl.tlt_mid = ? - ) - `, model.TagCatSubject, model.TagCatSubject, model.TagCatSubject, id).Error - + where ti.tag_cat = ? AND ti.tag_type = ? AND ti.tag_id IN ? + `, model.TagCatSubject, s.TypeID, + lo.Uniq(lo.Map(tagIndexs, func(item *dao.TagIndex, index int) uint32 { + return item.ID + })), + ).Error if err != nil { return errgo.Trace(err) } tagList, err := tx.WithContext(ctx).TagList.Preload(tx.TagList.Tag). - Where(tx.TagList.Cat.Eq(model.TagCatSubject), tx.TagList.Mid.Eq(id)).Find() + Where(tx.TagList.Cat.Eq(model.TagCatSubject), tx.TagList.Mid.Eq(s.ID)).Find() if err != nil { return errgo.Trace(err) } From f3845e50465f956db7667c53fff8d7357ed1a266 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 12:08:25 +0800 Subject: [PATCH 364/888] perf: improve tag count --- internal/collections/infra/mysql_repo.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e27fe4cfb..523b35553 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -165,7 +165,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return err } - relatedTags = append(relatedTags, s.Tags()...) + if slices.Equal(relatedTags, s.Tags()) { + relatedTags = nil + } else { + relatedTags = append(relatedTags, s.Tags()...) + } err = r.updateUserTags(ctx, userID, subject, at, s) if err != nil { @@ -259,6 +263,10 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, } func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s model.Subject, relatedTags []string) error { + if len(relatedTags) == 0 { + return nil + } + tagIndexs, err := tx.WithContext(ctx).TagIndex.Select(). Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), tx.TagIndex.Type.Eq(s.TypeID)).Find() if err != nil { From bb71dbb3965ba602db4f412c77e30a6ed76d3474 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 12:09:19 +0800 Subject: [PATCH 365/888] perf: improve tag count --- internal/collections/infra/mysql_repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 523b35553..c6da059c5 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -322,7 +322,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s mo return errgo.Wrap(err, "php.Marshal") } - _, err = tx.WithContext(ctx).SubjectField.Where(r.q.SubjectField.Sid.Eq(id)). + _, err = tx.WithContext(ctx).SubjectField.Where(r.q.SubjectField.Sid.Eq(s.ID)). UpdateSimple(r.q.SubjectField.Tags.Value(newTag)) return errgo.Wrap(err, "failed to update subject field") From 58c34705c9a6111e7695fb8335a57b0a5c3b7eab Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 12:16:58 +0800 Subject: [PATCH 366/888] perf: improve tag count --- internal/collections/infra/mysql_repo.go | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index c6da059c5..f630b5c11 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -143,6 +143,7 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( original := *collectionSubject relatedTags := slices.Clone(original.Tags()) + slices.Sort(relatedTags) // Update subject collection s, err := update(ctx, collectionSubject) @@ -154,21 +155,23 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(err) } - T := r.q.SubjectCollection if created { - err = errgo.Trace(T.WithContext(ctx).Create(obj)) + err = errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Clauses(clause.OnConflict{UpdateAll: true}).Create(obj)) } else { - err = errgo.Trace(T.WithContext(ctx).Save(obj)) + err = errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Save(obj)) } if err != nil { return err } - if slices.Equal(relatedTags, s.Tags()) { + newTags := slices.Clone(s.Tags()) + slices.Sort(newTags) + + if slices.Equal(relatedTags, newTags) { relatedTags = nil } else { - relatedTags = append(relatedTags, s.Tags()...) + relatedTags = lo.Uniq(append(relatedTags, newTags...)) } err = r.updateUserTags(ctx, userID, subject, at, s) @@ -176,11 +179,13 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(err) } - err = r.q.Transaction(func(tx *query.Query) error { - return r.reCountSubjectTags(ctx, tx, subject, relatedTags) - }) - if err != nil { - return errgo.Trace(err) + if len(relatedTags) != 0 { + err = r.q.Transaction(func(tx *query.Query) error { + return r.reCountSubjectTags(ctx, tx, subject, relatedTags) + }) + if err != nil { + return errgo.Trace(err) + } } r.updateSubject(ctx, subject.ID) @@ -263,10 +268,6 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, } func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s model.Subject, relatedTags []string) error { - if len(relatedTags) == 0 { - return nil - } - tagIndexs, err := tx.WithContext(ctx).TagIndex.Select(). Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), tx.TagIndex.Type.Eq(s.TypeID)).Find() if err != nil { From 2b0fb688b2216020b0b85f0b5250912b3b8e2fd9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 3 Oct 2024 12:18:34 +0800 Subject: [PATCH 367/888] style: lint --- internal/collections/infra/mysql_repo.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index f630b5c11..5b2f1b89a 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -118,6 +118,7 @@ func (r mysqlRepo) UpdateOrCreateSubjectCollection( return r.updateOrCreateSubjectCollection(ctx, userID, subject, at, ip, update, s) } +//nolint:funlen func (r mysqlRepo) updateOrCreateSubjectCollection( ctx context.Context, userID model.UserID, @@ -267,9 +268,12 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, }) } -func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s model.Subject, relatedTags []string) error { +//nolint:funlen +func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, + s model.Subject, relatedTags []string) error { tagIndexs, err := tx.WithContext(ctx).TagIndex.Select(). - Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), tx.TagIndex.Type.Eq(s.TypeID)).Find() + Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), + tx.TagIndex.Type.Eq(s.TypeID)).Find() if err != nil { return err } From 91c54b61b07641cdde60f90c4db8674d8d177652 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 17:14:19 +0800 Subject: [PATCH 368/888] fix: remove zero width tags (#641) --- .github/workflows/test.yaml | 5 ----- internal/collections/infra/mysql_repo.go | 9 +++++++++ internal/pkg/dam/dam.go | 2 ++ internal/subject/mysq_repository_compat.go | 5 +++-- web/req/collection.go | 6 ++++++ 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a91f69108..7b0cd4321 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -59,11 +59,6 @@ jobs: - run: bash $HOME/dev-env/wait_mysql_ready.sh - - name: Check Gorm gen - run: | - task gorm - git diff --exit-code - - name: Run tests run: task coverage env: diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 5b2f1b89a..51265b07e 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -38,6 +38,7 @@ import ( "github.com/bangumi/server/internal/collections" "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/gstr" "github.com/bangumi/server/internal/subject" ) @@ -306,6 +307,14 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, var count = make(map[string]int) for _, tag := range tagList { + if len(tag.Tag.Name) == 0 { + continue + } + + if dam.ZeroWithPattern.MatchString(tag.Tag.Name) { + continue + } + count[tag.Tag.Name]++ } diff --git a/internal/pkg/dam/dam.go b/internal/pkg/dam/dam.go index 81eb59dd0..6191fb021 100644 --- a/internal/pkg/dam/dam.go +++ b/internal/pkg/dam/dam.go @@ -96,3 +96,5 @@ func AllPrintableChar(text string) bool { return true } + +var ZeroWithPattern = regexp.MustCompile(`\p{Cf}|\p{Cc}|\p{Co}`) diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index 01a700445..4f5c203e8 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -23,8 +23,9 @@ import ( ) type Tag struct { - Name *string `php:"tag_name"` - Count int `php:"result,string"` + Name *string `php:"tag_name"` + Count int `php:"result,string"` + TotalCount int `php:"tag_results,string"` } func ParseTags(b []byte) ([]model.Tag, error) { diff --git a/web/req/collection.go b/web/req/collection.go index 4387fd3d6..8e4193698 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -51,6 +51,12 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { if !lo.EveryBy(v.Tags, dam.AllPrintableChar) { return res.BadRequest("invisible character are included in tags") } + + if lo.ContainsBy(v.Tags, func(item string) bool { + return len(item) == 0 + }) { + return res.BadRequest("zero length tags are included in tags") + } } if v.Comment.Set { From 5d647f28348489899dc1b447b185a168da4c10c5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 17:40:55 +0800 Subject: [PATCH 369/888] build: upgrade deps --- dal/dao/chii_members.gen.go | 6 +-- dal/query/chii_members.gen.go | 24 ++++++------ go.mod | 35 ++++++++--------- go.sum | 71 +++++++++++++++++++---------------- 4 files changed, 71 insertions(+), 65 deletions(-) diff --git a/dal/dao/chii_members.gen.go b/dal/dao/chii_members.gen.go index 56748c034..b5cdebd31 100644 --- a/dal/dao/chii_members.gen.go +++ b/dal/dao/chii_members.gen.go @@ -15,21 +15,21 @@ type Member struct { ID uint32 `gorm:"column:uid;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` Username string `gorm:"column:username;type:char(15);not null" json:""` Nickname string `gorm:"column:nickname;type:varchar(30);not null" json:""` - PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null" json:""` Avatar string `gorm:"column:avatar;type:varchar(255);not null" json:""` Groupid uint8 `gorm:"column:groupid;type:smallint(6) unsigned;not null" json:""` Regdate int64 `gorm:"column:regdate;type:int(10) unsigned;not null" json:""` Lastvisit uint32 `gorm:"column:lastvisit;type:int(10) unsigned;not null" json:""` Lastactivity uint32 `gorm:"column:lastactivity;type:int(10) unsigned;not null" json:""` Lastpost uint32 `gorm:"column:lastpost;type:int(10) unsigned;not null" json:""` - Email string `gorm:"column:email;type:char(50);not null" json:""` Dateformat string `gorm:"column:dateformat;type:char(10);not null" json:""` Timeformat bool `gorm:"column:timeformat;type:tinyint(1);not null" json:""` Timeoffset string `gorm:"column:timeoffset;type:char(4);not null" json:""` Newpm bool `gorm:"column:newpm;type:tinyint(1);not null" json:""` NewNotify uint16 `gorm:"column:new_notify;type:smallint(6) unsigned;not null;comment:新提醒" json:""` // 新提醒 - Acl string `gorm:"column:acl;type:mediumtext;not null" json:""` Sign utiltype.HTMLEscapedString `gorm:"column:sign;type:varchar(255);not null" json:""` + PasswordCrypt []byte `gorm:"column:password_crypt;type:char(64);not null" json:""` + Email string `gorm:"column:email;type:char(50);not null" json:""` + Acl string `gorm:"column:acl;type:mediumtext;not null" json:""` Fields MemberField `gorm:"foreignKey:uid;references:uid" json:"fields"` } diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index 525531682..23de42ee5 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -30,21 +30,21 @@ func newMember(db *gorm.DB, opts ...gen.DOOption) member { _member.ID = field.NewUint32(tableName, "uid") _member.Username = field.NewString(tableName, "username") _member.Nickname = field.NewString(tableName, "nickname") - _member.PasswordCrypt = field.NewBytes(tableName, "password_crypt") _member.Avatar = field.NewString(tableName, "avatar") _member.Groupid = field.NewUint8(tableName, "groupid") _member.Regdate = field.NewInt64(tableName, "regdate") _member.Lastvisit = field.NewUint32(tableName, "lastvisit") _member.Lastactivity = field.NewUint32(tableName, "lastactivity") _member.Lastpost = field.NewUint32(tableName, "lastpost") - _member.Email = field.NewString(tableName, "email") _member.Dateformat = field.NewString(tableName, "dateformat") _member.Timeformat = field.NewBool(tableName, "timeformat") _member.Timeoffset = field.NewString(tableName, "timeoffset") _member.Newpm = field.NewBool(tableName, "newpm") _member.NewNotify = field.NewUint16(tableName, "new_notify") - _member.Acl = field.NewString(tableName, "acl") _member.Sign = field.NewField(tableName, "sign") + _member.PasswordCrypt = field.NewBytes(tableName, "password_crypt") + _member.Email = field.NewString(tableName, "email") + _member.Acl = field.NewString(tableName, "acl") _member.Fields = memberHasOneFields{ db: db.Session(&gorm.Session{}), @@ -63,21 +63,21 @@ type member struct { ID field.Uint32 Username field.String Nickname field.String - PasswordCrypt field.Bytes Avatar field.String Groupid field.Uint8 Regdate field.Int64 Lastvisit field.Uint32 Lastactivity field.Uint32 Lastpost field.Uint32 - Email field.String Dateformat field.String Timeformat field.Bool Timeoffset field.String Newpm field.Bool NewNotify field.Uint16 // 新提醒 - Acl field.String Sign field.Field + PasswordCrypt field.Bytes + Email field.String + Acl field.String Fields memberHasOneFields fieldMap map[string]field.Expr @@ -98,21 +98,21 @@ func (m *member) updateTableName(table string) *member { m.ID = field.NewUint32(table, "uid") m.Username = field.NewString(table, "username") m.Nickname = field.NewString(table, "nickname") - m.PasswordCrypt = field.NewBytes(table, "password_crypt") m.Avatar = field.NewString(table, "avatar") m.Groupid = field.NewUint8(table, "groupid") m.Regdate = field.NewInt64(table, "regdate") m.Lastvisit = field.NewUint32(table, "lastvisit") m.Lastactivity = field.NewUint32(table, "lastactivity") m.Lastpost = field.NewUint32(table, "lastpost") - m.Email = field.NewString(table, "email") m.Dateformat = field.NewString(table, "dateformat") m.Timeformat = field.NewBool(table, "timeformat") m.Timeoffset = field.NewString(table, "timeoffset") m.Newpm = field.NewBool(table, "newpm") m.NewNotify = field.NewUint16(table, "new_notify") - m.Acl = field.NewString(table, "acl") m.Sign = field.NewField(table, "sign") + m.PasswordCrypt = field.NewBytes(table, "password_crypt") + m.Email = field.NewString(table, "email") + m.Acl = field.NewString(table, "acl") m.fillFieldMap() @@ -141,21 +141,21 @@ func (m *member) fillFieldMap() { m.fieldMap["uid"] = m.ID m.fieldMap["username"] = m.Username m.fieldMap["nickname"] = m.Nickname - m.fieldMap["password_crypt"] = m.PasswordCrypt m.fieldMap["avatar"] = m.Avatar m.fieldMap["groupid"] = m.Groupid m.fieldMap["regdate"] = m.Regdate m.fieldMap["lastvisit"] = m.Lastvisit m.fieldMap["lastactivity"] = m.Lastactivity m.fieldMap["lastpost"] = m.Lastpost - m.fieldMap["email"] = m.Email m.fieldMap["dateformat"] = m.Dateformat m.fieldMap["timeformat"] = m.Timeformat m.fieldMap["timeoffset"] = m.Timeoffset m.fieldMap["newpm"] = m.Newpm m.fieldMap["new_notify"] = m.NewNotify - m.fieldMap["acl"] = m.Acl m.fieldMap["sign"] = m.Sign + m.fieldMap["password_crypt"] = m.PasswordCrypt + m.fieldMap["email"] = m.Email + m.fieldMap["acl"] = m.Acl } diff --git a/go.mod b/go.mod index e2a17663e..d322a6b90 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/bangumi/server -go 1.22 +go 1.22.0 -toolchain go1.22.2 +toolchain go1.22.6 require ( github.com/avast/retry-go/v4 v4.6.0 @@ -35,7 +35,7 @@ require ( github.com/trim21/pkg v0.0.3 go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.27.0 + golang.org/x/crypto v0.28.0 google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 @@ -49,45 +49,46 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect - github.com/BurntSushi/toml v1.2.1 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.3 // indirect + github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.17.9 // indirect + github.com/klauspost/compress v1.17.10 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/common v0.60.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect go.uber.org/dig v1.18.0 // indirect - go.uber.org/multierr v1.10.0 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.28.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/mod v0.21.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect - gorm.io/datatypes v1.2.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/text v0.19.0 // indirect + golang.org/x/time v0.7.0 // indirect + golang.org/x/tools v0.26.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect + gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index e4d505731..9f5584fa4 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,9 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= @@ -82,8 +83,8 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= -github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= +github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -147,6 +148,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= @@ -185,10 +188,12 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= -github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA= -github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= +github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= +github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= +github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= @@ -218,8 +223,8 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0= +github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -316,8 +321,8 @@ github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -346,8 +351,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= +github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -449,8 +454,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= -go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= @@ -465,8 +470,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -477,8 +482,8 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -501,8 +506,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -545,8 +550,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -561,12 +566,12 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -583,8 +588,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -597,8 +602,8 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -646,8 +651,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/datatypes v1.2.0 h1:5YT+eokWdIxhJgWHdrb2zYUimyk0+TaFth+7a0ybzco= -gorm.io/datatypes v1.2.0/go.mod h1:o1dh0ZvjIjhH/bngTpypG6lVRJ5chTBxE09FH/71k04= +gorm.io/datatypes v1.2.2 h1:sdn7ZmG4l7JWtMDUb3L98f2Ym7CO5F8mZLlrQJMfF9g= +gorm.io/datatypes v1.2.2/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= From 5f5a514fa952bfad8e681f7d5d876ce0c9f55259 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 17:53:56 +0800 Subject: [PATCH 370/888] fix: tag total count --- internal/collections/infra/mysql_repo.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 51265b07e..2eed15027 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -305,6 +305,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, } var count = make(map[string]int) + var countMap = make(map[string]uint32) for _, tag := range tagList { if len(tag.Tag.Name) == 0 { @@ -316,14 +317,16 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, } count[tag.Tag.Name]++ + countMap[tag.Tag.Name] = tag.Tag.Results } var phpTags = make([]subject.Tag, 0, len(count)) for name, c := range count { phpTags = append(phpTags, subject.Tag{ - Name: lo.ToPtr(name), - Count: c, + Name: lo.ToPtr(name), + Count: c, + TotalCount: int(countMap[name]), }) } From 69c70dea0afa43b48a5af1fd7b6b1fa16a624185 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 18:11:42 +0800 Subject: [PATCH 371/888] fix: check tags --- internal/collections/infra/mysql_repo.go | 6 +----- internal/pkg/dam/dam.go | 19 ++++++++++++++++++- web/req/collection.go | 15 ++++----------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 2eed15027..5b1f82c9e 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -308,11 +308,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, var countMap = make(map[string]uint32) for _, tag := range tagList { - if len(tag.Tag.Name) == 0 { - continue - } - - if dam.ZeroWithPattern.MatchString(tag.Tag.Name) { + if !dam.ValidateTag(tag.Tag.Name) { continue } diff --git a/internal/pkg/dam/dam.go b/internal/pkg/dam/dam.go index 6191fb021..ac525dabf 100644 --- a/internal/pkg/dam/dam.go +++ b/internal/pkg/dam/dam.go @@ -97,4 +97,21 @@ func AllPrintableChar(text string) bool { return true } -var ZeroWithPattern = regexp.MustCompile(`\p{Cf}|\p{Cc}|\p{Co}`) +var ZeroWidthPattern = regexp.MustCompile(`\p{Cf}|\p{Cc}|\p{Co}`) +var ExtraSpacePattern = regexp.MustCompile("[\u3000 ]") + +func ValidateTag(t string) bool { + if len(t) == 0 { + return false + } + + if !AllPrintableChar(t) { + return false + } + + if ExtraSpacePattern.MatchString(t) { + return false + } + + return true +} diff --git a/web/req/collection.go b/web/req/collection.go index 8e4193698..c2c6e3606 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -15,11 +15,10 @@ package req import ( + "fmt" "strings" "unicode/utf8" - "github.com/samber/lo" - "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/null" @@ -47,15 +46,9 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } } - if len(v.Tags) > 0 { - if !lo.EveryBy(v.Tags, dam.AllPrintableChar) { - return res.BadRequest("invisible character are included in tags") - } - - if lo.ContainsBy(v.Tags, func(item string) bool { - return len(item) == 0 - }) { - return res.BadRequest("zero length tags are included in tags") + for _, tag := range v.Tags { + if !dam.ValidateTag(tag) { + return res.BadRequest(fmt.Sprintf("invalid tag: %q", tag)) } } From f6b52f7d39856dfdf28566a613036e98b37e8d57 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 19:44:09 +0800 Subject: [PATCH 372/888] chore: log user tags --- internal/collections/infra/mysql_repo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 5b1f82c9e..1e1794a4c 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -198,6 +198,7 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( func (r mysqlRepo) updateUserTags(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, s *collection.Subject) error { + r.log.Info("user collections with tags", zap.Strings("tags", s.Tags())) return r.q.Transaction(func(q *query.Query) error { tx := q.WithContext(ctx) From a6cc30155460afddeeb848290e44730396ad7bb1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 20:05:43 +0800 Subject: [PATCH 373/888] chore: log user tags --- internal/collections/infra/mysql_repo.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 1e1794a4c..979cdfb00 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -20,6 +20,7 @@ import ( "errors" "fmt" "slices" + "strconv" "strings" "time" @@ -198,7 +199,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( func (r mysqlRepo) updateUserTags(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, s *collection.Subject) error { - r.log.Info("user collections with tags", zap.Strings("tags", s.Tags())) + r.log.Info("user collections with tags", zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { + ss := strconv.Quote(item) + return ss[1 : len(ss)-1] + }))) + return r.q.Transaction(func(q *query.Query) error { tx := q.WithContext(ctx) From 479d5420b635b59a88b872726129bae03952772e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 20:44:58 +0800 Subject: [PATCH 374/888] chore: log more data --- internal/collections/infra/mysql_repo.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 979cdfb00..7d20fb9bb 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -199,10 +199,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( func (r mysqlRepo) updateUserTags(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, s *collection.Subject) error { - r.log.Info("user collections with tags", zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { - ss := strconv.Quote(item) - return ss[1 : len(ss)-1] - }))) + r.log.Info("user collections with tags", zap.Uint32("user_id", userID), zap.Uint32("subject_id", subject.ID), + zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { + ss := strconv.Quote(item) + return ss[1 : len(ss)-1] + }))) return r.q.Transaction(func(q *query.Query) error { tx := q.WithContext(ctx) From 63ddc8f51e94f3de9678701eb38c075f54a63886 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 5 Oct 2024 20:58:10 +0800 Subject: [PATCH 375/888] chore: log more data --- internal/collections/infra/mysql_repo.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 7d20fb9bb..d981a1561 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -199,11 +199,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( func (r mysqlRepo) updateUserTags(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, s *collection.Subject) error { - r.log.Info("user collections with tags", zap.Uint32("user_id", userID), zap.Uint32("subject_id", subject.ID), - zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { - ss := strconv.Quote(item) - return ss[1 : len(ss)-1] - }))) + log := r.log.With(zap.Uint32("user_id", userID), zap.Uint32("subject_id", subject.ID)) + log.Info("user collections with tags", zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { + ss := strconv.Quote(item) + return ss[1 : len(ss)-1] + }))) return r.q.Transaction(func(q *query.Query) error { tx := q.WithContext(ctx) @@ -234,6 +234,7 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, } if len(missingTags) > 0 { + log.Info("create missing tags", zap.Strings("missing_tags", missingTags)) err = tx.TagIndex.Create(lo.Map(missingTags, func(item string, index int) *dao.TagIndex { return &dao.TagIndex{ Name: item, From b6924bdc89efcb1f8c8983dd913987fbf5be7c6c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 02:24:59 +0800 Subject: [PATCH 376/888] fix: run unicode NFKC on input --- go.mod | 2 +- internal/collections/domain/collection/subject.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d322a6b90..90c13749b 100644 --- a/go.mod +++ b/go.mod @@ -36,6 +36,7 @@ require ( go.uber.org/fx v1.22.2 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.28.0 + golang.org/x/text v0.19.0 google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 @@ -84,7 +85,6 @@ require ( golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.19.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 8fc8227ae..292ab709a 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -19,6 +19,7 @@ import ( "github.com/samber/lo" "github.com/trim21/errgo" + "golang.org/x/text/unicode/norm" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/model" @@ -135,6 +136,10 @@ func (s *Subject) UpdateTags(tags []string) error { return gerr.ErrInvisibleChar } + for i, tag := range tags { + tags[i] = norm.NFKC.String(tag) + } + s.tags = lo.Uniq(tags) return nil From 4bb6af64b948633204ccab25493d628e6d77d31c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 02:25:34 +0800 Subject: [PATCH 377/888] fix: run unicode NFKC on input --- internal/collections/domain/collection/subject.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 292ab709a..3534aca95 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -119,7 +119,7 @@ func (s *Subject) UpdateComment(comment string) error { return gerr.ErrInvisibleChar } - s.comment = comment + s.comment = norm.NFKC.String(comment) return nil } From e98bbddde3faf5e01e95adfa28bbbb193515379e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 02:40:38 +0800 Subject: [PATCH 378/888] metrics: add bucket --- internal/collections/infra/mysql_repo.go | 14 +++++++------- internal/metrics/metrics.go | 10 ++++++++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index d981a1561..6aa9ed514 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -290,13 +290,13 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, db := tx.DB().WithContext(ctx) err = db.Exec(` - update chii_tag_neue_index as ti - set tag_results = ( - select count(1) - from chii_tag_neue_list as tl - where tl.tlt_cat = ti.tag_cat AND tl.tlt_tid = ti.tag_id and tl.tlt_type = ti.tag_type - ) - where ti.tag_cat = ? AND ti.tag_type = ? AND ti.tag_id IN ? + update chii_tag_neue_index as ti + set tag_results = ( + select count(1) + from chii_tag_neue_list as tl + where tl.tlt_cat = ti.tag_cat AND tl.tlt_tid = ti.tag_id and tl.tlt_type = ti.tag_type + ) + where ti.tag_cat = ? AND ti.tag_type = ? AND ti.tag_id IN ? `, model.TagCatSubject, s.TypeID, lo.Uniq(lo.Map(tagIndexs, func(item *dao.TagIndex, index int) uint32 { return item.ID diff --git a/internal/metrics/metrics.go b/internal/metrics/metrics.go index 8e42118eb..9756532f9 100644 --- a/internal/metrics/metrics.go +++ b/internal/metrics/metrics.go @@ -45,7 +45,10 @@ var RequestHistogram = prometheus.NewHistogram(prometheus.HistogramOpts{ 0.200, 0.300, 0.500, - 1.000, + 1, + 2, + 5, + 10, }, }) @@ -68,6 +71,9 @@ var SQLHistogram = prometheus.NewHistogram(prometheus.HistogramOpts{ 0.200, 0.300, 0.500, - 1.000, + 1, + 2, + 5, + 10, }, }) From 612f70b377879181f401150e35a06a5c513b70ac Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 03:14:47 +0800 Subject: [PATCH 379/888] perf: improve collection type count --- a.sql | 12 ----- internal/collections/infra/mysql_repo.go | 66 +++++++++++++++++------- 2 files changed, 46 insertions(+), 32 deletions(-) delete mode 100644 a.sql diff --git a/a.sql b/a.sql deleted file mode 100644 index b120cf010..000000000 --- a/a.sql +++ /dev/null @@ -1,12 +0,0 @@ -update chii_tag_neue_index -set tag_results = (select count(1) - from chii_tag_neue_list AS tl1 - where tl1.tlt_cat = ? - AND tl1.tlt_tid = chii_tag_neue_index.tag_id - AND tl1.tlt_type = chii_tag_neue_index.tag_type) -where tag_cat = ? - AND tag_id IN (select distinct tl2.tlt_tid - from chii_tag_neue_list as tl2 - inner join chii_tag_neue_index as ti on ti.tag_id = tl2.tlt_tid - where tl2.tlt_cat = ? - and tl2.tlt_mid = ?) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 6aa9ed514..b4db3538e 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -29,6 +29,7 @@ import ( "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen" + "gorm.io/gen/field" "gorm.io/gorm" "gorm.io/gorm/clause" @@ -528,26 +529,51 @@ func (r mysqlRepo) updateSubject(ctx context.Context, subjectID model.SubjectID) } func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model.SubjectID) error { - err := r.q.DB().WithContext(ctx).Exec(` - update chii_subjects - set subject_wish = (select count(1) - from chii_subject_interests - where interest_type = 1 and interest_subject_id = subject_id), - subject_collect = (select count(1) - from chii_subject_interests - where interest_type = 2 and interest_subject_id = subject_id), - subject_doing = (select count(1) - from chii_subject_interests - where interest_type = 3 and interest_subject_id = subject_id), - subject_on_hold = (select count(1) - from chii_subject_interests - where interest_type = 4 and interest_subject_id = subject_id), - subject_dropped = (select count(1) - from chii_subject_interests - where interest_type = 5 and interest_subject_id = subject_id) - where chii_subjects.subject_id = ? -`, subjectID).Error - return errgo.Trace(err) + return r.q.Transaction(func(tx *query.Query) error { + var counts = make([]struct { + Type uint8 `gorm:"type"` + Total uint32 `gorm:"total"` + }, 5) + + for i, t := range []collection.SubjectCollection{ + collection.SubjectCollectionDropped, + collection.SubjectCollectionDoing, + collection.SubjectCollectionDone, + collection.SubjectCollectionDropped, + collection.SubjectCollectionWish, + } { + err := tx.DB().WithContext(ctx).Exec(` + select interest_type as type, count(1) as total from chii_subject_interests + where interest_subject_id = ? and interest_type = ? + `, subjectID, t).Scan(&counts[i]).Error + if err != nil { + return errgo.Wrap(err, "dal") + } + } + + var updater = make([]field.AssignExpr, 0, 5) + for _, count := range counts { + switch collection.SubjectCollection(count.Type) { //nolint:exhaustive + case collection.SubjectCollectionDropped: + updater = append(updater, r.q.Subject.Dropped.Value(count.Total)) + + case collection.SubjectCollectionWish: + updater = append(updater, r.q.Subject.Wish.Value(count.Total)) + + case collection.SubjectCollectionDoing: + updater = append(updater, r.q.Subject.Doing.Value(count.Total)) + + case collection.SubjectCollectionOnHold: + updater = append(updater, r.q.Subject.OnHold.Value(count.Total)) + + case collection.SubjectCollectionDone: + updater = append(updater, r.q.Subject.Done.Value(count.Total)) + } + } + + _, err := tx.Subject.WithContext(ctx).Where(r.q.Subject.ID.Eq(subjectID)).UpdateSimple(updater...) + return errgo.Wrap(err, "dal") + }) } func (r mysqlRepo) updateCollectionTime(obj *dao.SubjectCollection, From 67c6567222bd40dfc902e655a35e4be0e9f6c36a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 03:19:01 +0800 Subject: [PATCH 380/888] fix: remove meanless perf --- internal/collections/infra/mysql_repo.go | 39 +++++++++++------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index b4db3538e..a8ac30911 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -529,26 +529,19 @@ func (r mysqlRepo) updateSubject(ctx context.Context, subjectID model.SubjectID) } func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model.SubjectID) error { + var counts []struct { + Type uint8 `gorm:"type"` + Total uint32 `gorm:"total"` + } + return r.q.Transaction(func(tx *query.Query) error { - var counts = make([]struct { - Type uint8 `gorm:"type"` - Total uint32 `gorm:"total"` - }, 5) - - for i, t := range []collection.SubjectCollection{ - collection.SubjectCollectionDropped, - collection.SubjectCollectionDoing, - collection.SubjectCollectionDone, - collection.SubjectCollectionDropped, - collection.SubjectCollectionWish, - } { - err := tx.DB().WithContext(ctx).Exec(` - select interest_type as type, count(1) as total from chii_subject_interests - where interest_subject_id = ? and interest_type = ? - `, subjectID, t).Scan(&counts[i]).Error - if err != nil { - return errgo.Wrap(err, "dal") - } + err := tx.DB().WithContext(ctx).Exec(` + select interest_type as type, count(interest_type) as total from chii_subject_interests + where interest_subject_id = ? + group by interest_type + `, subjectID).Scan(&counts).Error + if err != nil { + return errgo.Wrap(err, "dal") } var updater = make([]field.AssignExpr, 0, 5) @@ -571,8 +564,12 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model } } - _, err := tx.Subject.WithContext(ctx).Where(r.q.Subject.ID.Eq(subjectID)).UpdateSimple(updater...) - return errgo.Wrap(err, "dal") + _, err = tx.Subject.WithContext(ctx).Where(r.q.Subject.ID.Eq(subjectID)).UpdateSimple(updater...) + if err != nil { + return errgo.Wrap(err, "dal") + } + + return nil }) } From 73f71d11ef821c068a43da3173db794984f741d1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 13:47:26 +0800 Subject: [PATCH 381/888] fix: sql syntax error --- internal/collections/infra/mysql_repo.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index a8ac30911..29b095083 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -535,8 +535,8 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model } return r.q.Transaction(func(tx *query.Query) error { - err := tx.DB().WithContext(ctx).Exec(` - select interest_type as type, count(interest_type) as total from chii_subject_interests + err := tx.DB().WithContext(ctx).Exec(`select interest_type as type, count(interest_type) as total + from chii_subject_interests where interest_subject_id = ? group by interest_type `, subjectID).Scan(&counts).Error From eaa719a06db8f436b3615edb827a10213764bfa3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 13:57:25 +0800 Subject: [PATCH 382/888] chore: log sql to debug level --- dal/new.go | 5 ++--- internal/collections/infra/mysql_repo.go | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/dal/new.go b/dal/new.go index 35de32e5a..bef0f170b 100644 --- a/dal/new.go +++ b/dal/new.go @@ -16,10 +16,9 @@ package dal import ( "database/sql" - "log" - "os" "github.com/trim21/errgo" + "go.uber.org/zap" "gorm.io/driver/mysql" "gorm.io/gorm" gormLogger "gorm.io/gorm/logger" @@ -33,7 +32,7 @@ func NewDB(conn *sql.DB, c config.AppConfig) (*gorm.DB, error) { if c.Debug.Gorm { logger.Info("enable gorm debug mode, will log all sql") gLog = gormLogger.New( - log.New(os.Stdout, "\r\n", log.LstdFlags), + logger.StdAt(zap.DebugLevel), gormLogger.Config{ LogLevel: gormLogger.Info, IgnoreRecordNotFoundError: true, diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 29b095083..a8ac30911 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -535,8 +535,8 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model } return r.q.Transaction(func(tx *query.Query) error { - err := tx.DB().WithContext(ctx).Exec(`select interest_type as type, count(interest_type) as total - from chii_subject_interests + err := tx.DB().WithContext(ctx).Exec(` + select interest_type as type, count(interest_type) as total from chii_subject_interests where interest_subject_id = ? group by interest_type `, subjectID).Scan(&counts).Error From 9a3612abf179cd1805a0734a34f89271f1373b20 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 14:05:06 +0800 Subject: [PATCH 383/888] chore: log more data --- internal/collections/infra/mysql_repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index a8ac30911..25ac4a00c 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -524,7 +524,7 @@ func (r mysqlRepo) GetSubjectEpisodesCollection( func (r mysqlRepo) updateSubject(ctx context.Context, subjectID model.SubjectID) { if err := r.reCountSubjectCollection(ctx, subjectID); err != nil { - r.log.Error("failed to update collection counts", zap.Error(err)) + r.log.Error("failed to update collection counts", zap.Error(err), zap.Uint32("subject_id", subjectID)) } } From 6e5ef19d2fcd7c0040475312036ad94b6bd6ff00 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 14:15:07 +0800 Subject: [PATCH 384/888] fix sql --- internal/collections/infra/mysql_repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 25ac4a00c..c325be18f 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -535,7 +535,7 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model } return r.q.Transaction(func(tx *query.Query) error { - err := tx.DB().WithContext(ctx).Exec(` + err := tx.DB().WithContext(ctx).Raw(` select interest_type as type, count(interest_type) as total from chii_subject_interests where interest_subject_id = ? group by interest_type From d947dbb356abeda3c1c78f08b8451e949216837d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 6 Oct 2024 14:37:14 +0800 Subject: [PATCH 385/888] minor refactor --- internal/collections/infra/mysql_repo.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index c325be18f..51f632247 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -546,7 +546,10 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model var updater = make([]field.AssignExpr, 0, 5) for _, count := range counts { - switch collection.SubjectCollection(count.Type) { //nolint:exhaustive + switch collection.SubjectCollection(count.Type) { + case collection.SubjectCollectionAll: + continue + case collection.SubjectCollectionDropped: updater = append(updater, r.q.Subject.Dropped.Value(count.Total)) From 7c65126da152502d9b15d3983099018b7a583c34 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 7 Oct 2024 20:15:40 +0800 Subject: [PATCH 386/888] fix: filter zero width unicode in tags --- internal/pkg/dam/dam.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/pkg/dam/dam.go b/internal/pkg/dam/dam.go index ac525dabf..2c2ebe24e 100644 --- a/internal/pkg/dam/dam.go +++ b/internal/pkg/dam/dam.go @@ -97,7 +97,7 @@ func AllPrintableChar(text string) bool { return true } -var ZeroWidthPattern = regexp.MustCompile(`\p{Cf}|\p{Cc}|\p{Co}`) +var ZeroWidthPattern = regexp.MustCompile(`[^\t\r\n\p{L}\p{M}\p{N}\p{P}\p{S}\p{Z}]`) var ExtraSpacePattern = regexp.MustCompile("[\u3000 ]") func ValidateTag(t string) bool { @@ -109,6 +109,10 @@ func ValidateTag(t string) bool { return false } + if ZeroWidthPattern.MatchString(t) { + return false + } + if ExtraSpacePattern.MatchString(t) { return false } From 4efaf8e49fa5cfeb92c97741bb293d63338dcdf1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 7 Oct 2024 20:17:58 +0800 Subject: [PATCH 387/888] fix: filter zero width unicode in tags --- web/req/collection.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/web/req/collection.go b/web/req/collection.go index c2c6e3606..f715d753c 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -19,6 +19,9 @@ import ( "strings" "unicode/utf8" + "github.com/samber/lo" + "golang.org/x/text/unicode/norm" + "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/null" @@ -46,6 +49,10 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } } + v.Tags = lo.Map(v.Tags, func(item string, index int) string { + return norm.NFKC.String(item) + }) + for _, tag := range v.Tags { if !dam.ValidateTag(tag) { return res.BadRequest(fmt.Sprintf("invalid tag: %q", tag)) @@ -53,11 +60,12 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } if v.Comment.Set { + v.Comment.Value = norm.NFKC.String(v.Comment.Value) + v.Comment.Value = strings.TrimSpace(v.Comment.Value) if !dam.AllPrintableChar(v.Comment.Value) { return res.BadRequest("invisible character are included in comment") } - v.Comment.Value = strings.TrimSpace(v.Comment.Value) if utf8.RuneCountInString(v.Comment.Value) > 380 { return res.BadRequest("comment too long, only allow less equal than 380 characters") } From 607d1887c9df7eb8c423808845e23b30cd27d740 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 7 Oct 2024 20:22:33 +0800 Subject: [PATCH 388/888] tests: fix --- web/req/collection.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/req/collection.go b/web/req/collection.go index f715d753c..5d86ef65d 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -49,9 +49,11 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } } - v.Tags = lo.Map(v.Tags, func(item string, index int) string { - return norm.NFKC.String(item) - }) + if v.Tags != nil { + v.Tags = lo.Map(v.Tags, func(item string, index int) string { + return norm.NFKC.String(item) + }) + } for _, tag := range v.Tags { if !dam.ValidateTag(tag) { From aa16d090121c93921bde6dce14d17a7e2c91bfc0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 7 Oct 2024 20:27:00 +0800 Subject: [PATCH 389/888] fix: dam should match string case insenstive --- internal/pkg/dam/dam.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/internal/pkg/dam/dam.go b/internal/pkg/dam/dam.go index 2c2ebe24e..719577802 100644 --- a/internal/pkg/dam/dam.go +++ b/internal/pkg/dam/dam.go @@ -16,7 +16,6 @@ package dam import ( "regexp" - "strings" "unicode" "github.com/trim21/errgo" @@ -34,21 +33,21 @@ func New(c config.AppConfig) (Dam, error) { var cc Dam var err error if c.NsfwWord != "" { - cc.nsfwWord, err = regexp.Compile(c.NsfwWord) + cc.nsfwWord, err = regexp.Compile("(?i)" + c.NsfwWord) if err != nil { return Dam{}, errgo.Wrap(err, "nsfw_word") } } if c.DisableWords != "" { - cc.disableWord, err = regexp.Compile(c.DisableWords) + cc.disableWord, err = regexp.Compile("(?i)" + c.DisableWords) if err != nil { return Dam{}, errgo.Wrap(err, "disable_words") } } if c.BannedDomain != "" { - cc.bannedDomain, err = regexp.Compile(c.BannedDomain) + cc.bannedDomain, err = regexp.Compile("(?i)" + c.BannedDomain) if err != nil { return Dam{}, errgo.Wrap(err, "banned_domain") } @@ -65,8 +64,6 @@ func (d Dam) NeedReview(text string) bool { return false } - text = strings.ToLower(text) - return d.disableWord.MatchString(text) } From 6bcf1c2d1d353dd75c4d8cd43e12a40e2e2c7cd3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 8 Oct 2024 22:18:37 +0800 Subject: [PATCH 390/888] fix: only allow len(tag) >= 2 --- web/req/collection.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/req/collection.go b/web/req/collection.go index 5d86ef65d..ae4cc4a30 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -56,6 +56,10 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } for _, tag := range v.Tags { + if utf8.RuneCountInString(tag) < 2 { + return res.BadRequest("tag 最短为两个字") + } + if !dam.ValidateTag(tag) { return res.BadRequest(fmt.Sprintf("invalid tag: %q", tag)) } From bc39402e35aae3a2c9b9184e063199fa39781b5c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 8 Oct 2024 22:27:16 +0800 Subject: [PATCH 391/888] tests: fix --- web/handler/user/patch_subject_collection_test.go | 6 +++--- web/handler/user/post_subject_collection_test.go | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 25c59234d..86c3ab3b2 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -80,14 +80,14 @@ func TestUser_PatchSubjectCollection(t *testing.T) { "type": 2, "private": true, "rate": 8, - "tags": []string{"q", "vv"}, + "tags": []string{"qq", "vv"}, }). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusNoContent) require.Equal(t, collection.CollectPrivacySelf, s.Privacy()) require.Equal(t, "1 test_content 2", s.Comment()) - require.EqualValues(t, []string{"q", "vv"}, s.Tags()) + require.EqualValues(t, []string{"qq", "vv"}, s.Tags()) require.EqualValues(t, 8, s.Rate()) } @@ -118,7 +118,7 @@ func TestUser_PatchToNonExistsSubjectCollection(t *testing.T) { "type": 1, "private": true, "rate": 8, - "tags": []string{"q", "vv"}, + "tags": []string{"qq", "vv"}, }). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusNotFound) diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index c4a9cb99f..32dc5ea6b 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -78,14 +78,14 @@ func TestUser_PostSubjectCollection(t *testing.T) { "type": 2, "private": true, "rate": 8, - "tags": []string{"q", "vv"}, + "tags": []string{"qq", "vv"}, }). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusAccepted) require.Equal(t, collection.CollectPrivacySelf, s.Privacy()) require.Equal(t, "1 test_content 2", s.Comment()) - require.EqualValues(t, []string{"q", "vv"}, s.Tags()) + require.EqualValues(t, []string{"qq", "vv"}, s.Tags()) require.EqualValues(t, 8, s.Rate()) } @@ -151,12 +151,12 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). BodyJSON(map[string]any{ - "tags": []string{"q", "vv"}, + "tags": []string{"qq", "vv"}, }). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusAccepted) - require.EqualValues(t, []string{"q", "vv"}, s.Tags()) + require.EqualValues(t, []string{"qq", "vv"}, s.Tags()) } func TestUser_PostSubjectCollection_badID(t *testing.T) { From a092c1332501b2ba196ccb943c302420570bca63 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 9 Oct 2024 19:48:06 +0800 Subject: [PATCH 392/888] fix: avoid tag split in to multiple tags by case --- internal/collections/infra/mysql_repo.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 51f632247..af0b2b01f 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -224,12 +224,12 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, } var existsTags = lo.SliceToMap(tags, func(item *dao.TagIndex) (string, bool) { - return item.Name, true + return strings.ToLower(item.Name), true }) var missingTags []string for _, tag := range s.Tags() { - if !existsTags[tag] { + if !existsTags[strings.ToLower(tag)] { missingTags = append(missingTags, tag) } } @@ -282,12 +282,27 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, s model.Subject, relatedTags []string) error { tagIndexs, err := tx.WithContext(ctx).TagIndex.Select(). - Where(tx.TagIndex.Cat.Eq(model.TagCatSubject), tx.TagIndex.Name.In(relatedTags...), - tx.TagIndex.Type.Eq(s.TypeID)).Find() + Where( + tx.TagIndex.Cat.Eq(model.TagCatSubject), + tx.TagIndex.Name.In(relatedTags...), + tx.TagIndex.Type.Eq(s.TypeID), + ).Order(tx.TagIndex.ID.Asc()).Find() if err != nil { return err } + // tag in (...) 操作不区分大小写,使用第一次出现的 tag + // 比如 {name="Galgame"} {name="galgame"} 在过滤后会只保留 {name="Galgame"} + seen := make(map[string]bool) + tagIndexs = lo.Filter(tagIndexs, func(item *dao.TagIndex, index int) bool { + n := strings.ToLower(item.Name) + if seen[n] { + return false + } + seen[n] = true + return true + }) + db := tx.DB().WithContext(ctx) err = db.Exec(` From 3ef1e88817c5865119791b1a72006640e52a2b57 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 9 Oct 2024 19:51:23 +0800 Subject: [PATCH 393/888] ci: force golang version --- .github/workflows/build.yaml | 3 +++ .github/workflows/lint-review.yaml | 3 +++ .github/workflows/lint.yaml | 3 +++ .github/workflows/release-docker.yaml | 3 +++ .github/workflows/release-openapi.yaml | 3 +++ .github/workflows/release.yaml | 3 +++ .github/workflows/test-openapi.yaml | 3 +++ .github/workflows/test.yaml | 3 +++ go.mod | 4 +--- 9 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 204e4058a..c8c0b5006 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -24,6 +24,9 @@ on: - "**.go.json" - "etc/Dockerfile" +env: + GOTOOLCHAIN: "local" + jobs: docker: runs-on: ubuntu-24.04 diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 066941984..eba0e7e82 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -8,6 +8,9 @@ on: permissions: contents: read +env: + GOTOOLCHAIN: "local" + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 78dce3e58..3ad959c20 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -22,6 +22,9 @@ on: - ".golangci.yaml" - ".github/workflows/lint.yaml" +env: + GOTOOLCHAIN: "local" + jobs: lint: runs-on: ubuntu-24.04 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 92499f354..d884e8538 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -10,6 +10,9 @@ on: permissions: packages: write +env: + GOTOOLCHAIN: "local" + jobs: docker: name: "docker" diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 9604a4afc..0b575dddc 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -6,6 +6,9 @@ on: - "v*.*.*" workflow_dispatch: +env: + GOTOOLCHAIN: "local" + jobs: openapi: runs-on: ubuntu-24.04 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a8d424a6e..dffbf0816 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -5,6 +5,9 @@ on: tags: - "v*.*.*" +env: + GOTOOLCHAIN: "local" + jobs: github: runs-on: ubuntu-24.04 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index e14032bc4..7eb0242c7 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -18,6 +18,9 @@ on: - "package-lock.json" - ".github/workflows/test-openapi.yaml" +env: + GOTOOLCHAIN: "local" + jobs: test: runs-on: "${{ matrix.os }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7b0cd4321..a469247d5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,6 +22,9 @@ on: - "**.go" - "**.go.json" +env: + GOTOOLCHAIN: "local" + jobs: test: runs-on: ubuntu-24.04 diff --git a/go.mod b/go.mod index 90c13749b..d976e61f7 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/bangumi/server -go 1.22.0 - -toolchain go1.22.6 +go 1.22.6 require ( github.com/avast/retry-go/v4 v4.6.0 From 494b3e936b8c736abfdd7248edacab35bb0b6858 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 9 Oct 2024 20:08:00 +0800 Subject: [PATCH 394/888] fix: only keep sanitized tags in user interest --- internal/collections/infra/mysql_repo.go | 148 +++++++++++------------ 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index af0b2b01f..924b73c74 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -20,6 +20,7 @@ import ( "errors" "fmt" "slices" + "sort" "strconv" "strings" "time" @@ -159,30 +160,28 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(err) } - if created { - err = errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Clauses(clause.OnConflict{UpdateAll: true}).Create(obj)) - } else { - err = errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Save(obj)) - } - - if err != nil { - return err - } - newTags := slices.Clone(s.Tags()) slices.Sort(newTags) + err = r.q.Transaction(func(tx *query.Query) error { + sanitizedTags, err := r.updateUserTags(ctx, tx, userID, subject, at, s) + if err != nil { + return errgo.Trace(err) + } + + sort.Strings(sanitizedTags) + + obj.Tag = strings.Join(sanitizedTags, " ") + + return errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Clauses(clause.OnConflict{UpdateAll: true}).Create(obj)) + }) + if slices.Equal(relatedTags, newTags) { relatedTags = nil } else { relatedTags = lo.Uniq(append(relatedTags, newTags...)) } - err = r.updateUserTags(ctx, userID, subject, at, s) - if err != nil { - return errgo.Trace(err) - } - if len(relatedTags) != 0 { err = r.q.Transaction(func(tx *query.Query) error { return r.reCountSubjectTags(ctx, tx, subject, relatedTags) @@ -198,84 +197,85 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( //nolint:funlen func (r mysqlRepo) updateUserTags(ctx context.Context, + q *query.Query, userID model.UserID, subject model.Subject, - at time.Time, s *collection.Subject) error { + at time.Time, s *collection.Subject) ([]string, error) { log := r.log.With(zap.Uint32("user_id", userID), zap.Uint32("subject_id", subject.ID)) log.Info("user collections with tags", zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { ss := strconv.Quote(item) return ss[1 : len(ss)-1] }))) - return r.q.Transaction(func(q *query.Query) error { - tx := q.WithContext(ctx) + tx := q.WithContext(ctx) - if (len(s.Tags())) == 0 { - _, err := tx.TagList.Where(q.TagList.UID.Eq(userID), - q.TagList.Mid.Eq(subject.ID), - q.TagList.Cat.Eq(model.TagCatSubject)).Delete() - return errgo.Trace(err) - } + if (len(s.Tags())) == 0 { + _, err := tx.TagList.Where(q.TagList.UID.Eq(userID), + q.TagList.Mid.Eq(subject.ID), + q.TagList.Cat.Eq(model.TagCatSubject)).Delete() + return nil, errgo.Trace(err) + } - tags, err := tx.TagIndex.Select(). - Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), - q.TagIndex.Type.Eq(subject.TypeID)).Find() - if err != nil { - return errgo.Trace(err) - } + tags, err := tx.TagIndex.Select(). + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), + q.TagIndex.Type.Eq(subject.TypeID)).Find() + if err != nil { + return nil, errgo.Trace(err) + } - var existsTags = lo.SliceToMap(tags, func(item *dao.TagIndex) (string, bool) { - return strings.ToLower(item.Name), true - }) + var existsTags = lo.SliceToMap(tags, func(item *dao.TagIndex) (string, bool) { + return strings.ToLower(item.Name), true + }) - var missingTags []string - for _, tag := range s.Tags() { - if !existsTags[strings.ToLower(tag)] { - missingTags = append(missingTags, tag) - } + var missingTags []string + for _, tag := range s.Tags() { + if !existsTags[strings.ToLower(tag)] { + missingTags = append(missingTags, tag) } + } - if len(missingTags) > 0 { - log.Info("create missing tags", zap.Strings("missing_tags", missingTags)) - err = tx.TagIndex.Create(lo.Map(missingTags, func(item string, index int) *dao.TagIndex { - return &dao.TagIndex{ - Name: item, - Cat: model.TagCatSubject, - Type: subject.TypeID, - Results: 1, - CreatedTime: uint32(at.Unix()), - UpdatedTime: uint32(at.Unix()), - } - })...) - - if err != nil { - return errgo.Trace(err) + if len(missingTags) > 0 { + log.Info("create missing tags", zap.Strings("missing_tags", missingTags)) + err = tx.TagIndex.Create(lo.Map(missingTags, func(item string, index int) *dao.TagIndex { + return &dao.TagIndex{ + Name: item, + Cat: model.TagCatSubject, + Type: subject.TypeID, + Results: 1, + CreatedTime: uint32(at.Unix()), + UpdatedTime: uint32(at.Unix()), } - } + })...) - tags, err = tx.TagIndex.Select(). - Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), - q.TagIndex.Type.Eq(subject.TypeID)).Find() if err != nil { - return errgo.Trace(err) + return nil, errgo.Trace(err) } + } - err = tx.TagList.Clauses(clause.OnConflict{DoNothing: true}). - Create(lo.Map(tags, func(item *dao.TagIndex, index int) *dao.TagList { - return &dao.TagList{ - Tid: item.ID, - UID: s.User(), - Cat: model.TagCatSubject, - Type: subject.TypeID, - Mid: subject.ID, - CreatedTime: uint32(at.Unix()), - } - })...) - if err != nil { - return errgo.Trace(err) - } + tags, err = tx.TagIndex.Select(). + Where(q.TagIndex.Name.In(s.Tags()...), q.TagIndex.Cat.Eq(model.TagCatSubject), + q.TagIndex.Type.Eq(subject.TypeID)).Find() + if err != nil { + return nil, errgo.Trace(err) + } + + err = tx.TagList.Clauses(clause.OnConflict{DoNothing: true}). + Create(lo.Map(tags, func(item *dao.TagIndex, index int) *dao.TagList { + return &dao.TagList{ + Tid: item.ID, + UID: s.User(), + Cat: model.TagCatSubject, + Type: subject.TypeID, + Mid: subject.ID, + CreatedTime: uint32(at.Unix()), + } + })...) + if err != nil { + return nil, errgo.Trace(err) + } - return nil - }) + return lo.Map(tags, func(item *dao.TagIndex, index int) string { + return item.Name + }), nil } //nolint:funlen From 5c70f955fbe133056dc45d48432baeee5b1ab2cc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 9 Oct 2024 20:12:52 +0800 Subject: [PATCH 395/888] fix lint --- internal/collections/infra/mysql_repo.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 924b73c74..9439102e5 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -164,9 +164,9 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( slices.Sort(newTags) err = r.q.Transaction(func(tx *query.Query) error { - sanitizedTags, err := r.updateUserTags(ctx, tx, userID, subject, at, s) - if err != nil { - return errgo.Trace(err) + sanitizedTags, txErr := r.updateUserTags(ctx, tx, userID, subject, at, s) + if txErr != nil { + return errgo.Trace(txErr) } sort.Strings(sanitizedTags) @@ -175,6 +175,9 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(r.q.SubjectCollection.WithContext(ctx).Clauses(clause.OnConflict{UpdateAll: true}).Create(obj)) }) + if err != nil { + return err + } if slices.Equal(relatedTags, newTags) { relatedTags = nil From b09774825b5c9971ba27f01d8fc75d543df79b95 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 10 Oct 2024 02:37:44 +0800 Subject: [PATCH 396/888] chore: remove some debug logging --- internal/collections/infra/mysql_repo.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 9439102e5..55c6562a4 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -21,7 +21,6 @@ import ( "fmt" "slices" "sort" - "strconv" "strings" "time" @@ -203,12 +202,6 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, q *query.Query, userID model.UserID, subject model.Subject, at time.Time, s *collection.Subject) ([]string, error) { - log := r.log.With(zap.Uint32("user_id", userID), zap.Uint32("subject_id", subject.ID)) - log.Info("user collections with tags", zap.Strings("tags", lo.Map(s.Tags(), func(item string, index int) string { - ss := strconv.Quote(item) - return ss[1 : len(ss)-1] - }))) - tx := q.WithContext(ctx) if (len(s.Tags())) == 0 { @@ -237,7 +230,7 @@ func (r mysqlRepo) updateUserTags(ctx context.Context, } if len(missingTags) > 0 { - log.Info("create missing tags", zap.Strings("missing_tags", missingTags)) + r.log.Info("create missing tags", zap.Strings("missing_tags", missingTags)) err = tx.TagIndex.Create(lo.Map(missingTags, func(item string, index int) *dao.TagIndex { return &dao.TagIndex{ Name: item, From 10ec95751e646a2f677616cd62dab305c493058f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 10 Oct 2024 18:27:21 +0800 Subject: [PATCH 397/888] build: upgrade golang to 1.23.1 --- go.mod | 5 +++-- go.sum | 8 ++++---- internal/collections/infra/mysql_repo_compat.go | 6 ++++-- internal/subject/mysq_repository_compat.go | 8 +++++--- internal/user/model.go | 8 +++++--- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index d976e61f7..c12045895 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.22.6 +go 1.23.1 require ( github.com/avast/retry-go/v4 v4.6.0 @@ -27,7 +27,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.3 - github.com/trim21/go-phpserialize v0.0.22 + github.com/trim21/go-phpserialize v0.1.0-alpha.3 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 @@ -79,6 +79,7 @@ require ( github.com/valyala/fasttemplate v1.2.2 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.8.0 // indirect diff --git a/go.sum b/go.sum index 9f5584fa4..018e8d75f 100644 --- a/go.sum +++ b/go.sum @@ -415,8 +415,8 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= -github.com/trim21/go-phpserialize v0.0.22 h1:gcs36ir5s3iPFtGrp+3uU/R1lO05Et0nuhaBdUahq0Y= -github.com/trim21/go-phpserialize v0.0.22/go.mod h1:BxWksx+mEAaKC+ekgfTHas1z25dEE3n0bZbAp+tsJUM= +github.com/trim21/go-phpserialize v0.1.0-alpha.3 h1:6Z09BQa5Sr3ODyWxOHVHeiGezkIxam2asocjJ2xkfQo= +github.com/trim21/go-phpserialize v0.1.0-alpha.3/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= @@ -429,8 +429,6 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/volatiletech/null/v9 v9.0.0 h1:JCdlHEiSRVxOi7/MABiEfdsqmuj9oTV20Ao7VvZ0JkE= -github.com/volatiletech/null/v9 v9.0.0/go.mod h1:zRFghPVahaiIMRXiUJrc6gsoG83Cm3ZoAfSTw7VHGQc= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -461,6 +459,8 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= +go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index bd95aba89..c4c5435d1 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -33,8 +33,10 @@ type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem func deserializePhpEpStatus(phpSerialized []byte) (mysqlEpCollection, error) { var e map[model.EpisodeID]mysqlEpCollectionItem - if err := phpserialize.Unmarshal(phpSerialized, &e); err != nil { - return nil, errgo.Wrap(err, "php deserialize") + if len(phpSerialized) != 0 { + if err := phpserialize.Unmarshal(phpSerialized, &e); err != nil { + return nil, errgo.Wrap(err, "php deserialize") + } } return e, nil diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index 4f5c203e8..a1d761142 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -30,9 +30,11 @@ type Tag struct { func ParseTags(b []byte) ([]model.Tag, error) { var tags []Tag - err := phpserialize.Unmarshal(b, &tags) - if err != nil { - return nil, errgo.Wrap(err, "ParseTags: phpserialize.Unmarshal") + if len(b) != 0 { + err := phpserialize.Unmarshal(b, &tags) + if err != nil { + return nil, errgo.Wrap(err, "ParseTags: phpserialize.Unmarshal") + } } return slice.MapFilter(tags, func(item Tag) (model.Tag, bool) { diff --git a/internal/user/model.go b/internal/user/model.go index d550b7df2..2ee5e2bbb 100644 --- a/internal/user/model.go +++ b/internal/user/model.go @@ -77,9 +77,11 @@ type PrivacySettings struct { func (settings *PrivacySettings) Unmarshal(s []byte) { rawMap := make(map[PrivacySettingsField]ReceiveFilter, 4) - err := phpserialize.Unmarshal(s, &rawMap) - if err != nil { - return + if len(s) != 0 { + err := phpserialize.Unmarshal(s, &rawMap) + if err != nil { + return + } } settings.ReceivePrivateMessage = rawMap[PrivacyReceivePrivateMessage] From cc05cf2f35d5f1e475fe929945370c47415a5847 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 10 Oct 2024 18:56:57 +0800 Subject: [PATCH 398/888] fix: only allow at most 10 tags --- web/req/collection.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/req/collection.go b/web/req/collection.go index ae4cc4a30..f0e5d6aac 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -50,6 +50,10 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } if v.Tags != nil { + if len(v.Tags) > 10 { + return res.BadRequest("最多允许 10 个标签") + } + v.Tags = lo.Map(v.Tags, func(item string, index int) string { return norm.NFKC.String(item) }) From 25fbccdff556cf92e9fa8c8762a0f12ef690b937 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 10 Oct 2024 19:43:40 +0800 Subject: [PATCH 399/888] style: upgrade linter --- .github/workflows/lint.yaml | 2 +- .golangci.yaml | 24 +++++++------------ internal/collections/infra/mysql_repo_test.go | 4 ++-- internal/index/mysql_repository_test.go | 10 ++++---- internal/pkg/generic/set/set_test.go | 1 - pkg/duration/duration_test.go | 1 - pkg/wiki/spec_test.go | 1 - web/handler/character/character_test.go | 1 - web/handler/person/person_test.go | 1 - web/handler/revision_test.go | 2 -- web/handler/subject/get_test.go | 2 -- web/handler/user/user_test.go | 1 - web/req/auth_test.go | 2 -- 13 files changed, 16 insertions(+), 36 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 3ad959c20..8cf84936b 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -53,4 +53,4 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v6 with: - version: v1.59.1 + version: v1.61.0 diff --git a/.golangci.yaml b/.golangci.yaml index f1be719f4..380125165 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -18,9 +18,7 @@ run: # If false (default) - golangci-lint acquires file lock on start. allow-parallel-runners: true - skip-files: [] - - go: "1.22" + go: "1.23" # output configuration options output: @@ -106,8 +104,6 @@ linters-settings: - standard # Captures all standard packages if they do not match another section. - default # Contains all imports that could not be matched to another section type. - prefix(github.com/bangumi/server) # Groups all imports with the specified Prefix. - sectionSeparators: - - newLine depguard: rules: @@ -141,8 +137,8 @@ linters-settings: - operation - return - assign - ignored-functions: strconv\..*,time\..*,make,math\..*,strings\..* - ignored-numbers: 1,2,3,10,100,1000,10000 + ignored-functions: [strconv\..*, time\..*, make, math\..*, strings\..*] + ignored-numbers: ["1", "2", "3", "10", "100", "1000", "10000"] gosimple: # Select the Go version to target. The default is '1.13'. @@ -181,7 +177,7 @@ linters-settings: checks: ["all"] stylecheck: - # Select the Go version to target. The default is '1.13'. + # Select the Go version to target. The default is '1.13'. testpackage: # regexp pattern to skip files @@ -203,12 +199,9 @@ linters-settings: nlreturn: block-size: 3 - ifshort: - # Maximum length of vars declaration measured in number of lines, after which linter won't suggest using short syntax. - # Has higher priority than max-decl-chars. - max-decl-lines: 1 - # Maximum length of vars declaration measured in number of characters, after which linter won't suggest using short syntax. - max-decl-chars: 30 + gosec: + excludes: + - G115 tagliatelle: # Check the struck tag name case. @@ -236,8 +229,9 @@ linters: - errchkjson - errname - errorlint + # https://github.com/golangci/golangci-lint/issues/5065 - exhaustive - - exportloopref + - copyloopvar - forbidigo - forcetypeassert - funlen diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index 923230929..b464faee7 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -143,12 +143,12 @@ func TestMysqlRepo_ListSubjectCollection(t *testing.T) { require.NoError(t, err) } - for i := 0; i < 2; i++ { + for i := uint32(0); i < 2; i++ { err = q.SubjectCollection. WithContext(context.Background()). Create(&dao.SubjectCollection{ UserID: uid, - SubjectID: model.SubjectID(200 + i), + SubjectID: 200 + i, SubjectType: model.SubjectTypeGame, UpdatedTime: uint32(time.Now().Unix()), }) diff --git a/internal/index/mysql_repository_test.go b/internal/index/mysql_repository_test.go index 2aef0a569..d57e2b288 100644 --- a/internal/index/mysql_repository_test.go +++ b/internal/index/mysql_repository_test.go @@ -189,9 +189,8 @@ func TestMysqlRepo_DeleteIndex2(t *testing.T) { err := repo.New(ctx, index) require.NoError(t, err) - for i := 10; i < 20; i++ { - _, err = repo.AddOrUpdateIndexSubject(ctx, index.ID, model.SubjectID(i), - uint32(i), fmt.Sprintf("comment %d", i)) + for i := uint32(10); i < 20; i++ { + _, err = repo.AddOrUpdateIndexSubject(ctx, index.ID, i, i, fmt.Sprintf("comment %d", i)) require.NoError(t, err) } @@ -292,9 +291,8 @@ func TestMysqlRepo_DeleteIndexSubject(t *testing.T) { require.NotEqual(t, 0, index.ID) require.NoError(t, err) - for i := 10; i < 20; i++ { - _, err = repo.AddOrUpdateIndexSubject(ctx, index.ID, model.SubjectID(i), - uint32(i), fmt.Sprintf("comment %d", i)) + for i := uint32(10); i < 20; i++ { + _, err = repo.AddOrUpdateIndexSubject(ctx, index.ID, i, i, fmt.Sprintf("comment %d", i)) require.NoError(t, err) } diff --git a/internal/pkg/generic/set/set_test.go b/internal/pkg/generic/set/set_test.go index 5c8034303..cad2a3b41 100644 --- a/internal/pkg/generic/set/set_test.go +++ b/internal/pkg/generic/set/set_test.go @@ -43,7 +43,6 @@ func TestFromSlice(t *testing.T) { {"init without values", []string{}}, } for _, tc := range testcases { - tc := tc t.Run(tc.name, func(t *testing.T) { t.Parallel() s := set.FromSlice[string](tc.input) diff --git a/pkg/duration/duration_test.go b/pkg/duration/duration_test.go index 3f87e5cd6..a05a2014e 100644 --- a/pkg/duration/duration_test.go +++ b/pkg/duration/duration_test.go @@ -64,7 +64,6 @@ func TestParse(t *testing.T) { } for _, tc := range testcases { - tc := tc t.Run(tc.Name, func(t *testing.T) { t.Parallel() actual, err := duration.Parse(tc.Input) diff --git a/pkg/wiki/spec_test.go b/pkg/wiki/spec_test.go index e3c9c0f0b..c030c4b5d 100644 --- a/pkg/wiki/spec_test.go +++ b/pkg/wiki/spec_test.go @@ -88,7 +88,6 @@ func TestAgainstInvalidSpec(t *testing.T) { for _, file := range files { // name := file.Name() - file := file t.Run(file.Name(), func(t *testing.T) { t.Parallel() raw, err := os.ReadFile(filepath.Join(caseRoot, file.Name())) diff --git a/web/handler/character/character_test.go b/web/handler/character/character_test.go index 305c2b06a..ddf5cff3d 100644 --- a/web/handler/character/character_test.go +++ b/web/handler/character/character_test.go @@ -92,7 +92,6 @@ func TestCharacter_GetImage(t *testing.T) { app := test.GetWebApp(t, test.Mock{CharacterRepo: m}) for _, imageType := range []string{"large", "grid", "medium", "small"} { - imageType := imageType t.Run(imageType, func(t *testing.T) { t.Parallel() diff --git a/web/handler/person/person_test.go b/web/handler/person/person_test.go index 64dd45f24..073e5b00f 100644 --- a/web/handler/person/person_test.go +++ b/web/handler/person/person_test.go @@ -61,7 +61,6 @@ func TestPerson_GetImage(t *testing.T) { app := test.GetWebApp(t, test.Mock{PersonRepo: m}) for _, imageType := range []string{"small", "grid", "large", "medium"} { - imageType := imageType t.Run(imageType, func(t *testing.T) { t.Parallel() diff --git a/web/handler/revision_test.go b/web/handler/revision_test.go index 13c54d233..88690293d 100644 --- a/web/handler/revision_test.go +++ b/web/handler/revision_test.go @@ -62,7 +62,6 @@ func TestHandler_ListPersonRevision_Bad_ID(t *testing.T) { badIDs := []string{"-1", "a", "0"} for _, id := range badIDs { - id := id t.Run(id, func(t *testing.T) { t.Parallel() @@ -122,7 +121,6 @@ func TestHandler_ListSubjectRevision_Bad_ID(t *testing.T) { badIDs := []string{"-1", "a", "0"} for _, id := range badIDs { - id := id t.Run(id, func(t *testing.T) { t.Parallel() diff --git a/web/handler/subject/get_test.go b/web/handler/subject/get_test.go index 8f9b1fc91..a5a520450 100644 --- a/web/handler/subject/get_test.go +++ b/web/handler/subject/get_test.go @@ -134,7 +134,6 @@ func TestSubject_Get_bad_id(t *testing.T) { app := test.GetWebApp(t, test.Mock{SubjectRepo: m}) for _, path := range []string{"/v0/subjects/0", "/v0/subjects/-1", "/v0/subjects/a"} { - path := path t.Run(path, func(t *testing.T) { t.Parallel() @@ -154,7 +153,6 @@ func TestSubject_GetImage_302(t *testing.T) { app := test.GetWebApp(t, test.Mock{SubjectRepo: m}) for _, imageType := range []string{"small", "grid", "large", "medium", "common"} { - imageType := imageType t.Run(imageType, func(t *testing.T) { t.Parallel() diff --git a/web/handler/user/user_test.go b/web/handler/user/user_test.go index 87fdc7122..9201023cf 100644 --- a/web/handler/user/user_test.go +++ b/web/handler/user/user_test.go @@ -101,7 +101,6 @@ func TestUser_GetAvatar_302(t *testing.T) { app := test.GetWebApp(t, test.Mock{UserRepo: m}) for _, imageType := range []string{"large", "medium", "small"} { - imageType := imageType t.Run(imageType, func(t *testing.T) { t.Parallel() diff --git a/web/req/auth_test.go b/web/req/auth_test.go index 2cb9fedda..d519d114f 100644 --- a/web/req/auth_test.go +++ b/web/req/auth_test.go @@ -32,7 +32,6 @@ func TestLoginPass(t *testing.T) { } validate := validator.New() for i, login := range testCase { - login := login t.Run(fmt.Sprintf("success %d", i), func(t *testing.T) { t.Parallel() require.NoError(t, validate.Struct(login)) @@ -50,7 +49,6 @@ func TestLoginErr(t *testing.T) { } validate := validator.New() for i, login := range testCase { - login := login t.Run(fmt.Sprintf("fail %d", i), func(t *testing.T) { t.Parallel() require.Error(t, validate.Struct(login)) From 0fc9d551d9f198c4776b8a3c10b4f6e3f24adb8f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 10 Oct 2024 20:16:45 +0800 Subject: [PATCH 400/888] build: upgrade aws sdk to v2 (#643) --- canal/event.go | 6 ++--- canal/on_user.go | 55 +++++++++++++++++++++------------------ go.mod | 14 ++++++++-- go.sum | 33 ++++++++++++++++------- internal/pkg/driver/s3.go | 26 +++++++----------- 5 files changed, 79 insertions(+), 55 deletions(-) diff --git a/canal/event.go b/canal/event.go index f880b784e..fec87c3d2 100644 --- a/canal/event.go +++ b/canal/event.go @@ -19,7 +19,7 @@ import ( "encoding/json" "sync/atomic" - "github.com/aws/aws-sdk-go/service/s3" + "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/redis/go-redis/v9" "github.com/trim21/errgo" "go.uber.org/zap" @@ -38,7 +38,7 @@ func newEventHandler( redis *redis.Client, stream Stream, search search.Client, - s3 *s3.S3, + s3 *s3.Client, ) *eventHandler { return &eventHandler{ redis: redis, @@ -58,7 +58,7 @@ type eventHandler struct { log *zap.Logger search search.Client stream Stream - s3 *s3.S3 // optional, check nil before use + s3 *s3.Client // optional, check nil before use redis *redis.Client } diff --git a/canal/on_user.go b/canal/on_user.go index da16f7b7a..27c5af9b1 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -20,8 +20,10 @@ import ( "encoding/json" "fmt" "strings" + "time" - "github.com/aws/aws-sdk-go/service/s3" + "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/aws/aws-sdk-go-v2/service/s3/types" "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" @@ -91,34 +93,37 @@ func (e *eventHandler) clearImageCache(avatar string) { e.log.Debug("clear image for prefix", zap.String("avatar", avatar), zap.String("prefix", p)) - err := e.s3.ListObjectsV2PagesWithContext(context.Background(), - &s3.ListObjectsV2Input{Bucket: &e.config.S3ImageResizeBucket, Prefix: &p}, - func(output *s3.ListObjectsV2Output, b bool) bool { - if len(output.Contents) == 0 { - return false - } + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() - _, err := e.s3.DeleteObjects(&s3.DeleteObjectsInput{ - Bucket: &e.config.S3ImageResizeBucket, - Delete: &s3.Delete{ - Objects: lo.Map(output.Contents, func(item *s3.Object, index int) *s3.ObjectIdentifier { - return &s3.ObjectIdentifier{ - Key: item.Key, - } - }), - }, - }) + pages := s3.NewListObjectsV2Paginator( + e.s3, + &s3.ListObjectsV2Input{Bucket: &e.config.S3ImageResizeBucket, Prefix: &p}, + ) - if err != nil { - e.log.Error("failed to clear s3 cached image", zap.Error(err)) - } + for pages.HasMorePages() { + output, err := pages.NextPage(ctx) + if err != nil { + break + } - return true - }, - ) + if len(output.Contents) == 0 { + break + } - if err != nil { - e.log.Error("failed to clear s3 cached image", zap.Error(err)) + _, err = e.s3.DeleteObjects(ctx, &s3.DeleteObjectsInput{ + Bucket: &e.config.S3ImageResizeBucket, + Delete: &types.Delete{ + Objects: lo.Map(output.Contents, func(item types.Object, index int) types.ObjectIdentifier { + return types.ObjectIdentifier{ + Key: item.Key, + } + }), + }, + }) + if err != nil { + e.log.Error("failed to clear s3 cached image", zap.Error(err)) + } } } diff --git a/go.mod b/go.mod index c12045895..d30917dd9 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,9 @@ go 1.23.1 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go v1.55.5 + github.com/aws/aws-sdk-go-v2 v1.32.2 + github.com/aws/aws-sdk-go-v2/credentials v1.17.41 + github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 @@ -49,6 +51,15 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 // indirect + github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -60,7 +71,6 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.17.10 // indirect diff --git a/go.sum b/go.sum index 018e8d75f..b08d60829 100644 --- a/go.sum +++ b/go.sum @@ -26,9 +26,31 @@ github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinR github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= -github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= +github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 h1:7edmS3VOBDhK00b/MwGtGglCm7hhwNYnjJs/PgFdMQE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21/go.mod h1:Q9o5h4HoIWG8XfzxqiuK/CGUbepCJ8uTlaE3bAbxytQ= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 h1:4FMHqLfk0efmTqhXVRL5xYRqlEBNBiRI7N6w4jsEdd4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2/go.mod h1:LWoqeWlK9OZeJxsROW2RqrSPvQHKTpp69r/iDjwsSaw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 h1:t7iUP9+4wdc5lt3E41huP+GvQZJD38WLsgVp4iOtAjg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2/go.mod h1:/niFCtmuQNxqx9v8WAPq5qh7EH25U4BF6tjoyq9bObM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2 h1:yi8m+jepdp6foK14xXLGkYBenxnlcfJ45ka4Pg7fDSQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -203,10 +225,6 @@ github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -644,10 +662,7 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/pkg/driver/s3.go b/internal/pkg/driver/s3.go index 97499fe68..84a943349 100644 --- a/internal/pkg/driver/s3.go +++ b/internal/pkg/driver/s3.go @@ -15,30 +15,24 @@ package driver import ( - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/credentials" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/s3" - "github.com/samber/lo" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/credentials" + "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/bangumi/server/config" ) -func NewS3(c config.AppConfig) (*s3.S3, error) { +func NewS3(c config.AppConfig) (*s3.Client, error) { if c.S3EntryPoint == "" { return nil, nil //nolint:nilnil } - cred := credentials.NewStaticCredentials(c.S3AccessKey, c.S3SecretKey, "") - s := lo.Must(session.NewSession(&aws.Config{ - Credentials: cred, - Endpoint: &c.S3EntryPoint, - Region: lo.ToPtr("us-east-1"), - DisableSSL: lo.ToPtr(true), - S3ForcePathStyle: lo.ToPtr(true), - })) - - svc := s3.New(s) + svc := s3.New(s3.Options{ + BaseEndpoint: aws.String(c.S3EntryPoint), + Region: "us-east-1", + UsePathStyle: true, + Credentials: credentials.NewStaticCredentialsProvider(c.S3AccessKey, c.S3SecretKey, ""), + }) return svc, nil } From 5547fca7eea625775adf3b7e936e227cc2d895af Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 11 Oct 2024 01:05:20 +0800 Subject: [PATCH 401/888] fix: api rate --- internal/collections/infra/mysql_repo.go | 60 ++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 55c6562a4..bbe3d3411 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -155,6 +155,8 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( return errgo.Trace(err) } + originalCollection := *obj + if err = r.updateSubjectCollection(obj, &original, s, at, ip, created); err != nil { return errgo.Trace(err) } @@ -194,6 +196,11 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( } r.updateSubject(ctx, subject.ID) + + if obj.Rate != originalCollection.Rate { + r.reCountSubjectRate(ctx, subject.ID, originalCollection.Rate, obj.Rate) + } + return nil } @@ -587,6 +594,59 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model }) } +func (r mysqlRepo) reCountSubjectRate(ctx context.Context, subjectID model.SubjectID, before uint8, after uint8) error { + var counts []struct { + Rate uint8 `gorm:"rate"` + Total uint32 `gorm:"total"` + } + + return r.q.Transaction(func(tx *query.Query) error { + err := tx.DB().WithContext(ctx).Raw(` + select interest_rate as rate, count(interest_rate) as total from chii_subject_interests + where interest_subject_id = ? and interest_private = 0 and interest_rate != 0 and ((interest_rate = ?) or (interest_rate = ?)) + group by interest_rate + `, subjectID, before, after).Scan(&counts).Error + if err != nil { + return errgo.Wrap(err, "dal") + } + + var updater = make([]field.AssignExpr, 0, 2) + for _, count := range counts { + switch count.Rate { + case 0: + continue + case 1: + updater = append(updater, tx.SubjectField.Rate1.Value(count.Total)) + case 2: + updater = append(updater, tx.SubjectField.Rate2.Value(count.Total)) + case 3: + updater = append(updater, tx.SubjectField.Rate3.Value(count.Total)) + case 4: + updater = append(updater, tx.SubjectField.Rate4.Value(count.Total)) + case 5: + updater = append(updater, tx.SubjectField.Rate5.Value(count.Total)) + case 6: + updater = append(updater, tx.SubjectField.Rate6.Value(count.Total)) + case 7: + updater = append(updater, tx.SubjectField.Rate7.Value(count.Total)) + case 8: + updater = append(updater, tx.SubjectField.Rate8.Value(count.Total)) + case 9: + updater = append(updater, tx.SubjectField.Rate9.Value(count.Total)) + case 10: + updater = append(updater, tx.SubjectField.Rate10.Value(count.Total)) + } + } + + _, err = tx.SubjectField.WithContext(ctx).Where(r.q.SubjectField.Sid.Eq(subjectID)).UpdateSimple(updater...) + if err != nil { + return errgo.Wrap(err, "dal") + } + + return nil + }) +} + func (r mysqlRepo) updateCollectionTime(obj *dao.SubjectCollection, t collection.SubjectCollection, at time.Time) error { switch t { From 829414391bc51ef12cc98c592d79e5ccfaaafa65 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 11 Oct 2024 01:10:44 +0800 Subject: [PATCH 402/888] fix lint --- Taskfile.yaml | 2 +- internal/collections/infra/mysql_repo.go | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index ff17b7a14..4b0ddcc49 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -35,7 +35,7 @@ tasks: silent: true desc: Run 'golangci-lint' cmds: - - golangci-lint run --fix + - golangci-lint --path-prefix "{{ .USER_WORKING_DIR }}" run --fix test: desc: Run mocked tests, need nothing. diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index bbe3d3411..963a089bf 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -198,7 +198,9 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( r.updateSubject(ctx, subject.ID) if obj.Rate != originalCollection.Rate { - r.reCountSubjectRate(ctx, subject.ID, originalCollection.Rate, obj.Rate) + if err := r.reCountSubjectRate(ctx, subject.ID, originalCollection.Rate, obj.Rate); err != nil { + r.log.Error("failed to update collection counts", zap.Error(err), zap.Uint32("subject_id", subject.ID)) + } } return nil @@ -594,6 +596,7 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model }) } +//nolint:mnd func (r mysqlRepo) reCountSubjectRate(ctx context.Context, subjectID model.SubjectID, before uint8, after uint8) error { var counts []struct { Rate uint8 `gorm:"rate"` @@ -603,7 +606,9 @@ func (r mysqlRepo) reCountSubjectRate(ctx context.Context, subjectID model.Subje return r.q.Transaction(func(tx *query.Query) error { err := tx.DB().WithContext(ctx).Raw(` select interest_rate as rate, count(interest_rate) as total from chii_subject_interests - where interest_subject_id = ? and interest_private = 0 and interest_rate != 0 and ((interest_rate = ?) or (interest_rate = ?)) + where interest_subject_id = ? and + interest_private = 0 and + interest_rate != 0 and ((interest_rate = ?) or (interest_rate = ?)) group by interest_rate `, subjectID, before, after).Scan(&counts).Error if err != nil { From dd0be27b621c1bd35b58324975033f6d50ffd364 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 11 Oct 2024 01:20:58 +0800 Subject: [PATCH 403/888] fix: api rate --- internal/collections/infra/mysql_repo.go | 57 ++++++++++++------------ 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 963a089bf..b1cd567ef 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -596,54 +596,55 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model }) } -//nolint:mnd +//nolint:mnd,gocyclo func (r mysqlRepo) reCountSubjectRate(ctx context.Context, subjectID model.SubjectID, before uint8, after uint8) error { - var counts []struct { - Rate uint8 `gorm:"rate"` - Total uint32 `gorm:"total"` - } - return r.q.Transaction(func(tx *query.Query) error { - err := tx.DB().WithContext(ctx).Raw(` - select interest_rate as rate, count(interest_rate) as total from chii_subject_interests - where interest_subject_id = ? and - interest_private = 0 and - interest_rate != 0 and ((interest_rate = ?) or (interest_rate = ?)) - group by interest_rate - `, subjectID, before, after).Scan(&counts).Error - if err != nil { - return errgo.Wrap(err, "dal") + var counts = make(map[uint8]uint32, 2) + + for _, rate := range []uint8{before, after} { + var count uint32 + if rate != 0 { + err := tx.DB().WithContext(ctx).Raw(` + select count(*) from chii_subject_interests + where interest_subject_id = ? and interest_private = 0 and interest_rate = ? + `, subjectID, rate).Scan(&count).Error + if err != nil { + return errgo.Wrap(err, "dal") + } + + counts[rate] = count + } } var updater = make([]field.AssignExpr, 0, 2) - for _, count := range counts { - switch count.Rate { + for rate, total := range counts { + switch rate { case 0: continue case 1: - updater = append(updater, tx.SubjectField.Rate1.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate1.Value(total)) case 2: - updater = append(updater, tx.SubjectField.Rate2.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate2.Value(total)) case 3: - updater = append(updater, tx.SubjectField.Rate3.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate3.Value(total)) case 4: - updater = append(updater, tx.SubjectField.Rate4.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate4.Value(total)) case 5: - updater = append(updater, tx.SubjectField.Rate5.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate5.Value(total)) case 6: - updater = append(updater, tx.SubjectField.Rate6.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate6.Value(total)) case 7: - updater = append(updater, tx.SubjectField.Rate7.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate7.Value(total)) case 8: - updater = append(updater, tx.SubjectField.Rate8.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate8.Value(total)) case 9: - updater = append(updater, tx.SubjectField.Rate9.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate9.Value(total)) case 10: - updater = append(updater, tx.SubjectField.Rate10.Value(count.Total)) + updater = append(updater, tx.SubjectField.Rate10.Value(total)) } } - _, err = tx.SubjectField.WithContext(ctx).Where(r.q.SubjectField.Sid.Eq(subjectID)).UpdateSimple(updater...) + _, err := tx.SubjectField.WithContext(ctx).Where(r.q.SubjectField.Sid.Eq(subjectID)).UpdateSimple(updater...) if err != nil { return errgo.Wrap(err, "dal") } From cf9d301e3de61bfc56f6abce09d4430d7d45655d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 11 Oct 2024 01:35:43 +0800 Subject: [PATCH 404/888] chore: improve lint output --- Taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index 4b0ddcc49..e1a2d3317 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -35,7 +35,7 @@ tasks: silent: true desc: Run 'golangci-lint' cmds: - - golangci-lint --path-prefix "{{ .USER_WORKING_DIR }}" run --fix + - golangci-lint --path-prefix "{{ .TASKFILE_DIR }}" run --fix test: desc: Run mocked tests, need nothing. From 2d534b5f26c1e3a709d98e0c1101e18f6ee20ccc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 11 Oct 2024 03:16:09 +0800 Subject: [PATCH 405/888] fix: ignore episode record exists --- internal/collections/infra/mysql_repo.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index b1cd567ef..a408e44ce 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -880,7 +880,8 @@ func (r mysqlRepo) createEpisodeCollection( } table := r.q.EpCollection - err = table.WithContext(ctx).Where(table.UserID.Eq(userID), table.SubjectID.Eq(subjectID)).Create(&dao.EpCollection{ + err = table.WithContext(ctx).Clauses(clause.OnConflict{DoNothing: true}). + Where(table.UserID.Eq(userID), table.SubjectID.Eq(subjectID)).Create(&dao.EpCollection{ UserID: userID, SubjectID: subjectID, Status: bytes, From 6ad7015d57d964d6e9d50abd9fa6348e8be41acb Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 19:08:36 +0800 Subject: [PATCH 406/888] build: keep debug info --- Taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Taskfile.yaml b/Taskfile.yaml index e1a2d3317..c27514bbe 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -27,7 +27,7 @@ tasks: generates: - ./dist/chii.exe cmds: - - go build -ldflags '-w -s' -trimpath -o dist/chii.exe main.go + - go build -trimpath -o dist/chii.exe main.go env: CGO_ENABLED: "0" From 66b6fd44f73f3585aaa603b269db298482dc29bf Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 19:42:45 +0800 Subject: [PATCH 407/888] build: upgrade go to 1.23.2 --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d30917dd9..72498f820 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.23.1 +go 1.23.2 require ( github.com/avast/retry-go/v4 v4.6.0 From d4b056fd3271600d7098c100e21954bb298d9858 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 20:23:13 +0800 Subject: [PATCH 408/888] fix: add debug router --- web/new.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/new.go b/web/new.go index c532821fb..c229bf6ef 100644 --- a/web/new.go +++ b/web/new.go @@ -19,6 +19,7 @@ import ( "fmt" "net" "net/http" + "net/http/pprof" "strconv" "strings" "time" @@ -107,6 +108,11 @@ func New() *echo.Echo { app.Use(recovery.New()) app.GET("/metrics", echo.WrapHandler(promhttp.Handler())) + app.GET("/debug/pprof/cmdline", echo.WrapHandler(http.HandlerFunc(pprof.Cmdline))) + app.GET("/debug/pprof/profile", echo.WrapHandler(http.HandlerFunc(pprof.Profile))) + app.GET("/debug/pprof/symbol", echo.WrapHandler(http.HandlerFunc(pprof.Symbol))) + app.GET("/debug/pprof/trace", echo.WrapHandler(http.HandlerFunc(pprof.Trace))) + app.GET("/debug/pprof/*", echo.WrapHandler(http.HandlerFunc(pprof.Index))) addProfile(app) From d74ce3b1ce00b2cc1898524795d7d5b402a2d958 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 20:26:20 +0800 Subject: [PATCH 409/888] build: upgrade go-phpserialize --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 72498f820..0f785e04f 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.3 - github.com/trim21/go-phpserialize v0.1.0-alpha.3 + github.com/trim21/go-phpserialize v0.1.0-alpha.4 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index b08d60829..0fc70cb59 100644 --- a/go.sum +++ b/go.sum @@ -433,8 +433,8 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= -github.com/trim21/go-phpserialize v0.1.0-alpha.3 h1:6Z09BQa5Sr3ODyWxOHVHeiGezkIxam2asocjJ2xkfQo= -github.com/trim21/go-phpserialize v0.1.0-alpha.3/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= +github.com/trim21/go-phpserialize v0.1.0-alpha.4 h1:ZFeFZ1F1NE1CTPCO4RpY8N4RVjGsCxhc4K3P655n8Ag= +github.com/trim21/go-phpserialize v0.1.0-alpha.4/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From c39782fe7344a17819c4f37956f7006c6b8ed4d3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 20:33:01 +0800 Subject: [PATCH 410/888] build: upgrade go-phpserialize --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0f785e04f..fc6cda2e4 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.3 - github.com/trim21/go-phpserialize v0.1.0-alpha.4 + github.com/trim21/go-phpserialize v0.1.0-alpha.5 github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 diff --git a/go.sum b/go.sum index 0fc70cb59..1c37f8fd3 100644 --- a/go.sum +++ b/go.sum @@ -433,8 +433,8 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= -github.com/trim21/go-phpserialize v0.1.0-alpha.4 h1:ZFeFZ1F1NE1CTPCO4RpY8N4RVjGsCxhc4K3P655n8Ag= -github.com/trim21/go-phpserialize v0.1.0-alpha.4/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= +github.com/trim21/go-phpserialize v0.1.0-alpha.5 h1:bMsUpfwAgPggQzDKdafNBvkPWDCMfzlvH30MWzI/SYg= +github.com/trim21/go-phpserialize v0.1.0-alpha.5/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From 75865250ff55600c8f8b857067b9cf323d4fd8f4 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 23:30:55 +0800 Subject: [PATCH 411/888] ci: enable openapi again --- .github/workflows/release-openapi.yaml | 27 +++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 0b575dddc..df1529d92 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -2,8 +2,8 @@ name: Release(openapi) on: push: - tags: - - "v*.*.*" + branches: + - master workflow_dispatch: env: @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 20 - run: npm ci - run: npm run build @@ -42,13 +42,14 @@ jobs: with: repository: "bangumi/dev-docs" path: dev-docs -# - run: cp ./dist/private.yaml ./dev-docs/api.yaml -# - name: Create Pull Request -# uses: peter-evans/create-pull-request@v4 -# with: -# path: dev-docs -# token: ${{ secrets.PAT }} -# title: Update Openapi Specification from bangumi/server -# push-to-fork: Trim21-bot/dev-docs -# branch: "update-upstream" -# author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" + + - run: cp ./dist/private.yaml ./dev-docs/api.yaml + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + path: dev-docs + token: ${{ secrets.PAT }} + title: Update Openapi Specification from bangumi/server + push-to-fork: Trim21-bot/dev-docs + branch: "update-upstream" + author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" From 1cb1a6d3e3dba1797b1a750a96fa4b5e9a8cb7df Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 12 Oct 2024 23:32:30 +0800 Subject: [PATCH 412/888] ci: fix openapi --- .github/workflows/release-openapi.yaml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index df1529d92..aa78ef435 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -37,19 +37,3 @@ jobs: push-to-fork: Trim21-bot/api branch: "update-upstream" author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" - - - uses: actions/checkout@v4 - with: - repository: "bangumi/dev-docs" - path: dev-docs - - - run: cp ./dist/private.yaml ./dev-docs/api.yaml - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - with: - path: dev-docs - token: ${{ secrets.PAT }} - title: Update Openapi Specification from bangumi/server - push-to-fork: Trim21-bot/dev-docs - branch: "update-upstream" - author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" From 760f316b51505749cfe9c5efec9ef579f786a50e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 11:09:06 +0800 Subject: [PATCH 413/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^11.7.2 (#644) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 859cecfca..146a2750f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "chii", "version": "0.34.0", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.7.0", + "@apidevtools/json-schema-ref-parser": "^11.7.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, @@ -19,9 +19,9 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", - "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", - "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", diff --git a/package.json b/package.json index 710d89354..812c53117 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.7.0", + "@apidevtools/json-schema-ref-parser": "^11.7.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, From 9f7e7d5acaccc3afb1cfa517efbae16a1a2c27a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 11:09:47 +0800 Subject: [PATCH 414/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.65.3 (#645) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fc6cda2e4..497c44898 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/avast/retry-go/v4 v4.6.0 github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/credentials v1.17.41 - github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2 + github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 1c37f8fd3..6c483956d 100644 --- a/go.sum +++ b/go.sum @@ -47,8 +47,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 h1:t7iUP9+4wdc5lt3E41huP+GvQZJD38WLsgVp4iOtAjg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2/go.mod h1:/niFCtmuQNxqx9v8WAPq5qh7EH25U4BF6tjoyq9bObM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2 h1:yi8m+jepdp6foK14xXLGkYBenxnlcfJ45ka4Pg7fDSQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.2/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 h1:xxHGZ+wUgZNACQmxtdvP5tgzfsxGS3vPpTP5Hy3iToE= +github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= From d3adee81cd49380ac92d170013336f5577b1574b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 11:09:58 +0800 Subject: [PATCH 415/888] build(deps): update module go.uber.org/fx to v1.23.0 (#646) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 497c44898..56d0445ec 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 - go.uber.org/fx v1.22.2 + go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.28.0 golang.org/x/text v0.19.0 diff --git a/go.sum b/go.sum index 6c483956d..15ca9ce95 100644 --- a/go.sum +++ b/go.sum @@ -464,8 +464,8 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.22.2 h1:iPW+OPxv0G8w75OemJ1RAnTUrF55zOJlXlo1TbJ0Buw= -go.uber.org/fx v1.22.2/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= +go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From 69c292369c56ea2aa63028cf2a2404b0d702cddc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 05:48:10 +0800 Subject: [PATCH 416/888] fix: request context leak --- web/new.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/new.go b/web/new.go index c229bf6ef..7419ebe4e 100644 --- a/web/new.go +++ b/web/new.go @@ -96,7 +96,7 @@ func New() *echo.Echo { reqIP := c.RealIP() c.SetRequest(c.Request(). - WithContext(context.WithValue(context.Background(), logger.RequestKey, &logger.RequestTrace{ + WithContext(context.WithValue(c.Request().Context(), logger.RequestKey, &logger.RequestTrace{ IP: reqIP, ReqID: reqID, }))) From 9e21e2f38920b721c4e840b1a7d53335d42b2af2 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 06:23:57 +0800 Subject: [PATCH 417/888] fix: make sure canal have context --- canal/event.go | 13 ++++++++----- canal/on_subject.go | 14 +++++++------- canal/on_user.go | 12 ++++++------ 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/canal/event.go b/canal/event.go index fec87c3d2..67efec00d 100644 --- a/canal/event.go +++ b/canal/event.go @@ -85,10 +85,10 @@ func (e *eventHandler) Close() error { return nil } -func (e *eventHandler) OnUserPasswordChange(id model.UserID) error { +func (e *eventHandler) OnUserPasswordChange(ctx context.Context, id model.UserID) error { e.log.Info("user change password", log.User(id)) - if err := e.session.RevokeUser(context.Background(), id); err != nil { + if err := e.session.RevokeUser(ctx, id); err != nil { e.log.Error("failed to revoke user", log.User(id), zap.Error(err)) return errgo.Wrap(err, "session.RevokeUser") } @@ -110,14 +110,17 @@ func (e *eventHandler) onMessage(key, value []byte) error { e.log.Debug("new message", zap.String("table", p.Source.Table)) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + var err error switch p.Source.Table { case "chii_subject_fields": - err = e.OnSubjectField(key, p) + err = e.OnSubjectField(ctx, key, p) case "chii_subjects": - err = e.OnSubject(key, p) + err = e.OnSubject(ctx, key, p) case "chii_members": - err = e.OnUserChange(key, p) + err = e.OnUserChange(ctx, key, p) } return err diff --git a/canal/on_subject.go b/canal/on_subject.go index fbe70e8b4..c60a42872 100644 --- a/canal/on_subject.go +++ b/canal/on_subject.go @@ -23,32 +23,32 @@ import ( "github.com/bangumi/server/internal/model" ) -func (e *eventHandler) OnSubject(key json.RawMessage, payload Payload) error { +func (e *eventHandler) OnSubject(ctx context.Context, key json.RawMessage, payload Payload) error { var k SubjectKey if err := json.Unmarshal(key, &k); err != nil { return nil } - return e.onSubjectChange(k.ID, payload.Op) + return e.onSubjectChange(ctx, k.ID, payload.Op) } -func (e *eventHandler) OnSubjectField(key json.RawMessage, payload Payload) error { +func (e *eventHandler) OnSubjectField(ctx context.Context, key json.RawMessage, payload Payload) error { var k SubjectFieldKey if err := json.Unmarshal(key, &k); err != nil { return nil } - return e.onSubjectChange(k.ID, payload.Op) + return e.onSubjectChange(ctx, k.ID, payload.Op) } -func (e *eventHandler) onSubjectChange(subjectID model.SubjectID, op string) error { +func (e *eventHandler) onSubjectChange(ctx context.Context, subjectID model.SubjectID, op string) error { switch op { case opCreate, opUpdate, opSnapshot: - if err := e.search.OnSubjectUpdate(context.TODO(), subjectID); err != nil { + if err := e.search.OnSubjectUpdate(ctx, subjectID); err != nil { return errgo.Wrap(err, "search.OnSubjectUpdate") } case opDelete: - if err := e.search.OnSubjectDelete(context.TODO(), subjectID); err != nil { + if err := e.search.OnSubjectDelete(ctx, subjectID); err != nil { return errgo.Wrap(err, "search.OnSubjectDelete") } } diff --git a/canal/on_user.go b/canal/on_user.go index 27c5af9b1..990a4044d 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -32,7 +32,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger/log" ) -func (e *eventHandler) OnUserChange(key json.RawMessage, payload Payload) error { +func (e *eventHandler) OnUserChange(ctx context.Context, key json.RawMessage, payload Payload) error { var k UserKey if err := json.Unmarshal(key, &k); err != nil { e.log.Error("failed to unmarshal json", zap.Error(err)) @@ -53,14 +53,14 @@ func (e *eventHandler) OnUserChange(key json.RawMessage, payload Payload) error } if before.Password != after.Password { - err := e.OnUserPasswordChange(k.ID) + err := e.OnUserPasswordChange(ctx, k.ID) if err != nil { e.log.Error("failed to clear cache", zap.Error(err)) } } if before.NewNotify != after.NewNotify { - e.redis.Publish(context.Background(), fmt.Sprintf("event-user-notify-%d", k.ID), redisUserChannel{ + e.redis.Publish(ctx, fmt.Sprintf("event-user-notify-%d", k.ID), redisUserChannel{ UserID: k.ID, NewNotify: after.NewNotify, }) @@ -72,14 +72,14 @@ func (e *eventHandler) OnUserChange(key json.RawMessage, payload Payload) error } e.log.Debug("clear user avatar cache", log.User(k.ID)) - go e.clearImageCache(after.Avatar) + go e.clearImageCache(context.Background(), after.Avatar) } } return nil } -func (e *eventHandler) clearImageCache(avatar string) { +func (e *eventHandler) clearImageCache(ctx context.Context, avatar string) { p, q, ok := strings.Cut(avatar, "?") if !ok { p = avatar @@ -93,7 +93,7 @@ func (e *eventHandler) clearImageCache(avatar string) { e.log.Debug("clear image for prefix", zap.String("avatar", avatar), zap.String("prefix", p)) - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + ctx, cancel := context.WithTimeout(ctx, 10*time.Second) defer cancel() pages := s3.NewListObjectsV2Paginator( From f022dfbe873573ed73797674d1f57e0ae9695174 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 06:58:43 +0800 Subject: [PATCH 418/888] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 55104f6a9..a511c732e 100644 --- a/readme.md +++ b/readme.md @@ -5,7 +5,7 @@ ## Requirements -- [Go 1.22](https://go.dev/) +- [Go 1.23](https://go.dev/) - [go-task](https://taskfile.dev/installation/),使用 `task` 查看所有的构建目标。 - [golangci-lint](https://golangci-lint.run/),使用 `task lint` 运行 linter。 From af1c55a80bac9d49b11a8353f8c2493b3bdc5e6f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 06:59:10 +0800 Subject: [PATCH 419/888] Update readme.md --- readme.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/readme.md b/readme.md index a511c732e..cc8ad863e 100644 --- a/readme.md +++ b/readme.md @@ -1,11 +1,8 @@ 新后端服务器。 -![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/Bangumi/server?style=flat-square) -[![Codecov](https://img.shields.io/codecov/c/github/Bangumi/server?style=flat-square)](https://app.codecov.io/gh/Bangumi/server) - ## Requirements -- [Go 1.23](https://go.dev/) +- ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/Bangumi/server?style=flat-square) - [go-task](https://taskfile.dev/installation/),使用 `task` 查看所有的构建目标。 - [golangci-lint](https://golangci-lint.run/),使用 `task lint` 运行 linter。 From f972eecf0ba553d0b72ff230b65fcfc1d94211c3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 07:15:43 +0800 Subject: [PATCH 420/888] refactor: profile router --- web/dev.go | 11 ----------- web/new.go | 16 +++++++--------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/web/dev.go b/web/dev.go index 8d3097a8e..786f6aa68 100644 --- a/web/dev.go +++ b/web/dev.go @@ -15,9 +15,6 @@ package web import ( - "net/http" - "net/http/pprof" - "github.com/labstack/echo/v4" "github.com/bangumi/server/internal/pkg/random" @@ -33,11 +30,3 @@ func genFakeRequestID(next echo.HandlerFunc) echo.HandlerFunc { return next(c) } } - -func addProfile(app *echo.Echo) { - app.GET("/debug/pprof/cmdline", echo.WrapHandler(http.HandlerFunc(pprof.Cmdline))) - app.GET("/debug/pprof/profile", echo.WrapHandler(http.HandlerFunc(pprof.Profile))) - app.GET("/debug/pprof/symbol", echo.WrapHandler(http.HandlerFunc(pprof.Symbol))) - app.GET("/debug/pprof/trace", echo.WrapHandler(http.HandlerFunc(pprof.Trace))) - app.Any("/debug/pprof/", echo.WrapHandler(http.HandlerFunc(pprof.Index))) -} diff --git a/web/new.go b/web/new.go index 7419ebe4e..aae9dfe10 100644 --- a/web/new.go +++ b/web/new.go @@ -79,6 +79,13 @@ func New() *echo.Echo { } }) + app.GET("/metrics", echo.WrapHandler(promhttp.Handler())) + app.GET("/debug/pprof/cmdline", echo.WrapHandler(http.HandlerFunc(pprof.Cmdline))) + app.GET("/debug/pprof/profile", echo.WrapHandler(http.HandlerFunc(pprof.Profile))) + app.GET("/debug/pprof/symbol", echo.WrapHandler(http.HandlerFunc(pprof.Symbol))) + app.GET("/debug/pprof/trace", echo.WrapHandler(http.HandlerFunc(pprof.Trace))) + app.GET("/debug/pprof/*", echo.WrapHandler(http.HandlerFunc(pprof.Index))) + if env.Development { app.Use(genFakeRequestID) } @@ -107,15 +114,6 @@ func New() *echo.Echo { app.Use(recovery.New()) - app.GET("/metrics", echo.WrapHandler(promhttp.Handler())) - app.GET("/debug/pprof/cmdline", echo.WrapHandler(http.HandlerFunc(pprof.Cmdline))) - app.GET("/debug/pprof/profile", echo.WrapHandler(http.HandlerFunc(pprof.Profile))) - app.GET("/debug/pprof/symbol", echo.WrapHandler(http.HandlerFunc(pprof.Symbol))) - app.GET("/debug/pprof/trace", echo.WrapHandler(http.HandlerFunc(pprof.Trace))) - app.GET("/debug/pprof/*", echo.WrapHandler(http.HandlerFunc(pprof.Index))) - - addProfile(app) - app.GET("/openapi", func(c echo.Context) error { return c.Redirect(http.StatusFound, "/openapi/") }) From 20fc7c9f3e7f557b79143738d708f0778fcdbe94 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 07:39:10 +0800 Subject: [PATCH 421/888] perf: use sonic for json --- go.mod | 7 +++++++ go.sum | 18 ++++++++++++++++++ web/json.go | 8 ++++---- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 56d0445ec..60b02588d 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.2 github.com/aws/aws-sdk-go-v2/credentials v1.17.41 github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 + github.com/bytedance/sonic v1.12.3 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 @@ -61,7 +62,10 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect @@ -74,6 +78,7 @@ require ( github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.17.10 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -85,11 +90,13 @@ require ( github.com/prometheus/common v0.60.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/stretchr/objx v0.5.2 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect + golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.8.0 // indirect diff --git a/go.sum b/go.sum index 15ca9ce95..90b09c1e2 100644 --- a/go.sum +++ b/go.sum @@ -64,6 +64,11 @@ github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdb github.com/bsm/gomega v1.20.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= +github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= +github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= +github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -73,6 +78,10 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -243,6 +252,9 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0= github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -424,6 +436,7 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= @@ -441,6 +454,8 @@ github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/trim21/pkg v0.0.3 h1:uAqfoFmmYiIMOSretKj8/tvrQs3KG57020Ff0cx8UtE= github.com/trim21/pkg v0.0.3/go.mod h1:JrRIFidkCLeuU5j0vBP5ZN0NOp2JavagHZNr4D3AH6Q= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -479,6 +494,8 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -696,6 +713,7 @@ honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/web/json.go b/web/json.go index 7f3262e5e..484f8a8ed 100644 --- a/web/json.go +++ b/web/json.go @@ -15,8 +15,8 @@ package web import ( - "encoding/json" - + "github.com/bytedance/sonic/decoder" + "github.com/bytedance/sonic/encoder" "github.com/labstack/echo/v4" ) @@ -26,7 +26,7 @@ type jsonSerializer struct { } func (j jsonSerializer) Serialize(c echo.Context, i any, indent string) error { - enc := json.NewEncoder(c.Response()) + enc := encoder.NewStreamEncoder(c.Response()) if indent != "" { enc.SetIndent("", indent) } @@ -34,7 +34,7 @@ func (j jsonSerializer) Serialize(c echo.Context, i any, indent string) error { } func (j jsonSerializer) Deserialize(c echo.Context, i any) error { - dec := json.NewDecoder(c.Request().Body) + dec := decoder.NewStreamDecoder(c.Request().Body) dec.DisallowUnknownFields() return dec.Decode(i) } From d6efd915ef2cd2f23377b6e7d93cf3e838f0c5a0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Oct 2024 09:34:24 +0800 Subject: [PATCH 422/888] fix: check access token by case sensitive (#647) --- dal/fx.go | 6 ++++ go.mod | 2 ++ go.sum | 11 +++++-- internal/auth/mysql_repository.go | 44 ++++++++++++++++---------- internal/auth/mysql_repository_test.go | 15 ++++++++- internal/pkg/test/gorm.go | 2 +- 6 files changed, 58 insertions(+), 22 deletions(-) diff --git a/dal/fx.go b/dal/fx.go index 3810e1785..465467229 100644 --- a/dal/fx.go +++ b/dal/fx.go @@ -17,6 +17,9 @@ package dal import ( + "database/sql" + + "github.com/jmoiron/sqlx" "go.uber.org/fx" "github.com/bangumi/server/dal/query" @@ -27,5 +30,8 @@ var Module = fx.Module("dal", NewDB, query.Use, NewMysqlTransaction, + func(db *sql.DB) *sqlx.DB { + return sqlx.NewDb(db, "mysql") + }, ), ) diff --git a/go.mod b/go.mod index 60b02588d..912ef457b 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,7 @@ require ( github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 + github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.28.0 @@ -89,6 +90,7 @@ require ( github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.60.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect diff --git a/go.sum b/go.sum index 90b09c1e2..47325d807 100644 --- a/go.sum +++ b/go.sum @@ -234,6 +234,8 @@ github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= +github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -273,6 +275,8 @@ github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0 github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= @@ -289,8 +293,9 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= @@ -397,8 +402,8 @@ github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0 github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index f477fde9f..6ce8cae56 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -16,11 +16,13 @@ package auth import ( "context" + "database/sql" "encoding/json" "errors" "strconv" "time" + "github.com/jmoiron/sqlx" "github.com/trim21/errgo" "go.uber.org/zap" "gorm.io/gorm" @@ -32,14 +34,20 @@ import ( "github.com/bangumi/server/internal/pkg/gstr" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/internal/pkg/random" + "github.com/bangumi/server/internal/user" ) -func NewMysqlRepo(q *query.Query, log *zap.Logger) Repo { - return mysqlRepo{q: q, log: log.Named("auth.mysqlRepo")} +func NewMysqlRepo(q *query.Query, log *zap.Logger, db *sqlx.DB) Repo { + return mysqlRepo{ + q: q, + log: log.Named("auth.mysqlRepo"), + db: db, + } } type mysqlRepo struct { q *query.Query + db *sqlx.DB log *zap.Logger } @@ -62,16 +70,17 @@ func (m mysqlRepo) GetByEmail(ctx context.Context, email string) (UserInfo, []by } func (m mysqlRepo) GetByToken(ctx context.Context, token string) (UserInfo, error) { - access, err := m.q.AccessToken.WithContext(ctx). - Where(m.q.AccessToken.AccessToken.Eq(token), m.q.AccessToken.ExpiredAt.Gte(time.Now())). - First() + var access struct { + UserID string `db:"user_id"` + } + err := m.db.GetContext(ctx, &access, + `select user_id from chii_oauth_access_tokens + where access_token = BINARY ? and expires > ? limit 1`, token, time.Now()) if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { + if errors.Is(err, sql.ErrNoRows) { return UserInfo{}, gerr.ErrNotFound } - m.log.Error("unexpected error happened", zap.Error(err)) - return UserInfo{}, errgo.Wrap(err, "gorm") } @@ -81,24 +90,25 @@ func (m mysqlRepo) GetByToken(ctx context.Context, token string) (UserInfo, erro return UserInfo{}, errgo.Wrap(err, "parsing user id") } - u, err := m.q.Member.WithContext(ctx).Where(m.q.Member.ID.Eq(id)).Take() - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - m.log.Error("can't find user of access token", - zap.String("token", token), zap.String("uid", access.UserID)) + var u struct { + Regdate int64 + GroupID user.GroupID + } + err = m.db.QueryRowContext(ctx, `select regdate, groupid from chii_members where uid = ? limit 1`, id). + Scan(&u.Regdate, &u.GroupID) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { return UserInfo{}, gerr.ErrNotFound } - m.log.Error("unexpected error happened", zap.Error(err)) - return UserInfo{}, errgo.Wrap(err, "gorm") } return UserInfo{ RegTime: time.Unix(u.Regdate, 0), - ID: u.ID, - GroupID: u.Groupid, + ID: id, + GroupID: u.GroupID, }, nil } diff --git a/internal/auth/mysql_repository_test.go b/internal/auth/mysql_repository_test.go index daa1f7a3a..0320de7ac 100644 --- a/internal/auth/mysql_repository_test.go +++ b/internal/auth/mysql_repository_test.go @@ -17,9 +17,12 @@ package auth_test import ( "context" "strconv" + "strings" "testing" "time" + "github.com/jmoiron/sqlx" + "github.com/samber/lo" "github.com/stretchr/testify/require" "go.uber.org/zap" @@ -34,7 +37,7 @@ import ( func getRepo(t *testing.T) (auth.Repo, *query.Query) { t.Helper() q := query.Use(test.GetGorm(t)) - repo := auth.NewMysqlRepo(q, zap.NewNop()) + repo := auth.NewMysqlRepo(q, zap.NewNop(), sqlx.NewDb(lo.Must(q.DB().DB()), "mysql")) return repo, q } @@ -61,6 +64,16 @@ func TestMysqlRepo_GetByToken(t *testing.T) { require.EqualValues(t, 382951, u.ID) } +func TestMysqlRepo_GetByToken_case_sensitive(t *testing.T) { + test.RequireEnv(t, "mysql") + t.Parallel() + + repo, _ := getRepo(t) + + _, err := repo.GetByToken(context.Background(), strings.ToUpper("a_development_access_token")) + require.ErrorIs(t, err, gerr.ErrNotFound) +} + func TestMysqlRepo_GetByToken_expired(t *testing.T) { test.RequireEnv(t, "mysql") t.Parallel() diff --git a/internal/pkg/test/gorm.go b/internal/pkg/test/gorm.go index 83985d504..7c90a4eb2 100644 --- a/internal/pkg/test/gorm.go +++ b/internal/pkg/test/gorm.go @@ -44,7 +44,7 @@ func GetQuery(tb testing.TB) *query.Query { func GetGorm(tb testing.TB) *gorm.DB { tb.Helper() - RequireEnv(tb, EnvRedis) + RequireEnv(tb, EnvMysql) cfg, err := config.NewAppConfig() require.NoError(tb, err) From 22d04e74cb2809aaa9f6eee911e799158d836baa Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 00:20:47 +0800 Subject: [PATCH 423/888] fix: do not allow update collection for locked subject --- web/handler/user/patch_subject_collection.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index 56f196edb..e410eeef7 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -84,6 +84,10 @@ func (h User) updateOrCreateSubjectCollection( return errgo.Wrap(err, "query.GetSubject") } + if s.Locked() { + return res.NotFound("subject locked") + } + if s.TypeID != model.SubjectTypeBook { if r.VolStatus.Set || r.EpStatus.Set { return res.BadRequest("can't set 'vol_status' or 'ep_status' on non-book subject") From 97fa07130262fef34beb077f7a644fc91c1458d6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 00:21:32 +0800 Subject: [PATCH 424/888] fix: do not allow update collection for locked subject --- web/handler/user/patch_subject_collection.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index e410eeef7..557ae90bd 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -84,8 +84,8 @@ func (h User) updateOrCreateSubjectCollection( return errgo.Wrap(err, "query.GetSubject") } - if s.Locked() { - return res.NotFound("subject locked") + if s.Ban != 0 { + return res.NotFound("subject locked or merged") } if s.TypeID != model.SubjectTypeBook { From 7059cf9dd80e73bc58ebd988a13f32c697bd8ad2 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 04:30:06 +0800 Subject: [PATCH 425/888] feat: include meta tag in api (#648) --- canal/canal.go | 2 +- canal/stream/redis_stream.go | 183 ------------------- cmd/archive/main.go | 4 +- cmd/gen/gorm/main.go | 4 +- cmd/web/cmd.go | 8 +- dal/fx.go | 2 +- dal/metrics.go | 2 +- dal/new.go | 6 +- dal/new_test.go | 4 +- etc/mock.task.yaml | 14 ++ go.mod | 3 +- go.sum | 18 +- internal/cachekey/cachekey.go | 4 + internal/collections/infra/mysql_repo.go | 8 +- internal/mocks/RedisCache.go | 52 +++++- internal/mocks/TagRepo.go | 155 ++++++++++++++++ internal/model/subject.go | 5 +- internal/pkg/cache/noop.go | 4 + internal/pkg/cache/redis.go | 46 +++-- internal/pkg/cache/redis_test.go | 112 +----------- internal/pkg/cache/serialize.go | 9 - internal/pkg/driver/mysql.go | 3 +- internal/pkg/driver/redis.go | 21 +++ internal/pkg/test/fx.go | 58 ++++++ internal/pkg/test/gorm.go | 2 +- internal/pkg/test/redis.go | 17 +- internal/pkg/test/web.go | 15 ++ internal/subject/mysq_repository_compat.go | 4 +- internal/tag/cache_repo.go | 112 ++++++++++++ internal/tag/cache_repo_test.go | 57 ++++++ internal/{subject/repo2.go => tag/domain.go} | 34 +++- internal/tag/mysql_repo.go | 97 ++++++++++ internal/tag/mysql_repo_test.go | 59 ++++++ web/handler/subject/browse.go | 2 +- web/handler/subject/get.go | 18 +- web/handler/subject/get_test.go | 6 +- web/handler/subject/subject.go | 4 + web/res/subject.go | 6 +- 38 files changed, 790 insertions(+), 370 deletions(-) delete mode 100644 canal/stream/redis_stream.go create mode 100644 internal/mocks/TagRepo.go create mode 100644 internal/pkg/test/fx.go create mode 100644 internal/tag/cache_repo.go create mode 100644 internal/tag/cache_repo_test.go rename internal/{subject/repo2.go => tag/domain.go} (54%) create mode 100644 internal/tag/mysql_repo.go create mode 100644 internal/tag/mysql_repo_test.go diff --git a/canal/canal.go b/canal/canal.go index 50ac7f1b8..3b57ec5e6 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -59,7 +59,7 @@ func Main() error { // driver and connector fx.Provide( - driver.NewMysqlConnectionPool, + driver.NewMysqlSqlDB, driver.NewRedisClient, logger.Copy, cache.NewRedisCache, subject.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, driver.NewS3, diff --git a/canal/stream/redis_stream.go b/canal/stream/redis_stream.go deleted file mode 100644 index bc3198e06..000000000 --- a/canal/stream/redis_stream.go +++ /dev/null @@ -1,183 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package stream - -import ( - "context" - "errors" - "time" - - "github.com/redis/go-redis/v9" -) - -// A Message is a consumed message from a redis stream. -type Message struct { - Stream string - ID string - Values map[string]any -} - -type config struct { - group string - consumer string - streams []string // list of streams and ids, e.g. stream1 stream2 id1 id2 - count int64 - block time.Duration - noAck bool -} - -// An Option modifies the config. -type Option func(*config) - -// WithStream adds a stream to the consumer. -func WithStream(stream string) Option { - return func(cfg *config) { - cfg.streams = append(cfg.streams, stream) - } -} - -// WithCount sets the count for the config. -func WithCount(cnt int64) Option { - return func(cfg *config) { - cfg.count = cnt - } -} - -// WithBlock sets the block field of the config. -func WithBlock(duration time.Duration) Option { - return func(cfg *config) { - cfg.block = duration - } -} - -// WithNoAck sets the noAck field of the config. -func WithNoAck(noAck bool) Option { - return func(cfg *config) { - cfg.noAck = noAck - } -} - -// A Consumer consumes messages from a stream. -type Consumer struct { - client *redis.Client - cfg *config - lastIDs map[string]string -} - -// New creates a new consumer. -func New(client *redis.Client, group, consumer string, options ...Option) *Consumer { - cfg := &config{ - group: group, - consumer: consumer, - } - for _, opt := range options { - opt(cfg) - } - lastIDs := make(map[string]string) - for _, stream := range cfg.streams { - lastIDs[stream] = "0-0" - } - - return &Consumer{ - client: client, - cfg: cfg, - lastIDs: lastIDs, - } -} - -// Read reads messages from the stream. -func (c *Consumer) Read(ctx context.Context) ([]Message, error) { - for { - streams := make([]string, 0, len(c.cfg.streams)*2) - streams = append(streams, c.cfg.streams...) - for _, stream := range c.cfg.streams { - streams = append(streams, c.lastIDs[stream]) - } - - cmd := c.client.XReadGroup(ctx, &redis.XReadGroupArgs{ - Group: c.cfg.group, - Consumer: c.cfg.consumer, - Streams: streams, - Count: c.cfg.count, - Block: c.cfg.block, - NoAck: c.cfg.noAck, - }) - - vals, err := cmd.Result() - if err == redis.Nil { - if c.cfg.block >= 0 { - continue - } - - return nil, nil //nolint:revive - } else if err != nil { - return nil, err - } - - allLatest := true - for _, lastID := range c.lastIDs { - if lastID != ">" { - allLatest = false - } - } - - var msgs []Message - for _, stream := range vals { - if len(stream.Messages) == 0 { - c.lastIDs[stream.Stream] = ">" - } - for _, msg := range stream.Messages { - msgs = append(msgs, Message{ - Stream: stream.Stream, - ID: msg.ID, - Values: msg.Values, - }) - c.lastIDs[stream.Stream] = msg.ID - } - } - if len(msgs) > 0 || allLatest { - return msgs, nil - } - } -} - -// Ack acknowledges the messages. -func (c *Consumer) Ack(ctx context.Context, msgs ...Message) error { - if len(msgs) == 0 { - return nil - } - - if len(msgs) == 1 { - msg := msgs[0] - return errors.Join( - c.client.XAck(ctx, msg.Stream, c.cfg.group, msg.ID).Err(), - c.client.XDel(ctx, msg.Stream, msg.ID).Err(), - ) - } - - ids := map[string][]string{} - for _, msg := range msgs { - ids[msg.Stream] = append(ids[msg.Stream], msg.ID) - } - - _, err := c.client.Pipelined(ctx, func(p redis.Pipeliner) error { - for stream, msgIDs := range ids { - p.XAck(ctx, stream, c.cfg.group, msgIDs...) - p.XDel(ctx, stream, msgIDs...) - } - return nil - }) - return err -} diff --git a/cmd/archive/main.go b/cmd/archive/main.go index fd23fbc79..047b6a79d 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -80,7 +80,7 @@ func start(out string) { err := fx.New( fx.NopLogger, fx.Provide( - driver.NewMysqlConnectionPool, dal.NewDB, + driver.NewMysqlSqlDB, dal.NewGormDB, config.NewAppConfig, logger.Copy, @@ -210,7 +210,7 @@ type Subject struct { type Tag struct { Name string `json:"name"` - Count int `json:"count"` + Count uint `json:"count"` } func exportSubjects(q *query.Query, w io.Writer) { diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 643aa85d4..baccbecba 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -92,12 +92,12 @@ func main() { panic("failed to read config: " + err.Error()) } - conn, err := driver.NewMysqlConnectionPool(c) + conn, err := driver.NewMysqlSqlDB(c) if err != nil { panic(err) } - db, err := dal.NewDB(conn, c) + db, err := dal.NewGormDB(conn, c) if err != nil { panic(err) } diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 7127a0561..4e3ff73b2 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -41,6 +41,7 @@ import ( "github.com/bangumi/server/internal/revision" "github.com/bangumi/server/internal/search" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/internal/timeline" "github.com/bangumi/server/internal/user" "github.com/bangumi/server/web" @@ -65,7 +66,8 @@ func start() error { fx.Provide( config.AppConfigReader(config.AppTypeHTTP), driver.NewRedisClientWithMetrics, // redis - driver.NewMysqlConnectionPool, // mysql + driver.NewMysqlSqlDB, // mysql + driver.NewRueidisClient, func() *resty.Client { httpClient := resty.New().SetJSONEscapeHTML(false) httpClient.JSONUnmarshal = json.Unmarshal @@ -74,6 +76,8 @@ func start() error { }, ), + fx.Invoke(dal.SetupMetrics), + dal.Module, fx.Provide( @@ -87,6 +91,8 @@ func start() error { dam.New, subject.NewMysqlRepo, subject.NewCachedRepo, person.NewMysqlRepo, + tag.NewCachedRepo, tag.NewMysqlRepo, + auth.NewService, person.NewService, search.New, ), diff --git a/dal/fx.go b/dal/fx.go index 465467229..1f06120bb 100644 --- a/dal/fx.go +++ b/dal/fx.go @@ -27,7 +27,7 @@ import ( var Module = fx.Module("dal", fx.Provide( - NewDB, + NewGormDB, query.Use, NewMysqlTransaction, func(db *sql.DB) *sqlx.DB { diff --git a/dal/metrics.go b/dal/metrics.go index 041d6120f..4702c7a0b 100644 --- a/dal/metrics.go +++ b/dal/metrics.go @@ -22,7 +22,7 @@ import ( "gorm.io/gorm" ) -func setupMetrics(db *gorm.DB, conn *sql.DB) error { +func SetupMetrics(db *gorm.DB, conn *sql.DB) error { var DatabaseQuery = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "chii_db_execute_total", diff --git a/dal/new.go b/dal/new.go index bef0f170b..6166a1447 100644 --- a/dal/new.go +++ b/dal/new.go @@ -27,7 +27,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger" ) -func NewDB(conn *sql.DB, c config.AppConfig) (*gorm.DB, error) { +func NewGormDB(conn *sql.DB, c config.AppConfig) (*gorm.DB, error) { var gLog gormLogger.Interface if c.Debug.Gorm { logger.Info("enable gorm debug mode, will log all sql") @@ -51,9 +51,5 @@ func NewDB(conn *sql.DB, c config.AppConfig) (*gorm.DB, error) { return nil, errgo.Wrap(err, "create dal") } - if err = setupMetrics(db, conn); err != nil { - return nil, errgo.Wrap(err, "setup metrics") - } - return db, nil } diff --git a/dal/new_test.go b/dal/new_test.go index 54f0645cc..7245ea6bc 100644 --- a/dal/new_test.go +++ b/dal/new_test.go @@ -31,9 +31,9 @@ func TestNewDB(t *testing.T) { cfg, err := config.NewAppConfig() require.NoError(t, err) - conn, err := driver.NewMysqlConnectionPool(cfg) + conn, err := driver.NewMysqlSqlDB(cfg) require.NoError(t, err) - db, err := dal.NewDB(conn, cfg) + db, err := dal.NewGormDB(conn, cfg) require.NoError(t, err) err = db.Exec("select 0;").Error diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index 57ef2ef06..47292fda1 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -6,6 +6,7 @@ vars: tasks: all: cmds: + - task: Tag - task: session-manager - task: session-repo - task: cache @@ -98,6 +99,19 @@ tasks: MOCK_STRUCT: "AuthService" INTERFACE: Service + "Tag": + sources: + - internal/tag/domain.go + - ./internal/pkg/tools/go.mod + generates: + - internal/mocks/TagRepo.go + cmds: + - task: base-mock + vars: + SRC_DIR: ./internal/tag + INTERFACE: "Repo" + MOCK_STRUCT: "TagRepo" + "CharacterRepo": sources: - ./internal/character/domain/.go diff --git a/go.mod b/go.mod index 912ef457b..b9a8606e7 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,6 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.22.1 - github.com/go-redis/redismock/v9 v9.2.0 github.com/go-resty/resty/v2 v2.15.3 github.com/go-sql-driver/mysql v1.8.1 github.com/ilyakaznacheev/cleanenv v1.5.0 @@ -25,6 +24,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.4 github.com/redis/go-redis/v9 v9.6.1 + github.com/redis/rueidis v1.0.47 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 @@ -68,7 +68,6 @@ require ( github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect diff --git a/go.sum b/go.sum index 47325d807..d67908494 100644 --- a/go.sum +++ b/go.sum @@ -112,8 +112,6 @@ github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLg github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -131,8 +129,6 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-redis/redismock/v9 v9.2.0 h1:ZrMYQeKPECZPjOj5u9eyOjg8Nnb0BS9lkVIZ6IpsKLw= -github.com/go-redis/redismock/v9 v9.2.0/go.mod h1:18KHfGDK4Y6c2R0H38EUGWAdc7ZQS9gfYxc94k7rWT0= github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= github.com/go-resty/resty/v2 v2.15.3/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -328,18 +324,14 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.25.0 h1:Vw7br2PCDYijJHSfBOWhov+8cAnUf8MfMaIOV323l6Y= -github.com/onsi/gomega v1.25.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= @@ -400,6 +392,8 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/redis/rueidis v1.0.47 h1:41UdeXOo4eJuW+cfpUJuLtVGyO0QJY3A2rEYgJWlfHs= +github.com/redis/rueidis v1.0.47/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= @@ -513,6 +507,8 @@ golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -585,7 +581,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/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.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -676,7 +671,6 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= diff --git a/internal/cachekey/cachekey.go b/internal/cachekey/cachekey.go index 319cc3b23..2f424a728 100644 --- a/internal/cachekey/cachekey.go +++ b/internal/cachekey/cachekey.go @@ -54,3 +54,7 @@ func Index(id model.IndexID) string { func User(id model.UserID) string { return resPrefix + "user:" + strconv.FormatUint(uint64(id), 10) } + +func SubjectMetaTag(id model.SubjectID) string { + return resPrefix + "subject:meta-tags:" + strconv.FormatUint(uint64(id), 10) +} diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index a408e44ce..e069801b1 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -333,8 +333,8 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, return errgo.Trace(err) } - var count = make(map[string]int) - var countMap = make(map[string]uint32) + var count = make(map[string]uint) + var countMap = make(map[string]uint) for _, tag := range tagList { if !dam.ValidateTag(tag.Tag.Name) { @@ -342,7 +342,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, } count[tag.Tag.Name]++ - countMap[tag.Tag.Name] = tag.Tag.Results + countMap[tag.Tag.Name] = uint(tag.Tag.Results) } var phpTags = make([]subject.Tag, 0, len(count)) @@ -351,7 +351,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, phpTags = append(phpTags, subject.Tag{ Name: lo.ToPtr(name), Count: c, - TotalCount: int(countMap[name]), + TotalCount: countMap[name], }) } diff --git a/internal/mocks/RedisCache.go b/internal/mocks/RedisCache.go index fce7469dd..6728d19ed 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/RedisCache.go @@ -4,9 +4,12 @@ package mocks import ( context "context" - time "time" + + cache "github.com/bangumi/server/internal/pkg/cache" mock "github.com/stretchr/testify/mock" + + time "time" ) // RedisCache is an autogenerated mock type for the RedisCache type @@ -141,6 +144,53 @@ func (_c *RedisCache_Get_Call) RunAndReturn(run func(context.Context, string, in return _c } +// MGet provides a mock function with given fields: ctx, key +func (_m *RedisCache) MGet(ctx context.Context, key []string) cache.MGetResult { + ret := _m.Called(ctx, key) + + if len(ret) == 0 { + panic("no return value specified for MGet") + } + + var r0 cache.MGetResult + if rf, ok := ret.Get(0).(func(context.Context, []string) cache.MGetResult); ok { + r0 = rf(ctx, key) + } else { + r0 = ret.Get(0).(cache.MGetResult) + } + + return r0 +} + +// RedisCache_MGet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MGet' +type RedisCache_MGet_Call struct { + *mock.Call +} + +// MGet is a helper method to define mock.On call +// - ctx context.Context +// - key []string +func (_e *RedisCache_Expecter) MGet(ctx interface{}, key interface{}) *RedisCache_MGet_Call { + return &RedisCache_MGet_Call{Call: _e.mock.On("MGet", ctx, key)} +} + +func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string)) *RedisCache_MGet_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].([]string)) + }) + return _c +} + +func (_c *RedisCache_MGet_Call) Return(_a0 cache.MGetResult) *RedisCache_MGet_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *RedisCache_MGet_Call) RunAndReturn(run func(context.Context, []string) cache.MGetResult) *RedisCache_MGet_Call { + _c.Call.Return(run) + return _c +} + // Set provides a mock function with given fields: ctx, key, value, ttl func (_m *RedisCache) Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error { ret := _m.Called(ctx, key, value, ttl) diff --git a/internal/mocks/TagRepo.go b/internal/mocks/TagRepo.go new file mode 100644 index 000000000..2aec09a0e --- /dev/null +++ b/internal/mocks/TagRepo.go @@ -0,0 +1,155 @@ +// Code generated by mockery v2.43.0. DO NOT EDIT. + +package mocks + +import ( + context "context" + + tag "github.com/bangumi/server/internal/tag" + mock "github.com/stretchr/testify/mock" +) + +// TagRepo is an autogenerated mock type for the Repo type +type TagRepo struct { + mock.Mock +} + +type TagRepo_Expecter struct { + mock *mock.Mock +} + +func (_m *TagRepo) EXPECT() *TagRepo_Expecter { + return &TagRepo_Expecter{mock: &_m.Mock} +} + +// Get provides a mock function with given fields: ctx, id +func (_m *TagRepo) Get(ctx context.Context, id uint32) ([]tag.Tag, error) { + ret := _m.Called(ctx, id) + + if len(ret) == 0 { + panic("no return value specified for Get") + } + + var r0 []tag.Tag + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]tag.Tag, error)); ok { + return rf(ctx, id) + } + if rf, ok := ret.Get(0).(func(context.Context, uint32) []tag.Tag); ok { + r0 = rf(ctx, id) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]tag.Tag) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { + r1 = rf(ctx, id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// TagRepo_Get_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Get' +type TagRepo_Get_Call struct { + *mock.Call +} + +// Get is a helper method to define mock.On call +// - ctx context.Context +// - id uint32 +func (_e *TagRepo_Expecter) Get(ctx interface{}, id interface{}) *TagRepo_Get_Call { + return &TagRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} +} + +func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id uint32)) *TagRepo_Get_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32)) + }) + return _c +} + +func (_c *TagRepo_Get_Call) Return(_a0 []tag.Tag, _a1 error) *TagRepo_Get_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *TagRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) ([]tag.Tag, error)) *TagRepo_Get_Call { + _c.Call.Return(run) + return _c +} + +// GetByIDs provides a mock function with given fields: ctx, ids +func (_m *TagRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32][]tag.Tag, error) { + ret := _m.Called(ctx, ids) + + if len(ret) == 0 { + panic("no return value specified for GetByIDs") + } + + var r0 map[uint32][]tag.Tag + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32][]tag.Tag, error)); ok { + return rf(ctx, ids) + } + if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32][]tag.Tag); ok { + r0 = rf(ctx, ids) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(map[uint32][]tag.Tag) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { + r1 = rf(ctx, ids) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// TagRepo_GetByIDs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetByIDs' +type TagRepo_GetByIDs_Call struct { + *mock.Call +} + +// GetByIDs is a helper method to define mock.On call +// - ctx context.Context +// - ids []uint32 +func (_e *TagRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *TagRepo_GetByIDs_Call { + return &TagRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} +} + +func (_c *TagRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *TagRepo_GetByIDs_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].([]uint32)) + }) + return _c +} + +func (_c *TagRepo_GetByIDs_Call) Return(_a0 map[uint32][]tag.Tag, _a1 error) *TagRepo_GetByIDs_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *TagRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32][]tag.Tag, error)) *TagRepo_GetByIDs_Call { + _c.Call.Return(run) + return _c +} + +// NewTagRepo creates a new instance of TagRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTagRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *TagRepo { + mock := &TagRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/internal/model/subject.go b/internal/model/subject.go index 577c9e55f..626de64ee 100644 --- a/internal/model/subject.go +++ b/internal/model/subject.go @@ -17,8 +17,9 @@ package model const subjectLocked = 2 type Tag struct { - Name string - Count int + Name string + Count uint + TotalCount uint } type Subject struct { diff --git a/internal/pkg/cache/noop.go b/internal/pkg/cache/noop.go index 491f46aab..8f9d2db59 100644 --- a/internal/pkg/cache/noop.go +++ b/internal/pkg/cache/noop.go @@ -36,3 +36,7 @@ func (n noop) Set(context.Context, string, any, time.Duration) error { func (n noop) Del(context.Context, ...string) error { return nil } + +func (n noop) MGet(ctx context.Context, key []string) MGetResult { + return MGetResult{} +} diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index 16746dd5f..f523a51df 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -18,7 +18,7 @@ import ( "context" "time" - "github.com/redis/go-redis/v9" + "github.com/redis/rueidis" "github.com/trim21/errgo" "go.uber.org/zap" @@ -34,31 +34,39 @@ type RedisCache interface { Get(ctx context.Context, key string, value any) (bool, error) Set(ctx context.Context, key string, value any, ttl time.Duration) error Del(ctx context.Context, keys ...string) error + MGet(ctx context.Context, key []string) MGetResult +} + +type MGetResult struct { + rueidis.RedisResult } // NewRedisCache create a redis backed cache. -func NewRedisCache(cli *redis.Client) RedisCache { - return redisCache{r: cli} +func NewRedisCache(ru rueidis.Client) RedisCache { + return redisCache{ru: ru} } type redisCache struct { - r *redis.Client + ru rueidis.Client } func (c redisCache) Get(ctx context.Context, key string, value any) (bool, error) { - raw, err := c.r.Get(ctx, key).Bytes() - if err != nil { - if err == redis.Nil { - return false, nil - } - + result := c.ru.Do(ctx, c.ru.B().Get().Key(key).Build()) + if err := result.NonRedisError(); err != nil { return false, errgo.Wrap(err, "redis get") } + raw, err := result.AsBytes() + // redis.Nil + if err != nil { + return false, nil + } + err = unmarshalBytes(raw, value) if err != nil { logger.Warn("can't unmarshal redis cached data as json", zap.String("key", key)) - c.r.Del(ctx, key) + + c.ru.Do(ctx, c.ru.B().Del().Key(key).Build()) return false, nil } @@ -66,13 +74,17 @@ func (c redisCache) Get(ctx context.Context, key string, value any) (bool, error return true, nil } +func (c redisCache) MGet(ctx context.Context, keys []string) MGetResult { + return MGetResult{c.ru.Do(ctx, c.ru.B().Mget().Key(keys...).Build())} +} + +func MGet[T any](c RedisCache, ctx context.Context, keys []string, value *[]T) error { + return rueidis.DecodeSliceOfJSON(c.MGet(ctx, keys).RedisResult, value) +} + func (c redisCache) Set(ctx context.Context, key string, value any, ttl time.Duration) error { - b, err := marshalBytes(value) + err := c.ru.Do(ctx, c.ru.B().Set().Key(key).Value(rueidis.JSON(value)).Ex(ttl).Build()).Error() if err != nil { - return err - } - - if err := c.r.Set(ctx, key, b, ttl).Err(); err != nil { return errgo.Wrap(err, "redis set") } @@ -80,6 +92,6 @@ func (c redisCache) Set(ctx context.Context, key string, value any, ttl time.Dur } func (c redisCache) Del(ctx context.Context, keys ...string) error { - err := c.r.Del(ctx, keys...).Err() + err := c.ru.Do(ctx, c.ru.B().Del().Key(keys...).Build()).Error() return errgo.Wrap(err, "redis.Del") } diff --git a/internal/pkg/cache/redis_test.go b/internal/pkg/cache/redis_test.go index 6d0f89a06..897432311 100644 --- a/internal/pkg/cache/redis_test.go +++ b/internal/pkg/cache/redis_test.go @@ -16,11 +16,10 @@ package cache_test import ( "context" - "encoding/json" + "fmt" "testing" "time" - redismock "github.com/go-redis/redismock/v9" "github.com/stretchr/testify/require" "github.com/bangumi/server/internal/pkg/cache" @@ -32,106 +31,15 @@ type RedisCacheTestItem struct { I int } -func mockedCache() (cache.RedisCache, redismock.ClientMock) { - db, mock := redismock.NewClientMock() - c := cache.NewRedisCache(db) - - return c, mock -} - -func TestRedisCache_Set(t *testing.T) { - t.Parallel() - var key = t.Name() + "redis_key" - c, mock := mockedCache() - mock.Regexp().ExpectSet(key, `.*`, time.Hour).SetVal("OK") - - value := RedisCacheTestItem{ - S: "sss", - I: 2, - } - - require.NoError(t, c.Set(context.TODO(), key, value, time.Hour)) - - if err := mock.ExpectationsWereMet(); err != nil { - t.Error(err) - } -} - -func TestRedisCache_Get_Nil(t *testing.T) { - t.Parallel() - - var key = t.Name() + "redis_key" - c, mock := mockedCache() - mock.Regexp().ExpectGet(key).RedisNil() - - var result RedisCacheTestItem - - ok, err := c.Get(context.TODO(), key, &result) - require.NoError(t, err) - require.False(t, ok) - - if err := mock.ExpectationsWereMet(); err != nil { - t.Error(err) - } -} - -func TestRedisCache_Get_Cached(t *testing.T) { - t.Parallel() - - var key = t.Name() + "redis_key" - value := RedisCacheTestItem{ - S: "sss", - I: 2, - } - - c, mock := mockedCache() - encoded, err := json.Marshal(value) - require.NoError(t, err) - - mock.Regexp().ExpectGet(key).SetVal(string(encoded)) - - var result RedisCacheTestItem - - ok, err := c.Get(context.TODO(), key, &result) - require.NoError(t, err) - require.True(t, ok) - - require.Equal(t, value, result) - - if err := mock.ExpectationsWereMet(); err != nil { - t.Error(err) - } -} - -func TestRedisCache_Get_Broken(t *testing.T) { - t.Parallel() - - var key = t.Name() + "redis_key" - c, mock := mockedCache() - - mock.Regexp().ExpectGet(key).SetVal("some random broken content") - mock.Regexp().ExpectDel(key).SetVal(1) - - var result RedisCacheTestItem - - ok, err := c.Get(context.TODO(), key, &result) - require.NoError(t, err) - require.False(t, ok) - - if err := mock.ExpectationsWereMet(); err != nil { - t.Error(err) - } -} - func TestRedisCache_Real(t *testing.T) { t.Parallel() var key = t.Name() + "redis_key" - db := test.GetRedis(t) - db.Del(context.TODO(), key) + r := test.GetRedis(t) + require.NoError(t, r.Do(context.TODO(), r.B().Del().Key(key).Build()).Error()) - c := cache.NewRedisCache(db) + c := cache.NewRedisCache(r) var data = RedisCacheTestItem{S: "ss", I: 5} require.NoError(t, c.Set(context.TODO(), key, data, time.Hour)) @@ -146,16 +54,16 @@ func TestRedisCache_Real(t *testing.T) { func TestRedisCache_Del(t *testing.T) { t.Parallel() - var key = t.Name() + "redis_test " + var key = fmt.Sprintln(t.Name(), "redis_test", time.Now()) - db := test.GetRedis(t) - require.NoError(t, db.Set(context.Background(), key, "", 0).Err()) + r := test.GetRedis(t) + require.NoError(t, r.Do(context.TODO(), r.B().Set().Key(key).Value("").Build()).Error()) - c := cache.NewRedisCache(db) + c := cache.NewRedisCache(r) require.NoError(t, c.Del(context.Background(), key)) - v, err := db.Exists(context.Background(), key).Result() + exist, err := r.Do(context.TODO(), r.B().Exists().Key(key).Build()).AsBool() require.NoError(t, err) - require.True(t, v == 0) + require.False(t, exist) } diff --git a/internal/pkg/cache/serialize.go b/internal/pkg/cache/serialize.go index 5110d84ae..6ca0cd2b9 100644 --- a/internal/pkg/cache/serialize.go +++ b/internal/pkg/cache/serialize.go @@ -20,15 +20,6 @@ import ( "github.com/trim21/errgo" ) -func marshalBytes(v any) ([]byte, error) { - b, err := json.Marshal(v) - if err != nil { - return nil, errgo.Wrap(err, "json.Marshal") - } - - return b, nil -} - func unmarshalBytes(b []byte, v any) error { err := json.Unmarshal(b, v) if err != nil { diff --git a/internal/pkg/driver/mysql.go b/internal/pkg/driver/mysql.go index 480ec3a54..03b65a5de 100644 --- a/internal/pkg/driver/mysql.go +++ b/internal/pkg/driver/mysql.go @@ -31,7 +31,8 @@ import ( var setLoggerOnce = sync.Once{} -func NewMysqlConnectionPool(c config.AppConfig) (*sql.DB, error) { +//nolint:stylecheck +func NewMysqlSqlDB(c config.AppConfig) (*sql.DB, error) { setLoggerOnce.Do(func() { _ = mysql.SetLogger(logger.StdAt(zap.ErrorLevel)) }) diff --git a/internal/pkg/driver/redis.go b/internal/pkg/driver/redis.go index 9eb4e3eaf..ea5d378fa 100644 --- a/internal/pkg/driver/redis.go +++ b/internal/pkg/driver/redis.go @@ -16,9 +16,12 @@ package driver import ( "context" + "fmt" + "net/url" "time" "github.com/redis/go-redis/v9" + "github.com/redis/rueidis" "github.com/trim21/errgo" "go.uber.org/zap" @@ -63,3 +66,21 @@ func NewRedisClientWithMetrics(c config.AppConfig) (*redis.Client, error) { return cli, nil } + +func NewRueidisClient(c config.AppConfig) (rueidis.Client, error) { + u, err := url.Parse(c.RedisURL) + if err != nil { + return nil, err + } + + password, _ := u.User.Password() + cli, err := rueidis.NewClient(rueidis.ClientOption{ + InitAddress: []string{fmt.Sprintf("%s:%s", u.Hostname(), u.Port())}, + Password: password, + }) + if err != nil { + return cli, err + } + + return cli, nil +} diff --git a/internal/pkg/test/fx.go b/internal/pkg/test/fx.go new file mode 100644 index 000000000..4a663d694 --- /dev/null +++ b/internal/pkg/test/fx.go @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package test + +import ( + "encoding/json" + "testing" + + "github.com/go-resty/resty/v2" + "github.com/stretchr/testify/require" + "go.uber.org/fx" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/dal" + "github.com/bangumi/server/internal/pkg/cache" + "github.com/bangumi/server/internal/pkg/driver" +) + +func Fx(tb testing.TB, target ...fx.Option) { + tb.Helper() + err := fx.New( + append(target, fx.NopLogger, + + // driver and connector + fx.Provide( + config.AppConfigReader(config.AppTypeHTTP), + driver.NewRedisClient, // redis + driver.NewRueidisClient, // redis + driver.NewMysqlSqlDB, // mysql + func() *resty.Client { + httpClient := resty.New().SetJSONEscapeHTML(false) + httpClient.JSONUnmarshal = json.Unmarshal + httpClient.JSONMarshal = json.Marshal + return httpClient + }, + ), + + dal.Module, + + fx.Provide(cache.NewRedisCache, zap.NewNop), + )..., + ).Err() + + require.NoError(tb, err) +} diff --git a/internal/pkg/test/gorm.go b/internal/pkg/test/gorm.go index 7c90a4eb2..0424f24af 100644 --- a/internal/pkg/test/gorm.go +++ b/internal/pkg/test/gorm.go @@ -56,7 +56,7 @@ func GetGorm(tb testing.TB) *gorm.DB { func newGorm(tb testing.TB, c config.AppConfig) (*gorm.DB, error) { tb.Helper() - conn, err := driver.NewMysqlConnectionPool(c) + conn, err := driver.NewMysqlSqlDB(c) if err != nil { return nil, errgo.Wrap(err, "sql.Open") } diff --git a/internal/pkg/test/redis.go b/internal/pkg/test/redis.go index 1ae557634..ab61e0969 100644 --- a/internal/pkg/test/redis.go +++ b/internal/pkg/test/redis.go @@ -17,22 +17,15 @@ package test import ( "testing" - "github.com/redis/go-redis/v9" - "github.com/stretchr/testify/require" - - "github.com/bangumi/server/config" - "github.com/bangumi/server/internal/pkg/driver" + "github.com/redis/rueidis" + "go.uber.org/fx" ) -func GetRedis(tb testing.TB) *redis.Client { +func GetRedis(tb testing.TB) (r rueidis.Client) { tb.Helper() - RequireEnv(tb, EnvRedis) - cfg, err := config.NewAppConfig() - require.NoError(tb, err) - db, err := driver.NewRedisClient(cfg) - require.NoError(tb, err) + Fx(tb, fx.Populate(&r)) - return db + return } diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 1984e3b15..79cca3023 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -43,6 +43,7 @@ import ( "github.com/bangumi/server/internal/revision" "github.com/bangumi/server/internal/search" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/internal/timeline" "github.com/bangumi/server/internal/user" "github.com/bangumi/server/web" @@ -56,6 +57,7 @@ type Mock struct { PersonRepo person.Repo CharacterRepo character.Repo AuthRepo auth.Repo + TagRepo tag.Repo AuthService auth.Service EpisodeRepo episode.Repo UserRepo user.Repo @@ -108,6 +110,7 @@ func GetWebApp(tb testing.TB, m Mock) *echo.Echo { MockNoticationRepo(m.NotificationRepo), MockSessionManager(m.SessionManager), MockTimeLineSrv(m.TimeLineSrv), + MockTagRepo(m.TagRepo), // don't need a default mock for these repositories. fx.Provide(func() collections.Repo { return m.CollectionRepo }), @@ -237,6 +240,18 @@ func MockAuthRepo(m auth.Repo) fx.Option { return fx.Provide(func() auth.Repo { return m }) } +func MockTagRepo(m tag.Repo) fx.Option { + if m == nil { + mocker := &mocks.TagRepo{} + mocker.EXPECT().Get(mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) + mocker.EXPECT().GetByIDs(mock.Anything, mock.Anything).Return(map[model.SubjectID][]tag.Tag{}, nil) + + m = mocker + } + + return fx.Provide(func() tag.Repo { return m }, func() tag.CachedRepo { return m }) +} + func MockAuthService(m auth.Service) fx.Option { if m == nil { return fx.Provide(auth.NewService) diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index a1d761142..b3c2ef2b4 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -24,8 +24,8 @@ import ( type Tag struct { Name *string `php:"tag_name"` - Count int `php:"result,string"` - TotalCount int `php:"tag_results,string"` + Count uint `php:"result,string"` + TotalCount uint `php:"tag_results,string"` } func ParseTags(b []byte) ([]model.Tag, error) { diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go new file mode 100644 index 000000000..71570723e --- /dev/null +++ b/internal/tag/cache_repo.go @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package tag + +import ( + "context" + "time" + + "github.com/samber/lo" + "github.com/trim21/errgo" + "go.uber.org/zap" + + "github.com/bangumi/server/internal/cachekey" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/cache" +) + +func NewCachedRepo(c cache.RedisCache, r Repo, log *zap.Logger) CachedRepo { + return cacheRepo{cache: c, repo: r, log: log.Named("subject.CachedRepo")} +} + +var _ CachedRepo = cacheRepo{} + +type cacheRepo struct { + cache cache.RedisCache + repo Repo + log *zap.Logger +} + +type cachedTags struct { + ID model.SubjectID + Tags []Tag +} + +func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { + var key = cachekey.SubjectMetaTag(id) + + var s cachedTags + ok, err := r.cache.Get(ctx, key, &s) + if err != nil { + return s.Tags, errgo.Wrap(err, "cache.Get") + } + + if ok { + return s.Tags, nil + } + + tags, err := r.repo.Get(ctx, id) + if err != nil { + return tags, err + } + + if e := r.cache.Set(ctx, key, cachedTags{ + ID: id, + Tags: tags, + }, time.Minute); e != nil { + r.log.Error("can't set response to cache", zap.Error(e)) + } + + return tags, nil +} + +func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { + var tags []cachedTags + err := cache.MGet(r.cache, ctx, lo.Map(ids, func(item model.SubjectID, index int) string { + return cachekey.SubjectMetaTag(item) + }), &tags) + if err != nil { + return nil, errgo.Wrap(err, "cache.MGet") + } + + result := make(map[model.SubjectID][]Tag, len(ids)) + for _, tag := range tags { + result[tag.ID] = tag.Tags + } + + var missing = make([]model.SubjectID, 0, len(ids)) + for _, id := range ids { + if _, ok := result[id]; !ok { + missing = append(missing, id) + } + } + + missingFromCache, err := r.repo.GetByIDs(ctx, missing) + if err != nil { + return nil, err + } + for id, tag := range missingFromCache { + result[id] = tag + err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ + ID: id, + Tags: tag, + }, time.Hour) + if err != nil { + return nil, errgo.Wrap(err, "cache.Set") + } + } + + return result, nil +} diff --git a/internal/tag/cache_repo_test.go b/internal/tag/cache_repo_test.go new file mode 100644 index 000000000..cbb61927b --- /dev/null +++ b/internal/tag/cache_repo_test.go @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package tag_test + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" + "go.uber.org/fx" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/test" + "github.com/bangumi/server/internal/tag" +) + +func getCacheRepo(t *testing.T) tag.CachedRepo { + t.Helper() + + var r tag.CachedRepo + + test.Fx(t, fx.Provide(tag.NewCachedRepo, tag.NewMysqlRepo), fx.Populate(&r)) + + return r +} + +func TestCacheGet(t *testing.T) { + test.RequireEnv(t, test.EnvMysql, test.EnvRedis) + t.Parallel() + + repo := getCacheRepo(t) + + _, err := repo.Get(context.Background(), 8) + require.NoError(t, err) +} + +func TestCacheGetTags(t *testing.T) { + test.RequireEnv(t, test.EnvMysql, test.EnvRedis) + t.Parallel() + + repo := getCacheRepo(t) + + _, err := repo.GetByIDs(context.Background(), []model.SubjectID{1, 2, 8}) + require.NoError(t, err) +} diff --git a/internal/subject/repo2.go b/internal/tag/domain.go similarity index 54% rename from internal/subject/repo2.go rename to internal/tag/domain.go index 32f36ee71..375a7e1ce 100644 --- a/internal/subject/repo2.go +++ b/internal/tag/domain.go @@ -12,4 +12,36 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -package subject +package tag + +import ( + "context" + + "github.com/bangumi/server/internal/model" +) + +// CatSubject 条目tag. +const CatSubject = 0 + +// CatMeta 官方tag. +const CatMeta = 3 + +type Tag struct { + Name string + Count uint + // TotalCount count for all tags including all subject + TotalCount uint +} + +type CachedRepo interface { + read +} + +type Repo interface { + read +} + +type read interface { + Get(ctx context.Context, id model.SubjectID) ([]Tag, error) + GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) +} diff --git a/internal/tag/mysql_repo.go b/internal/tag/mysql_repo.go new file mode 100644 index 000000000..475bb5cb8 --- /dev/null +++ b/internal/tag/mysql_repo.go @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package tag + +import ( + "context" + + "github.com/jmoiron/sqlx" + "go.uber.org/zap" + + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/model" +) + +func NewMysqlRepo(q *query.Query, log *zap.Logger, db *sqlx.DB) (Repo, error) { + return mysqlRepo{q: q, log: log.Named("tag.mysqlRepo"), db: db}, nil +} + +type mysqlRepo struct { + q *query.Query + log *zap.Logger + db *sqlx.DB +} + +func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { + var s []struct { + Tid uint `db:"tlt_tid"` + Name string `db:"tag_name"` + TotalCount uint `db:"tag_results"` + } + + err := r.db.SelectContext(ctx, &s, ` + select tlt_tid, tag_name, tag_results + from chii_tag_neue_list + inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = tag_type + where tlt_uid = 0 and tag_cat = ? and tlt_mid = ? + `, CatSubject, id) + if err != nil { + return nil, err + } + + tags := make([]Tag, len(s)) + for i, t := range s { + tags[i] = Tag{ + Name: t.Name, + TotalCount: t.TotalCount, + } + } + + return tags, nil +} + +func (r mysqlRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { + var s []struct { + Tid uint `db:"tlt_tid"` + Name string `db:"tag_name"` + TotalCount uint `db:"tag_results"` + Mid model.SubjectID `db:"tlt_mid"` + } + + q, v, err := sqlx.In(` + select tlt_tid, tag_name, tag_results, tlt_mid + from chii_tag_neue_list + inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = tag_type + where tlt_uid = 0 and tag_cat = ? and tlt_mid IN (?) + `, CatSubject, ids) + if err != nil { + return nil, err + } + + err = r.db.SelectContext(ctx, &s, q, v...) + if err != nil { + return nil, err + } + + tags := make(map[model.SubjectID][]Tag, len(s)) + for _, t := range s { + tags[t.Mid] = append(tags[t.Mid], Tag{ + Name: t.Name, + TotalCount: t.TotalCount, + }) + } + + return tags, nil +} diff --git a/internal/tag/mysql_repo_test.go b/internal/tag/mysql_repo_test.go new file mode 100644 index 000000000..31cc1585d --- /dev/null +++ b/internal/tag/mysql_repo_test.go @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package tag_test + +import ( + "context" + "testing" + + "github.com/jmoiron/sqlx" + "github.com/samber/lo" + "github.com/stretchr/testify/require" + "go.uber.org/zap" + + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/test" + "github.com/bangumi/server/internal/tag" +) + +func getRepo(t *testing.T) tag.Repo { + t.Helper() + q := query.Use(test.GetGorm(t)) + repo, err := tag.NewMysqlRepo(q, zap.NewNop(), sqlx.NewDb(lo.Must(q.DB().DB()), "mysql")) + require.NoError(t, err) + + return repo +} + +func TestGet(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + + _, err := repo.Get(context.Background(), 8) + require.NoError(t, err) +} + +func TestGetTags(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + + _, err := repo.GetByIDs(context.Background(), []model.SubjectID{1, 2, 8}) + require.NoError(t, err) +} diff --git a/web/handler/subject/browse.go b/web/handler/subject/browse.go index ebfb7b5f3..2968a425b 100644 --- a/web/handler/subject/browse.go +++ b/web/handler/subject/browse.go @@ -60,7 +60,7 @@ func (h Subject) Browse(c echo.Context) error { } data := make([]res.SubjectV0, 0, len(subjects)) for _, s := range subjects { - data = append(data, convertModelSubject(s, 0)) + data = append(data, convertModelSubject(s, 0, nil)) } return c.JSON(http.StatusOK, res.Paged{Data: data, Total: count, Limit: page.Limit, Offset: page.Offset}) diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index e7f0f623a..178842db5 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -20,6 +20,7 @@ import ( "net/http" "github.com/labstack/echo/v4" + "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" @@ -31,6 +32,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/pkg/vars" "github.com/bangumi/server/pkg/wiki" "github.com/bangumi/server/web/accessor" @@ -66,7 +68,12 @@ func (h Subject) Get(c echo.Context) error { return errgo.Wrap(err, "episode.Count") } - return c.JSON(http.StatusOK, convertModelSubject(s, totalEpisode)) + metaTags, err := h.tag.Get(c.Request().Context(), s.ID) + if err != nil { + return err + } + + return c.JSON(http.StatusOK, convertModelSubject(s, totalEpisode, metaTags)) } func platformString(s model.Subject) *string { @@ -114,7 +121,7 @@ func (h Subject) GetImage(c echo.Context) error { return c.Redirect(http.StatusFound, l) } -func convertModelSubject(s model.Subject, totalEpisode int64) res.SubjectV0 { +func convertModelSubject(s model.Subject, totalEpisode int64, metaTags []tag.Tag) res.SubjectV0 { return res.SubjectV0{ TotalEpisodes: totalEpisode, ID: s.ID, @@ -128,6 +135,13 @@ func convertModelSubject(s model.Subject, totalEpisode int64) res.SubjectV0 { Volumes: s.Volumes, Redirect: s.Redirect, Eps: s.Eps, + MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) res.SubjectTag { + return res.SubjectTag{ + Name: item.Name, + Count: item.Count, + TotalCont: item.TotalCount, + } + }), Tags: slice.Map(s.Tags, func(tag model.Tag) res.SubjectTag { return res.SubjectTag{ Name: tag.Name, diff --git a/web/handler/subject/get_test.go b/web/handler/subject/get_test.go index a5a520450..ee531eaea 100644 --- a/web/handler/subject/get_test.go +++ b/web/handler/subject/get_test.go @@ -31,6 +31,7 @@ import ( "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/pkg/test" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/web/accessor" subjectHandler "github.com/bangumi/server/web/handler/subject" "github.com/bangumi/server/web/internal/ctxkey" @@ -56,7 +57,10 @@ func TestSubject_Get(t *testing.T) { ep := mocks.NewEpisodeRepo(t) ep.EXPECT().Count(mock.Anything, subjectID, mock.Anything).Return(3, nil) - s, err := subjectHandler.New(nil, m, nil, nil, ep) + tagRepo := mocks.NewTagRepo(t) + tagRepo.EXPECT().Get(mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) + + s, err := subjectHandler.New(nil, m, nil, nil, ep, tagRepo) require.NoError(t, err) s.Routes(g) diff --git a/web/handler/subject/subject.go b/web/handler/subject/subject.go index d7cbf6055..aaa64c008 100644 --- a/web/handler/subject/subject.go +++ b/web/handler/subject/subject.go @@ -21,6 +21,7 @@ import ( "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" ) type Subject struct { @@ -28,6 +29,7 @@ type Subject struct { episode episode.Repo personRepo person.Repo subject subject.Repo + tag tag.CachedRepo c character.Repo } @@ -37,6 +39,7 @@ func New( personRepo person.Repo, c character.Repo, episode episode.Repo, + tag tag.CachedRepo, ) (Subject, error) { return Subject{ c: c, @@ -44,6 +47,7 @@ func New( personRepo: personRepo, subject: subject, person: p, + tag: tag, }, nil } diff --git a/web/res/subject.go b/web/res/subject.go index ba3bde9d4..8fb78cfb1 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -29,8 +29,9 @@ const defaultShortSummaryLength = 120 type v0wiki = []any type SubjectTag struct { - Name string `json:"name"` - Count int `json:"count"` + Name string `json:"name"` + Count uint `json:"count"` + TotalCont uint `json:"total_cont"` } type SubjectV0 struct { @@ -47,6 +48,7 @@ type SubjectV0 struct { Collection SubjectCollectionStat `json:"collection"` ID model.SubjectID `json:"id"` Eps uint32 `json:"eps"` + MetaTags []SubjectTag `json:"meta_tags"` Volumes uint32 `json:"volumes"` Series bool `json:"series"` Locked bool `json:"locked"` From d0d0fd4dcc05d381451251c5c22cc1894cc9d71d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 04:46:59 +0800 Subject: [PATCH 426/888] fix: ignore context cancel error --- web/error.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/web/error.go b/web/error.go index 94daeff37..caaffcee8 100644 --- a/web/error.go +++ b/web/error.go @@ -15,6 +15,7 @@ package web import ( + "context" "errors" "net/http" @@ -74,6 +75,10 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { } } + if errors.Is(err, context.Canceled) { + return + } + log.Error("unexpected error", zap.Error(err), zap.String("path", c.Path()), From 0a5f9668039f43faad0301a93dfeea6d8e40eb1d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 05:07:33 +0800 Subject: [PATCH 427/888] refactor: replace redis client --- canal/canal.go | 2 +- canal/event.go | 6 +- canal/on_user.go | 11 +- cmd/web/cmd.go | 5 +- go.mod | 3 - go.sum | 390 ----------------------------------- internal/metrics/redis.go | 28 --- internal/pkg/driver/redis.go | 46 +---- internal/pkg/test/fx.go | 1 - 9 files changed, 15 insertions(+), 477 deletions(-) delete mode 100644 internal/metrics/redis.go diff --git a/canal/canal.go b/canal/canal.go index 3b57ec5e6..bb33c7d27 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -60,7 +60,7 @@ func Main() error { // driver and connector fx.Provide( driver.NewMysqlSqlDB, - driver.NewRedisClient, logger.Copy, cache.NewRedisCache, + driver.NewRueidisClient, logger.Copy, cache.NewRedisCache, subject.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, driver.NewS3, diff --git a/canal/event.go b/canal/event.go index 67efec00d..e3cf10955 100644 --- a/canal/event.go +++ b/canal/event.go @@ -20,7 +20,7 @@ import ( "sync/atomic" "github.com/aws/aws-sdk-go-v2/service/s3" - "github.com/redis/go-redis/v9" + "github.com/redis/rueidis" "github.com/trim21/errgo" "go.uber.org/zap" @@ -35,7 +35,7 @@ func newEventHandler( log *zap.Logger, appConfig config.AppConfig, session session.Manager, - redis *redis.Client, + redis rueidis.Client, stream Stream, search search.Client, s3 *s3.Client, @@ -59,7 +59,7 @@ type eventHandler struct { search search.Client stream Stream s3 *s3.Client // optional, check nil before use - redis *redis.Client + redis rueidis.Client } func (e *eventHandler) start() error { diff --git a/canal/on_user.go b/canal/on_user.go index 990a4044d..5447ae2ef 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -24,6 +24,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3/types" + "github.com/redis/rueidis" "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" @@ -60,10 +61,12 @@ func (e *eventHandler) OnUserChange(ctx context.Context, key json.RawMessage, pa } if before.NewNotify != after.NewNotify { - e.redis.Publish(ctx, fmt.Sprintf("event-user-notify-%d", k.ID), redisUserChannel{ - UserID: k.ID, - NewNotify: after.NewNotify, - }) + e.redis.Do(ctx, e.redis.B().Publish(). + Channel(fmt.Sprintf("event-user-notify-%d", k.ID)). + Message(rueidis.JSON(redisUserChannel{ + UserID: k.ID, + NewNotify: after.NewNotify, + })).Build()) } if before.Avatar != after.Avatar { diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 4e3ff73b2..080542909 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -65,9 +65,8 @@ func start() error { // driver and connector fx.Provide( config.AppConfigReader(config.AppTypeHTTP), - driver.NewRedisClientWithMetrics, // redis - driver.NewMysqlSqlDB, // mysql - driver.NewRueidisClient, + driver.NewRueidisClient, // redis + driver.NewMysqlSqlDB, // mysql func() *resty.Client { httpClient := resty.New().SetJSONEscapeHTML(false) httpClient.JSONUnmarshal = json.Unmarshal diff --git a/go.mod b/go.mod index b9a8606e7..c2cc018f5 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,6 @@ require ( github.com/meilisearch/meilisearch-go v0.28.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.4 - github.com/redis/go-redis/v9 v9.6.1 github.com/redis/rueidis v1.0.47 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 @@ -32,7 +31,6 @@ require ( github.com/stretchr/testify v1.9.0 github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.1.0-alpha.5 - github.com/trim21/go-redis-prometheus v0.0.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.3 go.uber.org/fx v1.23.0 @@ -67,7 +65,6 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect diff --git a/go.sum b/go.sum index d67908494..7852e99c3 100644 --- a/go.sum +++ b/go.sum @@ -1,32 +1,10 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= @@ -51,76 +29,31 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 h1:xxHGZ+wUgZNACQmxtdvP5tgzfsxGS github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bsm/ginkgo/v2 v2.5.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.20.0/go.mod h1:JifAceMQ4crZIWYUKrlGcmbN3bqHogVTADMD2ATsbwk= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -131,15 +64,9 @@ github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27 github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= github.com/go-resty/resty/v2 v2.15.3/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -148,71 +75,14 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -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/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= @@ -229,38 +99,20 @@ github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0= github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= @@ -273,168 +125,63 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/meilisearch/meilisearch-go v0.28.0 h1:f3XJ66ZM+R8bANAOLqsjvoq/HhQNpVJPYoNt6QgNzME= github.com/meilisearch/meilisearch-go v0.28.0/go.mod h1:Szcc9CaDiKIfjdgdt49jlmDKpEzjD+x+b6Y6heMdlQ0= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= -github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= github.com/redis/rueidis v1.0.47 h1:41UdeXOo4eJuW+cfpUJuLtVGyO0QJY3A2rEYgJWlfHs= github.com/redis/rueidis v1.0.47/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -442,21 +189,16 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= github.com/trim21/go-phpserialize v0.1.0-alpha.5 h1:bMsUpfwAgPggQzDKdafNBvkPWDCMfzlvH30MWzI/SYg= github.com/trim21/go-phpserialize v0.1.0-alpha.5/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= -github.com/trim21/go-redis-prometheus v0.0.0 h1:9svVIZkKaDGE1bSRbtTQdsKBzW+QEWfwc35QIF8JsfA= -github.com/trim21/go-redis-prometheus v0.0.0/go.mod h1:UTXPI/fofnsXF9/X/WtvwhAdbSOBVjLg17xDjQj9VgU= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/trim21/pkg v0.0.3 h1:uAqfoFmmYiIMOSretKj8/tvrQs3KG57020Ff0cx8UtE= github.com/trim21/pkg v0.0.3/go.mod h1:JrRIFidkCLeuU5j0vBP5ZN0NOp2JavagHZNr4D3AH6Q= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= @@ -467,76 +209,33 @@ github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= @@ -544,38 +243,12 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -593,7 +266,6 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= @@ -603,82 +275,26 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -708,12 +324,6 @@ gorm.io/plugin/dbresolver v1.5.3 h1:wFwINGZZmttuu9h7XpvbDHd8Lf9bb8GNzp/NpAMV2wU= gorm.io/plugin/dbresolver v1.5.3/go.mod h1:TSrVhaUg2DZAWP3PrHlDlITEJmNOkL0tFTjvTEsQ4XE= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/internal/metrics/redis.go b/internal/metrics/redis.go deleted file mode 100644 index 12fa990bb..000000000 --- a/internal/metrics/redis.go +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package metrics - -import ( - "github.com/redis/go-redis/v9" - redisprom "github.com/trim21/go-redis-prometheus" -) - -func RedisHook(instance string) redis.Hook { - return redisprom.NewHook( - redisprom.WithNamespace("chii"), - redisprom.WithDurationBuckets([]float64{.001, .002, .003, .004, .005, .0075, .01, .05, .1, .3, .5, .75, 1, 2}), - redisprom.WithInstanceName(instance), - ) -} diff --git a/internal/pkg/driver/redis.go b/internal/pkg/driver/redis.go index ea5d378fa..8b943d7ba 100644 --- a/internal/pkg/driver/redis.go +++ b/internal/pkg/driver/redis.go @@ -15,58 +15,14 @@ package driver import ( - "context" "fmt" "net/url" - "time" - "github.com/redis/go-redis/v9" "github.com/redis/rueidis" - "github.com/trim21/errgo" - "go.uber.org/zap" "github.com/bangumi/server/config" - "github.com/bangumi/server/internal/metrics" - "github.com/bangumi/server/internal/pkg/logger" ) -const defaultRedisPoolSize = 4 - -// NewRedisClient create a redis client -// use [test.GetRedis] in tests. -func NewRedisClient(c config.AppConfig) (*redis.Client, error) { - redisOptions, err := redis.ParseURL(c.RedisURL) - if err != nil { - logger.Fatal("redis: failed to parse redis url", zap.String("url", c.RedisURL)) - } - - if redisOptions.PoolSize == 0 { - redisOptions.PoolSize = defaultRedisPoolSize - } - - cli := redis.NewClient(redisOptions) - - ctx, cancel := context.WithTimeout(context.Background(), time.Second) - defer cancel() - - if err := cli.Ping(ctx).Err(); err != nil { - return nil, errgo.Wrap(err, "redis: failed to ping") - } - - return cli, nil -} - -func NewRedisClientWithMetrics(c config.AppConfig) (*redis.Client, error) { - cli, err := NewRedisClient(c) - if err != nil { - return cli, err - } - - cli.AddHook(metrics.RedisHook(cli.Options().Addr)) - - return cli, nil -} - func NewRueidisClient(c config.AppConfig) (rueidis.Client, error) { u, err := url.Parse(c.RedisURL) if err != nil { @@ -77,6 +33,8 @@ func NewRueidisClient(c config.AppConfig) (rueidis.Client, error) { cli, err := rueidis.NewClient(rueidis.ClientOption{ InitAddress: []string{fmt.Sprintf("%s:%s", u.Hostname(), u.Port())}, Password: password, + // 1<<2 = 4 connection for each node + PipelineMultiplex: 2, }) if err != nil { return cli, err diff --git a/internal/pkg/test/fx.go b/internal/pkg/test/fx.go index 4a663d694..6db211382 100644 --- a/internal/pkg/test/fx.go +++ b/internal/pkg/test/fx.go @@ -37,7 +37,6 @@ func Fx(tb testing.TB, target ...fx.Option) { // driver and connector fx.Provide( config.AppConfigReader(config.AppTypeHTTP), - driver.NewRedisClient, // redis driver.NewRueidisClient, // redis driver.NewMysqlSqlDB, // mysql func() *resty.Client { From b0f0e18d02b6437cd9ebbd7f42699444b1815e91 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 05:38:54 +0800 Subject: [PATCH 428/888] refactor: fix redis mget --- internal/mocks/RedisCache.go | 32 ++++++++++----------- internal/pkg/cache/noop.go | 4 +-- internal/pkg/cache/redis.go | 54 ++++++++++++++++++++++++++++++------ internal/tag/cache_repo.go | 2 +- 4 files changed, 63 insertions(+), 29 deletions(-) diff --git a/internal/mocks/RedisCache.go b/internal/mocks/RedisCache.go index 6728d19ed..6a08e0216 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/RedisCache.go @@ -4,12 +4,9 @@ package mocks import ( context "context" - - cache "github.com/bangumi/server/internal/pkg/cache" + time "time" mock "github.com/stretchr/testify/mock" - - time "time" ) // RedisCache is an autogenerated mock type for the RedisCache type @@ -144,19 +141,19 @@ func (_c *RedisCache_Get_Call) RunAndReturn(run func(context.Context, string, in return _c } -// MGet provides a mock function with given fields: ctx, key -func (_m *RedisCache) MGet(ctx context.Context, key []string) cache.MGetResult { - ret := _m.Called(ctx, key) +// MGet provides a mock function with given fields: ctx, key, result +func (_m *RedisCache) MGet(ctx context.Context, key []string, result interface{}) error { + ret := _m.Called(ctx, key, result) if len(ret) == 0 { panic("no return value specified for MGet") } - var r0 cache.MGetResult - if rf, ok := ret.Get(0).(func(context.Context, []string) cache.MGetResult); ok { - r0 = rf(ctx, key) + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, []string, interface{}) error); ok { + r0 = rf(ctx, key, result) } else { - r0 = ret.Get(0).(cache.MGetResult) + r0 = ret.Error(0) } return r0 @@ -170,23 +167,24 @@ type RedisCache_MGet_Call struct { // MGet is a helper method to define mock.On call // - ctx context.Context // - key []string -func (_e *RedisCache_Expecter) MGet(ctx interface{}, key interface{}) *RedisCache_MGet_Call { - return &RedisCache_MGet_Call{Call: _e.mock.On("MGet", ctx, key)} +// - result interface{} +func (_e *RedisCache_Expecter) MGet(ctx interface{}, key interface{}, result interface{}) *RedisCache_MGet_Call { + return &RedisCache_MGet_Call{Call: _e.mock.On("MGet", ctx, key, result)} } -func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string)) *RedisCache_MGet_Call { +func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string, result interface{})) *RedisCache_MGet_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]string)) + run(args[0].(context.Context), args[1].([]string), args[2].(interface{})) }) return _c } -func (_c *RedisCache_MGet_Call) Return(_a0 cache.MGetResult) *RedisCache_MGet_Call { +func (_c *RedisCache_MGet_Call) Return(_a0 error) *RedisCache_MGet_Call { _c.Call.Return(_a0) return _c } -func (_c *RedisCache_MGet_Call) RunAndReturn(run func(context.Context, []string) cache.MGetResult) *RedisCache_MGet_Call { +func (_c *RedisCache_MGet_Call) RunAndReturn(run func(context.Context, []string, interface{}) error) *RedisCache_MGet_Call { _c.Call.Return(run) return _c } diff --git a/internal/pkg/cache/noop.go b/internal/pkg/cache/noop.go index 8f9d2db59..0555f9eaf 100644 --- a/internal/pkg/cache/noop.go +++ b/internal/pkg/cache/noop.go @@ -37,6 +37,6 @@ func (n noop) Del(context.Context, ...string) error { return nil } -func (n noop) MGet(ctx context.Context, key []string) MGetResult { - return MGetResult{} +func (n noop) MGet(ctx context.Context, key []string, result any) error { + return nil } diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index f523a51df..3bfa9cc08 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -16,6 +16,7 @@ package cache import ( "context" + "reflect" "time" "github.com/redis/rueidis" @@ -34,11 +35,13 @@ type RedisCache interface { Get(ctx context.Context, key string, value any) (bool, error) Set(ctx context.Context, key string, value any, ttl time.Duration) error Del(ctx context.Context, keys ...string) error - MGet(ctx context.Context, key []string) MGetResult -} -type MGetResult struct { - rueidis.RedisResult + // MGet result should be `*[]T` + // for example + // + // var s []struct{} + // cache.MGet(ctx, keys, &s) + MGet(ctx context.Context, key []string, result any) error } // NewRedisCache create a redis backed cache. @@ -74,12 +77,45 @@ func (c redisCache) Get(ctx context.Context, key string, value any) (bool, error return true, nil } -func (c redisCache) MGet(ctx context.Context, keys []string) MGetResult { - return MGetResult{c.ru.Do(ctx, c.ru.B().Mget().Key(keys...).Build())} -} +// MGet result should be `*[]T` +// for example +// +// var s []struct{} +// cache.MGet(ctx, keys, &s) +func (c redisCache) MGet(ctx context.Context, keys []string, result any) error { + results, err := c.ru.Do(ctx, c.ru.B().Mget().Key(keys...).Build()).ToArray() + if err != nil { + if err == rueidis.Nil { + return nil + } + + return errgo.Wrap(err, "redis mget") + } + + // no more ideal way to do this + // reflect.ValueOf(*[]T) + rv := reflect.ValueOf(result) + if !(rv.Kind() == reflect.Ptr && rv.Elem().Kind() == reflect.Slice) { + panic("only allow *[]T as input") + } + + // reflect.ValueOf([]T) + vv := rv.Elem() + + vv.Set(reflect.MakeSlice(rv.Elem().Type(), 0, len(results))) + elementType := rv.Elem().Type().Elem() + for _, message := range results { + var v = reflect.New(elementType) + + e := message.DecodeJSON(v.Interface()) + if e != nil { + continue + } -func MGet[T any](c RedisCache, ctx context.Context, keys []string, value *[]T) error { - return rueidis.DecodeSliceOfJSON(c.MGet(ctx, keys).RedisResult, value) + reflect.Append(vv, v.Elem()) + } + + return nil } func (c redisCache) Set(ctx context.Context, key string, value any, ttl time.Duration) error { diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 71570723e..b1ca5e190 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -74,7 +74,7 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { var tags []cachedTags - err := cache.MGet(r.cache, ctx, lo.Map(ids, func(item model.SubjectID, index int) string { + err := r.cache.MGet(ctx, lo.Map(ids, func(item model.SubjectID, index int) string { return cachekey.SubjectMetaTag(item) }), &tags) if err != nil { From 1ebab660439bdfbafb4988a08fd8f8f0f91f5b1b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 05:42:20 +0800 Subject: [PATCH 429/888] fix: meta tags should be []string --- web/handler/subject/get.go | 8 ++------ web/res/subject.go | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 178842db5..17a3568a1 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -135,12 +135,8 @@ func convertModelSubject(s model.Subject, totalEpisode int64, metaTags []tag.Tag Volumes: s.Volumes, Redirect: s.Redirect, Eps: s.Eps, - MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) res.SubjectTag { - return res.SubjectTag{ - Name: item.Name, - Count: item.Count, - TotalCont: item.TotalCount, - } + MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) string { + return item.Name }), Tags: slice.Map(s.Tags, func(tag model.Tag) res.SubjectTag { return res.SubjectTag{ diff --git a/web/res/subject.go b/web/res/subject.go index 8fb78cfb1..66300e7b5 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -48,7 +48,7 @@ type SubjectV0 struct { Collection SubjectCollectionStat `json:"collection"` ID model.SubjectID `json:"id"` Eps uint32 `json:"eps"` - MetaTags []SubjectTag `json:"meta_tags"` + MetaTags []string `json:"meta_tags"` Volumes uint32 `json:"volumes"` Series bool `json:"series"` Locked bool `json:"locked"` From 46b11a73a041c86fdf1c6314b2d43c346de95a40 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 05:43:52 +0800 Subject: [PATCH 430/888] docs: update openapi for meta tags --- openapi/components/subject_v0.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openapi/components/subject_v0.yaml b/openapi/components/subject_v0.yaml index 0c8c3ecc7..d6ce9392d 100644 --- a/openapi/components/subject_v0.yaml +++ b/openapi/components/subject_v0.yaml @@ -8,6 +8,7 @@ required: - nsfw - locked - platform + - meta_tags - volumes - eps - series @@ -137,5 +138,10 @@ properties: dropped: title: Dropped type: integer + meta_tags: + description: 由维基人维护的 tag + type: array + items: + type: string tags: $ref: "./subject_tags.yaml" From be0fe62244d462e913eedac1510e700f91455e45 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 06:07:52 +0800 Subject: [PATCH 431/888] feat: support meta tags filter (#649) --- canal/canal.go | 3 +++ canal/event.go | 4 ++++ internal/model/subject.go | 1 + internal/pkg/cache/redis.go | 1 + internal/search/handle.go | 15 ++++++++++----- internal/search/index.go | 3 +++ internal/search/index_internal_test.go | 2 +- internal/subject/mysql_repository.go | 1 + openapi/v0.yaml | 8 ++++++++ 9 files changed, 32 insertions(+), 6 deletions(-) diff --git a/canal/canal.go b/canal/canal.go index bb33c7d27..985c7b4de 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -32,6 +32,7 @@ import ( "github.com/bangumi/server/internal/pkg/sys" "github.com/bangumi/server/internal/search" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/web/session" ) @@ -64,6 +65,8 @@ func Main() error { subject.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, driver.NewS3, + tag.NewMysqlRepo, + newEventHandler, ), diff --git a/canal/event.go b/canal/event.go index e3cf10955..e75d9ffe5 100644 --- a/canal/event.go +++ b/canal/event.go @@ -28,6 +28,7 @@ import ( "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/logger/log" "github.com/bangumi/server/internal/search" + "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/web/session" ) @@ -37,6 +38,7 @@ func newEventHandler( session session.Manager, redis rueidis.Client, stream Stream, + tag tag.Repo, search search.Client, s3 *s3.Client, ) *eventHandler { @@ -48,6 +50,7 @@ func newEventHandler( s3: s3, stream: stream, log: log.Named("eventHandler"), + tag: tag, } } @@ -60,6 +63,7 @@ type eventHandler struct { stream Stream s3 *s3.Client // optional, check nil before use redis rueidis.Client + tag tag.Repo } func (e *eventHandler) start() error { diff --git a/internal/model/subject.go b/internal/model/subject.go index 626de64ee..256dc8e02 100644 --- a/internal/model/subject.go +++ b/internal/model/subject.go @@ -26,6 +26,7 @@ type Subject struct { Image string Summary string Name string + MetaTags string Date string // first release date NameCN string Infobox string diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index 3bfa9cc08..c73384055 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -85,6 +85,7 @@ func (c redisCache) Get(ctx context.Context, key string, value any) (bool, error func (c redisCache) MGet(ctx context.Context, keys []string, result any) error { results, err := c.ru.Do(ctx, c.ru.B().Mget().Key(keys...).Build()).ToArray() if err != nil { + //nolint:errorlint if err == rueidis.Nil { return nil } diff --git a/internal/search/handle.go b/internal/search/handle.go index 8a444ef92..4df44682f 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -58,11 +58,12 @@ type Req struct { } type ReqFilter struct { //nolint:musttag - Type []model.SubjectType `json:"type"` // or - Tag []string `json:"tag"` // and - AirDate []string `json:"air_date"` // and - Score []string `json:"rating"` // and - Rank []string `json:"rank"` // and + Type []model.SubjectType `json:"type"` // or + Tag []string `json:"tag"` // and + AirDate []string `json:"air_date"` // and + Score []string `json:"rating"` // and + Rank []string `json:"rank"` // and + MetaTags []string `json:"meta_tags"` // and // if NSFW subject is enabled NSFW null.Bool `json:"nsfw"` @@ -224,6 +225,10 @@ func filterToMeiliFilter(req ReqFilter) [][]string { filter = append(filter, []string{"nsfw = false"}) } + for _, tag := range req.MetaTags { + filter = append(filter, []string{"meta_tag = " + strconv.Quote(tag)}) + } + // AND for _, tag := range req.Tag { diff --git a/internal/search/index.go b/internal/search/index.go index 3c7c4433c..d185c5a49 100644 --- a/internal/search/index.go +++ b/internal/search/index.go @@ -16,6 +16,7 @@ package search import ( "strconv" + "strings" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/pkg/wiki" @@ -28,6 +29,7 @@ import ( type subjectIndex struct { ID model.SubjectID `json:"id"` Tag []string `json:"tag,omitempty" filterable:"true"` + MetaTags []string `json:"meta_tag" filterable:"true"` Name string `json:"name" searchable:"true"` Aliases []string `json:"aliases,omitempty" searchable:"true"` Date int `json:"date,omitempty" filterable:"true" sortable:"true"` @@ -74,6 +76,7 @@ func extractSubject(s *model.Subject) subjectIndex { ID: s.ID, Name: s.Name, Aliases: extractAliases(s, w), + MetaTags: strings.Split(s.MetaTags, " "), Tag: tagNames, NSFW: s.NSFW, Type: s.TypeID, diff --git a/internal/search/index_internal_test.go b/internal/search/index_internal_test.go index a9d218441..5049c767b 100644 --- a/internal/search/index_internal_test.go +++ b/internal/search/index_internal_test.go @@ -25,7 +25,7 @@ func TestIndexFilter(t *testing.T) { t.Parallel() actual := *(getAttributes("filterable")) - expected := []string{"date", "score", "rank", "type", "nsfw", "tag"} + expected := []string{"date", "meta_tag", "score", "rank", "type", "nsfw", "tag"} sort.Strings(expected) sort.Strings(actual) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 64e9ccaf9..395979ebc 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -78,6 +78,7 @@ func ConvertDao(s *dao.Subject) (model.Subject, error) { ID: s.ID, Name: string(s.Name), NameCN: string(s.NameCN), + MetaTags: s.FieldMetaTags, TypeID: s.TypeID, Image: s.Image, PlatformID: s.Platform, diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 13848f4ce..53cc49801 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -86,6 +86,14 @@ paths: items: $ref: "#/components/schemas/SubjectType" description: 条目类型,参照 `SubjectType` enum,多值之间为 `或` 的关系。 + meta_tags: + type: array + items: + type: string + example: + - 童年 + - 原创 + description: 公共标签。多个值之间为 `且` 关系。可以用 `-` 排除标签。比如 `-科幻` 可以排除科幻标签。 tag: type: array items: From d7b4b160f2033a2acbfa4960e2a43423fdd21069 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 06:39:12 +0800 Subject: [PATCH 432/888] chore: add more logging --- canal/on_subject.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/canal/on_subject.go b/canal/on_subject.go index c60a42872..0cc87d0a0 100644 --- a/canal/on_subject.go +++ b/canal/on_subject.go @@ -19,6 +19,7 @@ import ( "encoding/json" "github.com/trim21/errgo" + "go.uber.org/zap" "github.com/bangumi/server/internal/model" ) @@ -26,7 +27,7 @@ import ( func (e *eventHandler) OnSubject(ctx context.Context, key json.RawMessage, payload Payload) error { var k SubjectKey if err := json.Unmarshal(key, &k); err != nil { - return nil + return err } return e.onSubjectChange(ctx, k.ID, payload.Op) @@ -35,7 +36,7 @@ func (e *eventHandler) OnSubject(ctx context.Context, key json.RawMessage, paylo func (e *eventHandler) OnSubjectField(ctx context.Context, key json.RawMessage, payload Payload) error { var k SubjectFieldKey if err := json.Unmarshal(key, &k); err != nil { - return nil + return err } return e.onSubjectChange(ctx, k.ID, payload.Op) @@ -51,6 +52,8 @@ func (e *eventHandler) onSubjectChange(ctx context.Context, subjectID model.Subj if err := e.search.OnSubjectDelete(ctx, subjectID); err != nil { return errgo.Wrap(err, "search.OnSubjectDelete") } + default: + e.log.Warn("unexpected operator", zap.String("op", op)) } return nil From faa390cc88dc62a403c96a6c88e0a38d563fd3a6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 06:47:50 +0800 Subject: [PATCH 433/888] fix: remove locked subject from search --- internal/search/client.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/search/client.go b/internal/search/client.go index 69e3f16ab..ffc0291ce 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -155,12 +155,12 @@ func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error s, err := c.subjectRepo.Get(ctx, id, subject.Filter{}) if err != nil { if errors.Is(err, gerr.ErrNotFound) { - return c.DeleteSubject(ctx, id) + return nil } return errgo.Wrap(err, "subjectRepo.Get") } - if s.Redirect != 0 { + if s.Redirect != 0 || s.Ban != 0 { return c.DeleteSubject(ctx, id) } @@ -178,6 +178,9 @@ func (c *client) OnSubjectDelete(_ context.Context, id model.SubjectID) error { return errgo.Wrap(err, "search") } +func (c *client) flush() { +} + // UpsertSubject add subject to search backend. func (c *client) sendBatch(items []subjectIndex) { c.log.Debug("send batch to meilisearch", zap.Int("len", len(items))) From 50ca3fe2f524d65a87966f2bbad01928e744f018 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 06:50:50 +0800 Subject: [PATCH 434/888] fix lint --- internal/search/client.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/internal/search/client.go b/internal/search/client.go index ffc0291ce..0cc8f1dea 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -178,9 +178,6 @@ func (c *client) OnSubjectDelete(_ context.Context, id model.SubjectID) error { return errgo.Wrap(err, "search") } -func (c *client) flush() { -} - // UpsertSubject add subject to search backend. func (c *client) sendBatch(items []subjectIndex) { c.log.Debug("send batch to meilisearch", zap.Int("len", len(items))) From 09be440d89a2f69d969e770cb735fa7c25c74c42 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 07:03:35 +0800 Subject: [PATCH 435/888] chore: add more logging --- canal/event.go | 1 + internal/search/client.go | 12 +++--------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/canal/event.go b/canal/event.go index e75d9ffe5..458b49819 100644 --- a/canal/event.go +++ b/canal/event.go @@ -109,6 +109,7 @@ func (e *eventHandler) onMessage(key, value []byte) error { var p Payload if err := json.Unmarshal(value, &p); err != nil { + e.log.Warn("failed to parse kafka value", zap.String("table", p.Source.Table), zap.Error(err)) return nil } diff --git a/internal/search/client.go b/internal/search/client.go index 0cc8f1dea..dc79300cc 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -161,7 +161,7 @@ func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error } if s.Redirect != 0 || s.Ban != 0 { - return c.DeleteSubject(ctx, id) + return c.OnSubjectDelete(ctx, id) } extracted := extractSubject(&s) @@ -172,8 +172,8 @@ func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error } // OnSubjectDelete is the hook called by canal. -func (c *client) OnSubjectDelete(_ context.Context, id model.SubjectID) error { - _, err := c.subjectIndex.DeleteDocument(strconv.FormatUint(uint64(id), 10)) +func (c *client) OnSubjectDelete(ctx context.Context, id model.SubjectID) error { + _, err := c.subjectIndex.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) return errgo.Wrap(err, "search") } @@ -204,12 +204,6 @@ func (c *client) sendBatch(items []subjectIndex) { } } -func (c *client) DeleteSubject(_ context.Context, id model.SubjectID) error { - _, err := c.subjectIndex.Delete(strconv.FormatUint(uint64(id), 10)) - - return errgo.Wrap(err, "delete") -} - func (c *client) needFirstRun() (bool, error) { if os.Getenv("CHII_SEARCH_INIT") == "true" { return true, nil From dd54b7ad426076b1302d76720c24fcef3608f2ae Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 07:14:12 +0800 Subject: [PATCH 436/888] fix: flush new subject to search engine at once --- canal/on_subject.go | 6 ++++- go.mod | 2 +- go.sum | 4 +-- internal/mocks/SearchClient.go | 47 ++++++++++++++++++++++++++++++++++ internal/search/client.go | 20 +++++++++++++++ internal/search/handle.go | 4 ++- internal/search/noop.go | 2 ++ 7 files changed, 80 insertions(+), 5 deletions(-) diff --git a/canal/on_subject.go b/canal/on_subject.go index 0cc87d0a0..f96b7354b 100644 --- a/canal/on_subject.go +++ b/canal/on_subject.go @@ -44,7 +44,11 @@ func (e *eventHandler) OnSubjectField(ctx context.Context, key json.RawMessage, func (e *eventHandler) onSubjectChange(ctx context.Context, subjectID model.SubjectID, op string) error { switch op { - case opCreate, opUpdate, opSnapshot: + case opCreate: + if err := e.search.OnSubjectAdded(ctx, subjectID); err != nil { + return errgo.Wrap(err, "search.OnSubjectAdded") + } + case opUpdate, opSnapshot: if err := e.search.OnSubjectUpdate(ctx, subjectID); err != nil { return errgo.Wrap(err, "search.OnSubjectUpdate") } diff --git a/go.mod b/go.mod index c2cc018f5..064306e40 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.1.0-alpha.5 github.com/trim21/htest v0.0.4 - github.com/trim21/pkg v0.0.3 + github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.28.0 diff --git a/go.sum b/go.sum index 7852e99c3..7a7179cbf 100644 --- a/go.sum +++ b/go.sum @@ -195,8 +195,8 @@ github.com/trim21/go-phpserialize v0.1.0-alpha.5 h1:bMsUpfwAgPggQzDKdafNBvkPWDCM github.com/trim21/go-phpserialize v0.1.0-alpha.5/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= -github.com/trim21/pkg v0.0.3 h1:uAqfoFmmYiIMOSretKj8/tvrQs3KG57020Ff0cx8UtE= -github.com/trim21/pkg v0.0.3/go.mod h1:JrRIFidkCLeuU5j0vBP5ZN0NOp2JavagHZNr4D3AH6Q= +github.com/trim21/pkg v0.0.4 h1:0nYODKdqNUzmUaPFvqSiR420u2uXQgIYyVyiNfH7olc= +github.com/trim21/pkg v0.0.4/go.mod h1:edl6xdqBOJrhMuIGvcY2lg5L9cqp/hVuwHRM/kdzbMg= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index cdf74f078..2311ae084 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -100,6 +100,53 @@ func (_c *SearchClient_Handle_Call) RunAndReturn(run func(echo.Context) error) * return _c } +// OnSubjectAdded provides a mock function with given fields: ctx, id +func (_m *SearchClient) OnSubjectAdded(ctx context.Context, id uint32) error { + ret := _m.Called(ctx, id) + + if len(ret) == 0 { + panic("no return value specified for OnSubjectAdded") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { + r0 = rf(ctx, id) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// SearchClient_OnSubjectAdded_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'OnSubjectAdded' +type SearchClient_OnSubjectAdded_Call struct { + *mock.Call +} + +// OnSubjectAdded is a helper method to define mock.On call +// - ctx context.Context +// - id uint32 +func (_e *SearchClient_Expecter) OnSubjectAdded(ctx interface{}, id interface{}) *SearchClient_OnSubjectAdded_Call { + return &SearchClient_OnSubjectAdded_Call{Call: _e.mock.On("OnSubjectAdded", ctx, id)} +} + +func (_c *SearchClient_OnSubjectAdded_Call) Run(run func(ctx context.Context, id uint32)) *SearchClient_OnSubjectAdded_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(uint32)) + }) + return _c +} + +func (_c *SearchClient_OnSubjectAdded_Call) Return(_a0 error) *SearchClient_OnSubjectAdded_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *SearchClient_OnSubjectAdded_Call) RunAndReturn(run func(context.Context, uint32) error) *SearchClient_OnSubjectAdded_Call { + _c.Call.Return(run) + return _c +} + // OnSubjectDelete provides a mock function with given fields: ctx, id func (_m *SearchClient) OnSubjectDelete(ctx context.Context, id uint32) error { ret := _m.Called(ctx, id) diff --git a/internal/search/client.go b/internal/search/client.go index dc79300cc..62a3d30ea 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -150,6 +150,26 @@ func (c *client) Close() { } } +// OnSubjectAdded is the hook called by canal. +func (c *client) OnSubjectAdded(ctx context.Context, id model.SubjectID) error { + s, err := c.subjectRepo.Get(ctx, id, subject.Filter{}) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "subjectRepo.Get") + } + + if s.Redirect != 0 || s.Ban != 0 { + return c.OnSubjectDelete(ctx, id) + } + + extracted := extractSubject(&s) + + _, err = c.subjectIndex.UpdateDocumentsWithContext(ctx, extracted, "id") + return err +} + // OnSubjectUpdate is the hook called by canal. func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error { s, err := c.subjectRepo.Get(ctx, id, subject.Filter{}) diff --git a/internal/search/handle.go b/internal/search/handle.go index 4df44682f..b5842d2f5 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -38,8 +38,10 @@ import ( type Client interface { Handler - OnSubjectUpdate(ctx context.Context, id model.SubjectID) error Close() + + OnSubjectAdded(ctx context.Context, id model.SubjectID) error + OnSubjectUpdate(ctx context.Context, id model.SubjectID) error OnSubjectDelete(ctx context.Context, id model.SubjectID) error } diff --git a/internal/search/noop.go b/internal/search/noop.go index 0a929174b..bf68f32d8 100644 --- a/internal/search/noop.go +++ b/internal/search/noop.go @@ -28,6 +28,8 @@ var _ Client = NoopClient{} type NoopClient struct { } +func (n NoopClient) OnSubjectAdded(ctx context.Context, id model.SubjectID) error { return nil } + func (n NoopClient) Handle(c echo.Context) error { return c.String(http.StatusOK, "search is not enable") } From 8dc04ce7a47221ebb9ffea271514d1372a979854 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 07:16:44 +0800 Subject: [PATCH 437/888] ci: stop reuse cache with different go.mod --- .github/workflows/build.yaml | 1 - .github/workflows/lint.yaml | 1 - .github/workflows/release-docker.yaml | 1 - .github/workflows/test.yaml | 1 - 4 files changed, 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c8c0b5006..56f80f84a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -49,7 +49,6 @@ jobs: key: go-cache-122-${{ hashFiles('**/go.sum') }}-build restore-keys: | go-cache-122-${{ hashFiles('**/go.sum') }}- - go-cache-122- - name: Install Task uses: arduino/setup-task@v2 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 8cf84936b..cdd1cabac 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -46,7 +46,6 @@ jobs: key: go-cache-122-${{ hashFiles('**/go.sum') }}-lint restore-keys: | go-cache-122-${{ hashFiles('**/go.sum') }}- - go-cache-122- - run: go get -t ./... diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index d884e8538..55bdffcf1 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -39,7 +39,6 @@ jobs: key: go-cache-122-${{ hashFiles('**/go.sum') }}-build restore-keys: | go-cache-122-${{ hashFiles('**/go.sum') }}- - go-cache-122- - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a469247d5..120a98cb9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -56,7 +56,6 @@ jobs: key: go-cache-122-${{ hashFiles('**/go.sum') }}-test restore-keys: | go-cache-122-${{ hashFiles('**/go.sum') }}- - go-cache-122- - run: go get -t ./... From bb9ae3d2cc9fb943ea0a311acaf60a00d9faf33e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 07:21:36 +0800 Subject: [PATCH 438/888] fix: full search indexing missing latest subject --- internal/search/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/search/client.go b/internal/search/client.go index 62a3d30ea..d92627b94 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -299,7 +299,7 @@ func (c *client) firstRun() { c.log.Info(fmt.Sprintf("run full search index with max subject id %d", maxSubject.ID)) width := len(strconv.Itoa(int(maxSubject.ID))) - for i := model.SubjectID(1); i < maxSubject.ID; i++ { + for i := model.SubjectID(1); i <= maxSubject.ID; i++ { if i%10000 == 0 { c.log.Info(fmt.Sprintf("progress %*d/%d", width, i, maxSubject.ID)) } From 1f40e5700e979a334f0e00ec0b997df68af78f25 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 08:18:43 +0800 Subject: [PATCH 439/888] perf: tag search should hit index --- internal/tag/mysql_repo.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/internal/tag/mysql_repo.go b/internal/tag/mysql_repo.go index 475bb5cb8..535aa61de 100644 --- a/internal/tag/mysql_repo.go +++ b/internal/tag/mysql_repo.go @@ -16,8 +16,11 @@ package tag import ( "context" + "database/sql" + "errors" "github.com/jmoiron/sqlx" + "github.com/trim21/errgo" "go.uber.org/zap" "github.com/bangumi/server/dal/query" @@ -35,18 +38,31 @@ type mysqlRepo struct { } func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { + // this is not necessary information for query data, but it will help mysql to hit cache + var subjectType model.SubjectType + err := r.db.QueryRowContext(ctx, ` + select chii_subjects.subject_type_id from chii_subjects where subject_id = ? + `, id).Scan(&subjectType) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return []Tag{}, nil + } + + return nil, errgo.Trace(err) + } + var s []struct { Tid uint `db:"tlt_tid"` Name string `db:"tag_name"` TotalCount uint `db:"tag_results"` } - err := r.db.SelectContext(ctx, &s, ` + err = r.db.SelectContext(ctx, &s, ` select tlt_tid, tag_name, tag_results from chii_tag_neue_list - inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = tag_type + inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = ? where tlt_uid = 0 and tag_cat = ? and tlt_mid = ? - `, CatSubject, id) + `, subjectType, CatSubject, id) if err != nil { return nil, err } From 71ba1300ccc99799ac2decf14f24572dd759260d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 15 Oct 2024 08:23:02 +0800 Subject: [PATCH 440/888] perf: db query index miss --- internal/tag/mysql_repo.go | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/internal/tag/mysql_repo.go b/internal/tag/mysql_repo.go index 535aa61de..955388df6 100644 --- a/internal/tag/mysql_repo.go +++ b/internal/tag/mysql_repo.go @@ -16,11 +16,8 @@ package tag import ( "context" - "database/sql" - "errors" "github.com/jmoiron/sqlx" - "github.com/trim21/errgo" "go.uber.org/zap" "github.com/bangumi/server/dal/query" @@ -38,31 +35,18 @@ type mysqlRepo struct { } func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { - // this is not necessary information for query data, but it will help mysql to hit cache - var subjectType model.SubjectType - err := r.db.QueryRowContext(ctx, ` - select chii_subjects.subject_type_id from chii_subjects where subject_id = ? - `, id).Scan(&subjectType) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return []Tag{}, nil - } - - return nil, errgo.Trace(err) - } - var s []struct { Tid uint `db:"tlt_tid"` Name string `db:"tag_name"` TotalCount uint `db:"tag_results"` } - err = r.db.SelectContext(ctx, &s, ` + err := r.db.SelectContext(ctx, &s, ` select tlt_tid, tag_name, tag_results from chii_tag_neue_list - inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = ? + inner join chii_tag_neue_index on tlt_tid = tag_id where tlt_uid = 0 and tag_cat = ? and tlt_mid = ? - `, subjectType, CatSubject, id) + `, CatSubject, id) if err != nil { return nil, err } @@ -89,7 +73,7 @@ func (r mysqlRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod q, v, err := sqlx.In(` select tlt_tid, tag_name, tag_results, tlt_mid from chii_tag_neue_list - inner join chii_tag_neue_index on tlt_tid = tag_id and tlt_type = tag_type + inner join chii_tag_neue_index on tlt_tid = tag_id where tlt_uid = 0 and tag_cat = ? and tlt_mid IN (?) `, CatSubject, ids) if err != nil { From 456c163a1b6bc4448fe602b4dca92bb1b82364f1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 18 Oct 2024 21:50:22 +0800 Subject: [PATCH 441/888] chore: remove too many logging --- internal/auth/mysql_repository.go | 3 --- internal/character/mysql_repository.go | 5 ----- internal/collections/infra/mysql_repo.go | 2 -- internal/person/mysql_repository.go | 5 ----- internal/revision/mysql_repo_episode.go | 2 +- internal/revision/mysql_repository.go | 6 ++---- internal/subject/mysql_repository.go | 8 -------- internal/user/mysql_repository.go | 1 - 8 files changed, 3 insertions(+), 29 deletions(-) diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index 6ce8cae56..14e17b090 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -58,7 +58,6 @@ func (m mysqlRepo) GetByEmail(ctx context.Context, email string) (UserInfo, []by return UserInfo{}, nil, gerr.ErrNotFound } - m.log.Error("unexpected error happened", zap.Error(err)) return UserInfo{}, nil, errgo.Wrap(err, "gorm") } @@ -169,7 +168,6 @@ func (m mysqlRepo) CreateAccessToken( Info: infoByte, }) if err != nil { - m.log.Error("unexpected error happened", zap.Error(err)) return "", errgo.Wrap(err, "dal") } @@ -186,7 +184,6 @@ func (m mysqlRepo) ListAccessToken(ctx context.Context, userID model.UserID) ([] Where(m.q.AccessToken.UserID.Eq(strconv.FormatUint(uint64(userID), 10)), m.q.AccessToken.ExpiredAt.Gte(time.Now())).Find() if err != nil { - m.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } diff --git a/internal/character/mysql_repository.go b/internal/character/mysql_repository.go index 47bc3640c..543615ac1 100644 --- a/internal/character/mysql_repository.go +++ b/internal/character/mysql_repository.go @@ -47,7 +47,6 @@ func (r mysqlRepo) Get(ctx context.Context, id model.CharacterID) (model.Charact return model.Character{}, gerr.ErrCharacterNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) return model.Character{}, errgo.Wrap(err, "dal") } @@ -60,7 +59,6 @@ func (r mysqlRepo) GetByIDs( records, err := r.q.Character.WithContext(ctx).Preload(r.q.Character.Fields). Where(r.q.Character.ID.In(slice.ToUint32(ids)...)).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -80,7 +78,6 @@ func (r mysqlRepo) GetPersonRelated( Order(r.q.Cast.SubjectID). Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -103,7 +100,6 @@ func (r mysqlRepo) GetSubjectRelated( Where(r.q.CharacterSubjects.SubjectID.Eq(subjectID)). Order(r.q.CharacterSubjects.CharacterID).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -137,7 +133,6 @@ func (r mysqlRepo) GetSubjectRelationByIDs( Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e069801b1..e0375d152 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -467,7 +467,6 @@ func (r mysqlRepo) ListSubjectCollection( collections, err := q.Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -799,7 +798,6 @@ func (r mysqlRepo) ListPersonCollection( collections, err := q.Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } diff --git a/internal/person/mysql_repository.go b/internal/person/mysql_repository.go index 67d62be4d..95eccc14d 100644 --- a/internal/person/mysql_repository.go +++ b/internal/person/mysql_repository.go @@ -45,8 +45,6 @@ func (r mysqlRepo) Get(ctx context.Context, id model.PersonID) (model.Person, er return model.Person{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) - return model.Person{}, errgo.Wrap(err, "dal") } @@ -59,7 +57,6 @@ func (r mysqlRepo) GetSubjectRelated( relations, err := r.q.PersonSubjects.WithContext(ctx). Where(r.q.PersonSubjects.SubjectID.Eq(subjectID)).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -84,7 +81,6 @@ func (r mysqlRepo) GetCharacterRelated( Order(r.q.Cast.PersonID). Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -104,7 +100,6 @@ func (r mysqlRepo) GetByIDs(ctx context.Context, ids []model.PersonID) (map[mode u, err := r.q.Person.WithContext(ctx).Joins(r.q.Person.Fields). Where(r.q.Person.ID.In(ids...)).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } diff --git a/internal/revision/mysql_repo_episode.go b/internal/revision/mysql_repo_episode.go index 291098469..a47827f67 100644 --- a/internal/revision/mysql_repo_episode.go +++ b/internal/revision/mysql_repo_episode.go @@ -76,7 +76,7 @@ func (r mysqlRepo) GetEpisodeRelated(ctx context.Context, id model.RevisionID) ( r.log.Error("can't find revision text", zap.Uint32("id", revision.TextID)) return model.EpisodeRevision{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) + return model.EpisodeRevision{}, errgo.Wrap(err, "dal") } diff --git a/internal/revision/mysql_repository.go b/internal/revision/mysql_repository.go index 37b975c3d..99b7b337d 100644 --- a/internal/revision/mysql_repository.go +++ b/internal/revision/mysql_repository.go @@ -84,7 +84,7 @@ func (r mysqlRepo) GetPersonRelated(ctx context.Context, id model.RevisionID) (m if errors.Is(err, gorm.ErrRecordNotFound) { return model.PersonRevision{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) + return model.PersonRevision{}, errgo.Wrap(err, "dal") } data, err := r.q.RevisionText.WithContext(ctx). @@ -95,7 +95,6 @@ func (r mysqlRepo) GetPersonRelated(ctx context.Context, id model.RevisionID) (m return model.PersonRevision{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) return model.PersonRevision{}, errgo.Wrap(err, "dal") } return convertPersonRevisionDao(revision, data), nil @@ -148,7 +147,7 @@ func (r mysqlRepo) GetCharacterRelated(ctx context.Context, id model.RevisionID) r.log.Error("can't find revision text", zap.Uint32("id", revision.TextID)) return model.CharacterRevision{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) + return model.CharacterRevision{}, errgo.Wrap(err, "dal") } return convertCharacterRevisionDao(revision, data), nil @@ -199,7 +198,6 @@ func (r mysqlRepo) GetSubjectRelated(ctx context.Context, id model.RevisionID) ( return model.SubjectRevision{}, gerr.ErrNotFound } - r.log.Error("unexpected error happened", zap.Error(err)) return model.SubjectRevision{}, errgo.Wrap(err, "dal") } return convertSubjectRevisionDao(revision, true), nil diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 395979ebc..3e2a44179 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -54,7 +54,6 @@ func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID, filter Filter) ( return model.Subject{}, fmt.Errorf("%w: %d", gerr.ErrNotFound, id) } - r.log.Error("unexpected error happened", zap.Error(err)) return model.Subject{}, errgo.Wrap(err, "dal") } @@ -138,8 +137,6 @@ func (r mysqlRepo) GetPersonRelated( Joins(r.q.PersonSubjects.Person). Where(r.q.PersonSubjects.PersonID.Eq(personID)).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) - return nil, errgo.Wrap(err, "dal") } @@ -163,7 +160,6 @@ func (r mysqlRepo) GetCharacterRelated( Joins(r.q.CharacterSubjects.Subject). Where(r.q.CharacterSubjects.CharacterID.Eq(characterID)).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -187,7 +183,6 @@ func (r mysqlRepo) GetSubjectRelated( Joins(r.q.SubjectRelation.Subject).Where(r.q.SubjectRelation.SubjectID.Eq(subjectID)). Order(r.q.SubjectRelation.Order).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -217,7 +212,6 @@ func (r mysqlRepo) GetByIDs( records, err := q.Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -306,7 +300,6 @@ func (r mysqlRepo) Browse( subjects, err := q.Limit(limit).Offset(offset).Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } @@ -331,7 +324,6 @@ func (r mysqlRepo) GetActors( Order(r.q.Cast.PersonID). Find() if err != nil { - r.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } diff --git a/internal/user/mysql_repository.go b/internal/user/mysql_repository.go index 3cd7b960d..6f241d185 100644 --- a/internal/user/mysql_repository.go +++ b/internal/user/mysql_repository.go @@ -112,7 +112,6 @@ func (m mysqlRepo) GetByName(ctx context.Context, username string) (User, error) func (m mysqlRepo) GetByIDs(ctx context.Context, ids []model.UserID) (map[model.UserID]User, error) { u, err := m.q.Member.WithContext(ctx).Where(m.q.Member.ID.In(ids...)).Find() if err != nil { - m.log.Error("unexpected error happened", zap.Error(err)) return nil, errgo.Wrap(err, "dal") } From 9c439ba8c723e108712a4c35c02381fcfffd1fee Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 18 Oct 2024 21:52:53 +0800 Subject: [PATCH 442/888] refactor: ignore context cancel error --- dal/log.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dal/log.go b/dal/log.go index ed29dabb9..5f56bb7b1 100644 --- a/dal/log.go +++ b/dal/log.go @@ -82,7 +82,7 @@ func (l *metricsLog) Trace(_ context.Context, begin time.Time, fc func() (sql st l.h.Observe(elapsed.Seconds()) switch { - case err != nil && !errors.Is(err, gorm.ErrRecordNotFound): + case err != nil && !errors.Is(err, gorm.ErrRecordNotFound) && !errors.Is(err, context.Canceled): sql, rows := fc() l.log.Error("gorm error", zap.String("sql", sql), zap.Error(err), zap.Duration("duration", elapsed), zap.Int64("rows", rows)) From 2997789144d520da83dd27f7c70d1809ac5f9066 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 19 Oct 2024 01:02:27 +0800 Subject: [PATCH 443/888] refactor: add request path to context --- internal/pkg/logger/ctx.go | 7 ++++++- web/new.go | 8 +++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/pkg/logger/ctx.go b/internal/pkg/logger/ctx.go index 6fcc9694f..ca71d5442 100644 --- a/internal/pkg/logger/ctx.go +++ b/internal/pkg/logger/ctx.go @@ -23,17 +23,22 @@ import ( // https://github.com/uber-go/zap/issues/654 +// make RequestKey and unique. +type key string + //nolint:gochecknoglobals -var RequestKey = &struct{}{} +const RequestKey key = "logger.contextKey" type RequestTrace struct { IP string ReqID string + Path string } func (r *RequestTrace) MarshalLogObject(enc zapcore.ObjectEncoder) error { enc.AddString("ip", r.IP) enc.AddString("request-id", r.ReqID) + enc.AddString("path", r.Path) return nil } diff --git a/web/new.go b/web/new.go index aae9dfe10..b618d0731 100644 --- a/web/new.go +++ b/web/new.go @@ -99,13 +99,11 @@ func New() *echo.Echo { app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { - reqID := c.Request().Header.Get(cf.HeaderRequestID) - reqIP := c.RealIP() - c.SetRequest(c.Request(). WithContext(context.WithValue(c.Request().Context(), logger.RequestKey, &logger.RequestTrace{ - IP: reqIP, - ReqID: reqID, + IP: c.RealIP(), + ReqID: c.Request().Header.Get(cf.HeaderRequestID), + Path: c.Request().RequestURI, }))) return next(c) From c635c98e8a160b779a8189f35e4d27786ba3f7a0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 20 Oct 2024 05:02:50 +0800 Subject: [PATCH 444/888] chore: remove some logger --- internal/user/mysql_repository.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/internal/user/mysql_repository.go b/internal/user/mysql_repository.go index 6f241d185..c77fb0d3e 100644 --- a/internal/user/mysql_repository.go +++ b/internal/user/mysql_repository.go @@ -47,8 +47,6 @@ func (m mysqlRepo) GetFullUser(ctx context.Context, userID model.UserID) (FullUs if errors.Is(err, gorm.ErrRecordNotFound) { return FullUser{}, gerr.ErrUserNotFound } - - m.log.Error("unexpected error happened", zap.Error(err)) return FullUser{}, errgo.Wrap(err, "dal") } @@ -87,8 +85,6 @@ func (m mysqlRepo) GetByID(ctx context.Context, userID model.UserID) (User, erro if errors.Is(err, gorm.ErrRecordNotFound) { return User{}, gerr.ErrUserNotFound } - - m.log.Error("unexpected error happened", zap.Error(err)) return User{}, errgo.Wrap(err, "dal") } @@ -101,8 +97,6 @@ func (m mysqlRepo) GetByName(ctx context.Context, username string) (User, error) if errors.Is(err, gorm.ErrRecordNotFound) { return User{}, gerr.ErrUserNotFound } - - m.log.Error("unexpected error happened", zap.Error(err)) return User{}, errgo.Wrap(err, "dal") } From 78693d330dec2d09da75e82e97d45fdcb5484012 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:17:41 +0800 Subject: [PATCH 445/888] fix: make sure context are not canceled before request finish and set a default timeout --- go.mod | 2 +- internal/auth/mysql_repository.go | 2 -- main.go | 3 +++ web/error.go | 16 ++++++++++++++++ web/new.go | 21 +++++++++++++++------ web/res/error.go | 3 +++ 6 files changed, 38 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 064306e40..67c507e1f 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/go-playground/validator/v10 v10.22.1 github.com/go-resty/resty/v2 v2.15.3 github.com/go-sql-driver/mysql v1.8.1 + github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 github.com/jmoiron/sqlx v1.4.0 @@ -68,7 +69,6 @@ require ( github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index 14e17b090..806743f75 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -118,8 +118,6 @@ func (m mysqlRepo) GetPermission(ctx context.Context, groupID uint8) (Permission m.log.Error("can't find permission for group", zap.Uint8("user_group_id", groupID)) return Permission{}, nil } - - m.log.Error("unexpected error", zap.Error(err)) return Permission{}, errgo.Wrap(err, "dal") } diff --git a/main.go b/main.go index 7c046eaab..b89fe5333 100644 --- a/main.go +++ b/main.go @@ -17,11 +17,14 @@ package main import ( "fmt" + "github.com/google/uuid" + "github.com/bangumi/server/cmd" "github.com/bangumi/server/internal/pkg/logger" ) func main() { + uuid.EnableRandPool() if err := cmd.Root.Execute(); err != nil { logger.Fatal("failed to start app:\n" + fmt.Sprintf("\n%+v", err)) } diff --git a/web/error.go b/web/error.go index caaffcee8..bb7666b32 100644 --- a/web/error.go +++ b/web/error.go @@ -37,6 +37,7 @@ func globalNotFoundHandler(c echo.Context) error { }) } +//nolint:funlen func getDefaultErrorHandler() echo.HTTPErrorHandler { var log = logger.Named("http.err"). WithOptions(zap.AddStacktrace(zapcore.PanicLevel), zap.WithCaller(false)) @@ -49,6 +50,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { _ = c.JSON(e.Code, res.Error{ Title: http.StatusText(e.Code), Description: e.Msg, + RequestID: c.Request().Header.Get(cf.HeaderRequestID), Details: util.Detail(c), }) return @@ -69,6 +71,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { _ = c.JSON(http.StatusInternalServerError, res.Error{ Title: http.StatusText(e.Code), Description: e.Error(), + RequestID: c.Request().Header.Get(cf.HeaderRequestID), Details: util.DetailWithErr(c, err), }) return @@ -76,6 +79,19 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { } if errors.Is(err, context.Canceled) { + log.Error("unexpected echo error", + zap.Int("code", http.StatusInternalServerError), + zap.Any("message", "request timeout"), + zap.String("path", c.Request().URL.Path), + zap.String("query", c.Request().URL.RawQuery), + zap.String("cf-ray", c.Request().Header.Get(cf.HeaderRequestID)), + ) + + _ = c.JSON(http.StatusInternalServerError, res.Error{ + Title: "request timeout", + Description: "request timeout", + RequestID: c.Request().Header.Get(cf.HeaderRequestID), + }) return } diff --git a/web/new.go b/web/new.go index b618d0731..97b902520 100644 --- a/web/new.go +++ b/web/new.go @@ -24,6 +24,7 @@ import ( "strings" "time" + "github.com/google/uuid" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -99,12 +100,20 @@ func New() *echo.Echo { app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { - c.SetRequest(c.Request(). - WithContext(context.WithValue(c.Request().Context(), logger.RequestKey, &logger.RequestTrace{ - IP: c.RealIP(), - ReqID: c.Request().Header.Get(cf.HeaderRequestID), - Path: c.Request().RequestURI, - }))) + ctx, cancel := context.WithTimeout(context.WithoutCancel(c.Request().Context()), time.Minute) + defer cancel() + + reqID := c.Request().Header.Get(cf.HeaderRequestID) + + if reqID == "" { + reqID = uuid.Must(uuid.NewV7()).String() + } + + c.SetRequest(c.Request().WithContext(context.WithValue(ctx, logger.RequestKey, &logger.RequestTrace{ + IP: c.RealIP(), + ReqID: reqID, + Path: c.Request().RequestURI, + }))) return next(c) } diff --git a/web/res/error.go b/web/res/error.go index 1b34a81a4..94c1e5260 100644 --- a/web/res/error.go +++ b/web/res/error.go @@ -22,6 +22,7 @@ import ( "github.com/labstack/echo/v4" + "github.com/bangumi/server/web/req/cf" "github.com/bangumi/server/web/util" ) @@ -31,6 +32,7 @@ var ErrNotFound = NewError(http.StatusNotFound, "resource can't be found in the type Error struct { Title string `json:"title"` Details any `json:"details,omitempty"` + RequestID string `json:"request_id,omitempty"` Description string `json:"description"` } @@ -77,6 +79,7 @@ func InternalError(c echo.Context, err error, message string) error { return c.JSON(http.StatusInternalServerError, Error{ Title: "Internal Server Error", Description: message, + RequestID: c.Request().Header.Get(cf.HeaderRequestID), Details: util.DetailWithErr(c, err), }) } From 919645a075a052bb5065e904367094cd1512f17e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:53:24 +0800 Subject: [PATCH 446/888] chore: fix logging message --- web/error.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/error.go b/web/error.go index bb7666b32..b144db555 100644 --- a/web/error.go +++ b/web/error.go @@ -79,7 +79,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { } if errors.Is(err, context.Canceled) { - log.Error("unexpected echo error", + log.Error("request timeout", zap.Int("code", http.StatusInternalServerError), zap.Any("message", "request timeout"), zap.String("path", c.Request().URL.Path), From 3693afed59ce3a4cc3eaa4cd3f414c6e55b7ef0a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:54:35 +0800 Subject: [PATCH 447/888] chore: fix logging message --- web/error.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/web/error.go b/web/error.go index b144db555..729b4f241 100644 --- a/web/error.go +++ b/web/error.go @@ -80,8 +80,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { if errors.Is(err, context.Canceled) { log.Error("request timeout", - zap.Int("code", http.StatusInternalServerError), - zap.Any("message", "request timeout"), + zap.String("message", err.Error()), zap.String("path", c.Request().URL.Path), zap.String("query", c.Request().URL.RawQuery), zap.String("cf-ray", c.Request().Header.Get(cf.HeaderRequestID)), From 16767f7e309f6ee7b073816f3b57259a83e6bca8 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:55:30 +0800 Subject: [PATCH 448/888] chore: fix logging message --- web/error.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/error.go b/web/error.go index 729b4f241..888596d88 100644 --- a/web/error.go +++ b/web/error.go @@ -81,9 +81,10 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { if errors.Is(err, context.Canceled) { log.Error("request timeout", zap.String("message", err.Error()), - zap.String("path", c.Request().URL.Path), - zap.String("query", c.Request().URL.RawQuery), - zap.String("cf-ray", c.Request().Header.Get(cf.HeaderRequestID)), + zap.String("request_method", c.Request().Method), + zap.String("request_uri", c.Request().URL.Path), + zap.String("request_query", c.Request().URL.RawQuery), + zap.String("request_id", c.Request().Header.Get(cf.HeaderRequestID)), ) _ = c.JSON(http.StatusInternalServerError, res.Error{ From b63c8c25cfc0c3fbc5457ed95c18dd445c2924eb Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:56:01 +0800 Subject: [PATCH 449/888] chore: fix logging message --- web/error.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web/error.go b/web/error.go index 888596d88..3365e26e9 100644 --- a/web/error.go +++ b/web/error.go @@ -97,9 +97,10 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { log.Error("unexpected error", zap.Error(err), - zap.String("path", c.Path()), - zap.String("query", c.Request().URL.RawQuery), - zap.String("cf-ray", c.Request().Header.Get(cf.HeaderRequestID)), + zap.String("request_method", c.Request().Method), + zap.String("request_uri", c.Request().URL.Path), + zap.String("request_query", c.Request().URL.RawQuery), + zap.String("request_id", c.Request().Header.Get(cf.HeaderRequestID)), ) // unexpected error, return internal server error From 5ce009f43de385e1af1f5dcee07394f02917c904 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 21 Oct 2024 04:57:53 +0800 Subject: [PATCH 450/888] chore: fix logging message --- web/error.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/web/error.go b/web/error.go index 3365e26e9..fa57db47a 100644 --- a/web/error.go +++ b/web/error.go @@ -43,6 +43,8 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { WithOptions(zap.AddStacktrace(zapcore.PanicLevel), zap.WithCaller(false)) return func(err error, c echo.Context) { + reqID := c.Request().Header.Get(cf.HeaderRequestID) + { var e res.HTTPError if errors.As(err, &e) { @@ -50,7 +52,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { _ = c.JSON(e.Code, res.Error{ Title: http.StatusText(e.Code), Description: e.Msg, - RequestID: c.Request().Header.Get(cf.HeaderRequestID), + RequestID: reqID, Details: util.Detail(c), }) return @@ -63,15 +65,16 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { log.Error("unexpected echo error", zap.Int("code", e.Code), zap.Any("message", e.Message), - zap.String("path", c.Request().URL.Path), - zap.String("query", c.Request().URL.RawQuery), - zap.String("cf-ray", c.Request().Header.Get(cf.HeaderRequestID)), + zap.String("request_method", c.Request().Method), + zap.String("request_uri", c.Request().URL.Path), + zap.String("request_query", c.Request().URL.RawQuery), + zap.String("request_id", reqID), ) _ = c.JSON(http.StatusInternalServerError, res.Error{ Title: http.StatusText(e.Code), Description: e.Error(), - RequestID: c.Request().Header.Get(cf.HeaderRequestID), + RequestID: reqID, Details: util.DetailWithErr(c, err), }) return @@ -84,7 +87,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { zap.String("request_method", c.Request().Method), zap.String("request_uri", c.Request().URL.Path), zap.String("request_query", c.Request().URL.RawQuery), - zap.String("request_id", c.Request().Header.Get(cf.HeaderRequestID)), + zap.String("request_id", reqID), ) _ = c.JSON(http.StatusInternalServerError, res.Error{ @@ -100,7 +103,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { zap.String("request_method", c.Request().Method), zap.String("request_uri", c.Request().URL.Path), zap.String("request_query", c.Request().URL.RawQuery), - zap.String("request_id", c.Request().Header.Get(cf.HeaderRequestID)), + zap.String("request_id", reqID), ) // unexpected error, return internal server error From 5136dc4ab6deceee4ebaa72cee73f7fe8e26e41a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:31:25 +0800 Subject: [PATCH 451/888] chore(deps): update gcr.io/distroless/static docker digest to cc226ca (#650) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 08b4b7188..7e6c62637 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:69830f29ed7545c762777507426a412f97dad3d8d32bae3e74ad3fb6160917ea +FROM gcr.io/distroless/static@sha256:cc226ca14d17d01d4b278d9489da930a0dd11150df10ae95829d13e6d00fbdbf ENTRYPOINT ["/app/chii.exe"] From 59c3612723b1d71bb59c6e3a9179dc57c7614f42 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:34:01 +0800 Subject: [PATCH 452/888] build(deps): update module google.golang.org/protobuf to v1.35.1 (#655) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 67c507e1f..9cabcc7f4 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( golang.org/x/text v0.19.0 google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.34.2 + google.golang.org/protobuf v1.35.1 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index 7a7179cbf..169a5cb67 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 1f52e6cd96f449fd0e0ce4e55a87c6025a491912 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:34:10 +0800 Subject: [PATCH 453/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.29.0 (#654) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9cabcc7f4..41856058c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.12.0 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.28.0 + github.com/meilisearch/meilisearch-go v0.29.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.4 github.com/redis/rueidis v1.0.47 @@ -52,6 +52,7 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect + github.com/andybalholm/brotli v1.1.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect diff --git a/go.sum b/go.sum index 169a5cb67..4e6c96911 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,8 @@ filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4 github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= @@ -139,8 +141,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.28.0 h1:f3XJ66ZM+R8bANAOLqsjvoq/HhQNpVJPYoNt6QgNzME= -github.com/meilisearch/meilisearch-go v0.28.0/go.mod h1:Szcc9CaDiKIfjdgdt49jlmDKpEzjD+x+b6Y6heMdlQ0= +github.com/meilisearch/meilisearch-go v0.29.0 h1:HZ9NEKN59USINQ/DXJge/aaXq8IrsKbXGTdAoBaaDz4= +github.com/meilisearch/meilisearch-go v0.29.0/go.mod h1:2cRCAn4ddySUsFfNDLVPod/plRibQsJkXF/4gLhxbOk= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= From 33a6a939dc738e12711bca15ed399045e0348109 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:34:39 +0800 Subject: [PATCH 454/888] build(deps): update module github.com/redis/rueidis to v1.0.48 (#653) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 41856058c..51c955c54 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/meilisearch/meilisearch-go v0.29.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.4 - github.com/redis/rueidis v1.0.47 + github.com/redis/rueidis v1.0.48 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 diff --git a/go.sum b/go.sum index 4e6c96911..11d29c207 100644 --- a/go.sum +++ b/go.sum @@ -164,8 +164,8 @@ github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJN github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.47 h1:41UdeXOo4eJuW+cfpUJuLtVGyO0QJY3A2rEYgJWlfHs= -github.com/redis/rueidis v1.0.47/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= +github.com/redis/rueidis v1.0.48 h1:ggZHjEtc/echUmPkGTfssRisnc3p/mIUEwrpbNsZ1mQ= +github.com/redis/rueidis v1.0.48/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= From 7ea877dbe9ee89b49d08c78209056f27fcc7c6d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:35:22 +0800 Subject: [PATCH 455/888] build(deps): update aws-sdk-go-v2 monorepo (#651) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 51c955c54..2235cdf3e 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.23.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go-v2 v1.32.2 - github.com/aws/aws-sdk-go-v2/credentials v1.17.41 - github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 + github.com/aws/aws-sdk-go-v2 v1.32.3 + github.com/aws/aws-sdk-go-v2/credentials v1.17.42 + github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 github.com/bytedance/sonic v1.12.3 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 @@ -54,13 +54,13 @@ require ( github.com/BurntSushi/toml v1.4.0 // indirect github.com/andybalholm/brotli v1.1.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 // indirect github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect diff --git a/go.sum b/go.sum index 11d29c207..4f43ffe96 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= -github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd0wk= +github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= -github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 h1:7edmS3VOBDhK00b/MwGtGglCm7hhwNYnjJs/PgFdMQE= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21/go.mod h1:Q9o5h4HoIWG8XfzxqiuK/CGUbepCJ8uTlaE3bAbxytQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.42 h1:sBP0RPjBU4neGpIYyx8mkU2QqLPl5u9cmdTWVzIpHkM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.42/go.mod h1:FwZBfU530dJ26rv9saAbxa9Ej3eF/AK0OAY86k13n4M= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22/go.mod h1:Y/SmAyPcOTmpeVaWSzSKiILfXTVJwrGmYZhcRbhWuEY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 h1:981MHwBaRZM7+9QSR6XamDzF/o7ouUGxFzr+nVSIhrs= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22/go.mod h1:1RA1+aBEfn+CAB/Mh0MB6LsdCYCnjZm7tKXtnk499ZQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 h1:yV+hCAHZZYJQcwAaszoBNwLbPItHvApxT0kVIw6jRgs= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22/go.mod h1:kbR1TL8llqB1eGnVbybcA4/wgScxdylOdyAd51yxPdw= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 h1:4FMHqLfk0efmTqhXVRL5xYRqlEBNBiRI7N6w4jsEdd4= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2/go.mod h1:LWoqeWlK9OZeJxsROW2RqrSPvQHKTpp69r/iDjwsSaw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 h1:t7iUP9+4wdc5lt3E41huP+GvQZJD38WLsgVp4iOtAjg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2/go.mod h1:/niFCtmuQNxqx9v8WAPq5qh7EH25U4BF6tjoyq9bObM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3 h1:xxHGZ+wUgZNACQmxtdvP5tgzfsxGS3vPpTP5Hy3iToE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.65.3/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 h1:kT6BcZsmMtNkP/iYMcRG+mIEA/IbeiUimXtGmqF39y0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3/go.mod h1:Z8uGua2k4PPaGOYn66pK02rhMrot3Xk3tpBuUFPomZU= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 h1:qcxX0JYlgWH3hpPUnd6U0ikcl6LLA9sLkXE2w1fpMvY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3/go.mod h1:cLSNEmI45soc+Ef8K/L+8sEA3A3pYFEYf5B5UI+6bH4= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 h1:ZC7Y/XgKUxwqcdhO5LE8P6oGP1eh6xlQReWNKfhvJno= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3/go.mod h1:WqfO7M9l9yUAw0HcHaikwRd/H6gzYdz7vjejCA5e2oY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 h1:p9TNFL8bFUMd+38YIpTAXpoxyz0MxC7FlbFEH4P4E1U= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2/go.mod h1:fNjyo0Coen9QTwQLWeV6WO2Nytwiu+cCcWaTdKCAqqE= github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From d4c6bf268ab02e3c69cfe59aee22d4bd120376c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 1 Nov 2024 03:36:07 +0800 Subject: [PATCH 456/888] build(deps): update module github.com/prometheus/client_golang to v1.20.5 (#652) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2235cdf3e..7e762a975 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.29.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.20.4 + github.com/prometheus/client_golang v1.20.5 github.com/redis/rueidis v1.0.48 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 diff --git a/go.sum b/go.sum index 4f43ffe96..c3f6b5715 100644 --- a/go.sum +++ b/go.sum @@ -156,8 +156,8 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= -github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= From 6bcf80134ef6a22e720099dbbdb84f3c5bc32827 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Nov 2024 07:32:43 +0800 Subject: [PATCH 457/888] build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 (#659) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 7e762a975..22e26191d 100644 --- a/go.mod +++ b/go.mod @@ -69,7 +69,7 @@ require ( github.com/cloudwego/iasm v0.2.0 // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect - github.com/golang-jwt/jwt/v4 v4.5.0 // indirect + github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect diff --git a/go.sum b/go.sum index c3f6b5715..93b33ca2b 100644 --- a/go.sum +++ b/go.sum @@ -71,8 +71,9 @@ github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpv github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= +github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= From 8e31b4093d2518c009de6a1d81a06ae595754382 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 02:39:36 +0800 Subject: [PATCH 458/888] build(deps): update module github.com/bytedance/sonic to v1.12.4 (#661) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 22e26191d..92fbde363 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.42 github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 - github.com/bytedance/sonic v1.12.3 + github.com/bytedance/sonic v1.12.4 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 93b33ca2b..93e7a9796 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.3 h1:W2MGa7RCU1QTeYRTPE3+88mVC0yXmsRQRChiyVocVjU= -github.com/bytedance/sonic v1.12.3/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.4 h1:9Csb3c9ZJhfUWeMtpCDCq6BUoH5ogfDFLUgQ/jG+R0k= +github.com/bytedance/sonic v1.12.4/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= From 6ad9900cce73de805d6e7f9f8fa2edd8cadbe84b Mon Sep 17 00:00:00 2001 From: Predidit <34627277+Predidit@users.noreply.github.com> Date: Mon, 18 Nov 2024 22:19:16 +0800 Subject: [PATCH 459/888] revert: disable img proxy for person grid image (#662) --- web/res/image.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/res/image.go b/web/res/image.go index 3b5fc5c0d..7f870bec2 100644 --- a/web/res/image.go +++ b/web/res/image.go @@ -93,7 +93,7 @@ func PersonImage(s string) PersonImages { Large: "https://lain.bgm.tv/pic/crt/l/" + s, Small: "https://lain.bgm.tv/r/100/pic/crt/l/" + s, - Grid: "https://lain.bgm.tv/r/200/pic/crt/l/" + s, + Grid: "https://lain.bgm.tv/pic/crt/g/" + s, Medium: "https://lain.bgm.tv/r/400/pic/crt/l/" + s, } } From e4bb7f943d2626640074082f5e6db7922ba8bd7c Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 25 Nov 2024 14:45:20 +0800 Subject: [PATCH 460/888] fix: filter nsfw on search (#663) --- internal/search/handle.go | 8 ++++---- internal/search/handle_internal_test.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index b5842d2f5..f3ef51f35 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -103,7 +103,7 @@ func (c *client) Handle(ctx echo.Context) error { } if !auth.AllowNSFW() { - r.Filter.NSFW.Set = false + r.Filter.NSFW = null.Bool{Set: true, Value: false} } result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), r.Sort, q.Limit, q.Offset) @@ -119,7 +119,7 @@ func (c *client) Handle(ctx echo.Context) error { var sf = subject.Filter{} - if !r.Filter.NSFW.Set || !r.Filter.NSFW.Value { + if r.Filter.NSFW.Set && !r.Filter.NSFW.Value { sf.NSFW = null.Bool{Set: true, Value: false} } @@ -223,8 +223,8 @@ func filterToMeiliFilter(req ReqFilter) [][]string { })) } - if !req.NSFW.Set || !req.NSFW.Value { - filter = append(filter, []string{"nsfw = false"}) + if req.NSFW.Set { + filter = append(filter, []string{fmt.Sprintf("nsfw = %t", req.NSFW.Value)}) } for _, tag := range req.MetaTags { diff --git a/internal/search/handle_internal_test.go b/internal/search/handle_internal_test.go index 738f5009f..fb54defb2 100644 --- a/internal/search/handle_internal_test.go +++ b/internal/search/handle_internal_test.go @@ -27,7 +27,7 @@ func Test_ReqFilterToMeiliFilter(t *testing.T) { actual := filterToMeiliFilter(ReqFilter{ Tag: []string{"a", "b"}, - NSFW: null.Bool{Set: false}, + NSFW: null.Bool{Set: true, Value: false}, }) require.Equal(t, [][]string{ From a5d5e62e37730b6ebaebc9d0d43534185b78ec99 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 25 Nov 2024 16:35:47 +0800 Subject: [PATCH 461/888] feat: add more fields for subject search (#664) --- internal/search/client.go | 4 ++ internal/search/handle.go | 114 ++++++++++++++++++++++++++-------- openapi/v0.yaml | 61 +----------------- web/handler/subject/browse.go | 12 +++- web/handler/subject/get.go | 80 +----------------------- web/res/character.go | 2 +- web/res/person.go | 2 +- web/res/subject.go | 84 +++++++++++++++++++++++-- 8 files changed, 186 insertions(+), 173 deletions(-) diff --git a/internal/search/client.go b/internal/search/client.go index d92627b94..b3b3b50a2 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -39,6 +39,7 @@ import ( "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" ) // New provide a search app is AppConfig.MeiliSearchURL is empty string, return nope search client. @@ -47,6 +48,7 @@ import ( func New( cfg config.AppConfig, subjectRepo subject.Repo, + tagRepo tag.CachedRepo, log *zap.Logger, query *query.Query, ) (Client, error) { @@ -78,6 +80,7 @@ func New( subjectIndex: meili.Index("subjects"), log: log.Named("search"), subjectRepo: subjectRepo, + tagRepo: tagRepo, } if cfg.AppType != config.AppTypeCanal { @@ -136,6 +139,7 @@ func (c *client) canalInit(cfg config.AppConfig) error { type client struct { subjectRepo subject.Repo + tagRepo tag.CachedRepo meili meilisearch.ServiceManager q *query.Query subjectIndex meilisearch.IndexManager diff --git a/internal/search/handle.go b/internal/search/handle.go index f3ef51f35..2c407bc8b 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -25,12 +25,16 @@ import ( "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" + "github.com/samber/lo" "github.com/trim21/errgo" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/generic/slice" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" + "github.com/bangumi/server/internal/tag" + "github.com/bangumi/server/pkg/wiki" "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/res" @@ -76,17 +80,26 @@ type hit struct { } type ReponseSubject struct { - Date string `json:"date"` - Image string `json:"image"` - Type uint8 `json:"type"` - Summary string `json:"summary"` - Name string `json:"name"` - NameCN string `json:"name_cn"` - Tags []res.SubjectTag `json:"tags"` - Score float64 `json:"score"` - ID model.SubjectID `json:"id"` - Rank uint32 `json:"rank"` - NSFW bool `json:"nsfw"` + Date *string `json:"date"` + Platform *string `json:"platform"` + Images res.SubjectImages `json:"images"` + Image string `json:"image"` + Summary string `json:"summary"` + Name string `json:"name"` + NameCN string `json:"name_cn"` + Tags []res.SubjectTag `json:"tags"` + Infobox res.V0wiki `json:"infobox"` + Rating res.Rating `json:"rating"` + Collection res.SubjectCollectionStat `json:"collection"` + ID model.SubjectID `json:"id"` + Eps uint32 `json:"eps"` + MetaTags []string `json:"meta_tags"` + Volumes uint32 `json:"volumes"` + Series bool `json:"series"` + Locked bool `json:"locked"` + NSFW bool `json:"nsfw"` + TypeID model.SubjectType `json:"type"` + Redirect model.SubjectID `json:"-"` } //nolint:funlen @@ -128,28 +141,20 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } + tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) + if err != nil { + return errgo.Wrap(err, "tagRepo.GetByIDs") + } + var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { s, ok := subjects[id] if !ok { continue } - - data = append(data, ReponseSubject{ - Date: s.Date, - Image: res.SubjectImage(s.Image).Large, - Type: s.TypeID, - Summary: s.Summary, - Name: s.Name, - NameCN: s.NameCN, - Tags: slice.Map(s.Tags, func(item model.Tag) res.SubjectTag { - return res.SubjectTag{Name: item.Name, Count: item.Count} - }), - Score: s.Rating.Score, - ID: s.ID, - Rank: s.Rating.Rank, - NSFW: s.NSFW, - }) + metaTags := tags[id] + subject := toResponseSubject(s, metaTags) + data = append(data, subject) } return ctx.JSON(http.StatusOK, res.Paged{ @@ -323,3 +328,58 @@ func isDigitsOnly(s string) bool { } return true } + +func toResponseSubject(s model.Subject, metaTags []tag.Tag) ReponseSubject { + images := res.SubjectImage(s.Image) + return ReponseSubject{ + ID: s.ID, + Image: images.Large, + Images: images, + Summary: s.Summary, + Name: s.Name, + Platform: res.PlatformString(s), + NameCN: s.NameCN, + Date: null.NilString(s.Date), + Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), + Volumes: s.Volumes, + Redirect: s.Redirect, + Eps: s.Eps, + MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) string { + return item.Name + }), + Tags: slice.Map(s.Tags, func(tag model.Tag) res.SubjectTag { + return res.SubjectTag{ + Name: tag.Name, + Count: tag.Count, + } + }), + Collection: res.SubjectCollectionStat{ + OnHold: s.OnHold, + Wish: s.Wish, + Dropped: s.Dropped, + Collect: s.Collect, + Doing: s.Doing, + }, + TypeID: s.TypeID, + Series: s.Series, + Locked: s.Locked(), + NSFW: s.NSFW, + Rating: res.Rating{ + Rank: s.Rating.Rank, + Total: s.Rating.Total, + Count: res.Count{ + Field1: s.Rating.Count.Field1, + Field2: s.Rating.Count.Field2, + Field3: s.Rating.Count.Field3, + Field4: s.Rating.Count.Field4, + Field5: s.Rating.Count.Field5, + Field6: s.Rating.Count.Field6, + Field7: s.Rating.Count.Field7, + Field8: s.Rating.Count.Field8, + Field9: s.Rating.Count.Field9, + Field10: s.Rating.Count.Field10, + }, + Score: s.Rating.Score, + }, + } +} diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 53cc49801..c7ea620dd 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -143,66 +143,7 @@ paths: content: application/json: schema: - description: 用户信息 - type: object - properties: - total: - description: 搜索结果数量 - type: integer - example: 100 - limit: - description: 当前分页参数 - type: integer - example: 100 - offset: - description: 当前分页参数 - type: integer - example: 100 - data: - type: array - items: - type: object - required: - - score - - id - - rank - - tags - - name - - name_cn - - image - - date - - summary - properties: - id: - description: 条目ID - type: integer - example: 8 - type: - $ref: "#/components/schemas/SubjectType" - "date": - "type": "string" - description: 上映/开播/连载开始日期,可能为空字符串 - "image": - "type": "string" - format: url - description: 封面 - summary: - type: string - description: 条目描述 - "name": - "type": "string" - description: 条目原名 - "name_cn": - "type": "string" - description: 条目中文名 - "tags": - $ref: "#/components/schemas/SubjectTags" - "score": - description: 评分 - "type": "number" - "rank": - description: 排名 - "type": "integer" + "$ref": "#/components/schemas/Paged_Subject" "/v0/subjects": get: diff --git a/web/handler/subject/browse.go b/web/handler/subject/browse.go index 2968a425b..1e08f763d 100644 --- a/web/handler/subject/browse.go +++ b/web/handler/subject/browse.go @@ -58,9 +58,19 @@ func (h Subject) Browse(c echo.Context) error { if err != nil { return errgo.Wrap(err, "failed to browse subjects") } + ids := make([]model.SubjectID, 0, len(subjects)) + for _, s := range subjects { + ids = append(ids, s.ID) + } + tags, err := h.tag.GetByIDs(c.Request().Context(), ids) + if err != nil { + return errgo.Wrap(err, "failed to get tags") + } + data := make([]res.SubjectV0, 0, len(subjects)) for _, s := range subjects { - data = append(data, convertModelSubject(s, 0, nil)) + metaTags := tags[s.ID] + data = append(data, res.ToSubjectV0(s, 0, metaTags)) } return c.JSON(http.StatusOK, res.Paged{Data: data, Total: count, Limit: page.Limit, Offset: page.Offset}) diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 17a3568a1..4aa9179b7 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -20,21 +20,14 @@ import ( "net/http" "github.com/labstack/echo/v4" - "github.com/samber/lo" "github.com/trim21/errgo" - "go.uber.org/zap" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/compat" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" - "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/pkg/vars" - "github.com/bangumi/server/pkg/wiki" "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/res" @@ -73,24 +66,7 @@ func (h Subject) Get(c echo.Context) error { return err } - return c.JSON(http.StatusOK, convertModelSubject(s, totalEpisode, metaTags)) -} - -func platformString(s model.Subject) *string { - platform, ok := vars.PlatformMap[s.TypeID][s.PlatformID] - if !ok && s.TypeID != 0 { - logger.Warn("unknown platform", - zap.Uint32("subject", s.ID), - zap.Uint8("type", s.TypeID), - zap.Uint16("platform", s.PlatformID), - ) - - return nil - } - - v := platform.String() - - return &v + return c.JSON(http.StatusOK, res.ToSubjectV0(s, totalEpisode, metaTags)) } func (h Subject) GetImage(c echo.Context) error { @@ -121,60 +97,6 @@ func (h Subject) GetImage(c echo.Context) error { return c.Redirect(http.StatusFound, l) } -func convertModelSubject(s model.Subject, totalEpisode int64, metaTags []tag.Tag) res.SubjectV0 { - return res.SubjectV0{ - TotalEpisodes: totalEpisode, - ID: s.ID, - Image: res.SubjectImage(s.Image), - Summary: s.Summary, - Name: s.Name, - Platform: platformString(s), - NameCN: s.NameCN, - Date: null.NilString(s.Date), - Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), - Volumes: s.Volumes, - Redirect: s.Redirect, - Eps: s.Eps, - MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) string { - return item.Name - }), - Tags: slice.Map(s.Tags, func(tag model.Tag) res.SubjectTag { - return res.SubjectTag{ - Name: tag.Name, - Count: tag.Count, - } - }), - Collection: res.SubjectCollectionStat{ - OnHold: s.OnHold, - Wish: s.Wish, - Dropped: s.Dropped, - Collect: s.Collect, - Doing: s.Doing, - }, - TypeID: s.TypeID, - Series: s.Series, - Locked: s.Locked(), - NSFW: s.NSFW, - Rating: res.Rating{ - Rank: s.Rating.Rank, - Total: s.Rating.Total, - Count: res.Count{ - Field1: s.Rating.Count.Field1, - Field2: s.Rating.Count.Field2, - Field3: s.Rating.Count.Field3, - Field4: s.Rating.Count.Field4, - Field5: s.Rating.Count.Field5, - Field6: s.Rating.Count.Field6, - Field7: s.Rating.Count.Field7, - Field8: s.Rating.Count.Field8, - Field9: s.Rating.Count.Field9, - Field10: s.Rating.Count.Field10, - }, - Score: s.Rating.Score, - }, - } -} - func readableRelation(destSubjectType model.SubjectType, relation uint16) string { var r, ok = vars.RelationMap[destSubjectType][relation] if !ok || relation == 1 { diff --git a/web/res/character.go b/web/res/character.go index 703b55d37..2f6ac467d 100644 --- a/web/res/character.go +++ b/web/res/character.go @@ -25,7 +25,7 @@ type CharacterV0 struct { Images PersonImages `json:"images"` Summary string `json:"summary"` Name string `json:"name"` - Infobox v0wiki `json:"infobox"` + Infobox V0wiki `json:"infobox"` Stat Stat `json:"stat"` ID model.CharacterID `json:"id"` Redirect model.CharacterID `json:"-"` diff --git a/web/res/person.go b/web/res/person.go index f08c8f101..8c5410e31 100644 --- a/web/res/person.go +++ b/web/res/person.go @@ -34,7 +34,7 @@ type PersonV0 struct { Summary string `json:"summary"` Name string `json:"name"` Img string `json:"img"` - Infobox v0wiki `json:"infobox"` + Infobox V0wiki `json:"infobox"` Career []string `json:"career"` Stat Stat `json:"stat"` Redirect model.PersonID `json:"-"` diff --git a/web/res/subject.go b/web/res/subject.go index 66300e7b5..c7bf3ab01 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -18,15 +18,22 @@ import ( "time" "github.com/samber/lo" + "go.uber.org/zap" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/generic/slice" "github.com/bangumi/server/internal/pkg/gstr" + "github.com/bangumi/server/internal/pkg/logger" + "github.com/bangumi/server/internal/pkg/null" + "github.com/bangumi/server/internal/tag" + "github.com/bangumi/server/pkg/vars" + "github.com/bangumi/server/pkg/wiki" ) const defaultShortSummaryLength = 120 -type v0wiki = []any +type V0wiki = []any type SubjectTag struct { Name string `json:"name"` @@ -37,12 +44,12 @@ type SubjectTag struct { type SubjectV0 struct { Date *string `json:"date"` Platform *string `json:"platform"` - Image SubjectImages `json:"images"` + Images SubjectImages `json:"images"` Summary string `json:"summary"` Name string `json:"name"` NameCN string `json:"name_cn"` Tags []SubjectTag `json:"tags"` - Infobox v0wiki `json:"infobox"` + Infobox V0wiki `json:"infobox"` Rating Rating `json:"rating"` TotalEpisodes int64 `json:"total_episodes" doc:"episodes count in database"` Collection SubjectCollectionStat `json:"collection"` @@ -101,6 +108,75 @@ func ToSlimSubjectV0(s model.Subject) SlimSubjectV0 { } } +func PlatformString(s model.Subject) *string { + platform, ok := vars.PlatformMap[s.TypeID][s.PlatformID] + if !ok && s.TypeID != 0 { + logger.Warn("unknown platform", + zap.Uint32("subject", s.ID), + zap.Uint8("type", s.TypeID), + zap.Uint16("platform", s.PlatformID), + ) + + return nil + } + v := platform.String() + return &v +} + +func ToSubjectV0(s model.Subject, totalEpisode int64, metaTags []tag.Tag) SubjectV0 { + return SubjectV0{ + TotalEpisodes: totalEpisode, + ID: s.ID, + Images: SubjectImage(s.Image), + Summary: s.Summary, + Name: s.Name, + Platform: PlatformString(s), + NameCN: s.NameCN, + Date: null.NilString(s.Date), + Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), + Volumes: s.Volumes, + Redirect: s.Redirect, + Eps: s.Eps, + MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) string { + return item.Name + }), + Tags: slice.Map(s.Tags, func(tag model.Tag) SubjectTag { + return SubjectTag{ + Name: tag.Name, + Count: tag.Count, + } + }), + Collection: SubjectCollectionStat{ + OnHold: s.OnHold, + Wish: s.Wish, + Dropped: s.Dropped, + Collect: s.Collect, + Doing: s.Doing, + }, + TypeID: s.TypeID, + Series: s.Series, + Locked: s.Locked(), + NSFW: s.NSFW, + Rating: Rating{ + Rank: s.Rating.Rank, + Total: s.Rating.Total, + Count: Count{ + Field1: s.Rating.Count.Field1, + Field2: s.Rating.Count.Field2, + Field3: s.Rating.Count.Field3, + Field4: s.Rating.Count.Field4, + Field5: s.Rating.Count.Field5, + Field6: s.Rating.Count.Field6, + Field7: s.Rating.Count.Field7, + Field8: s.Rating.Count.Field8, + Field9: s.Rating.Count.Field9, + Field10: s.Rating.Count.Field10, + }, + Score: s.Rating.Score, + }, + } +} + type SubjectCollectionStat struct { OnHold uint32 `json:"on_hold"` Dropped uint32 `json:"dropped"` @@ -220,7 +296,7 @@ type IndexSubjectV0 struct { Name string `json:"name"` NameCN string `json:"name_cn"` Comment string `json:"comment"` - Infobox v0wiki `json:"infobox"` + Infobox V0wiki `json:"infobox"` ID model.SubjectID `json:"id"` TypeID model.SubjectType `json:"type"` } From 52ee030e7ffd482d43870367dfc15b001eed111c Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 25 Nov 2024 22:16:02 +0800 Subject: [PATCH 462/888] fix: return empty for empty tag request (#665) --- internal/tag/cache_repo.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index b1ca5e190..74c6ab70e 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -74,6 +74,11 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { var tags []cachedTags + result := make(map[model.SubjectID][]Tag, len(ids)) + if len(ids) == 0 { + return result, nil + } + err := r.cache.MGet(ctx, lo.Map(ids, func(item model.SubjectID, index int) string { return cachekey.SubjectMetaTag(item) }), &tags) @@ -81,7 +86,6 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod return nil, errgo.Wrap(err, "cache.MGet") } - result := make(map[model.SubjectID][]Tag, len(ids)) for _, tag := range tags { result[tag.ID] = tag.Tags } From 61c46bcad0c216ad779d0a9df2d8a4ec5a7d65e2 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Mon, 25 Nov 2024 22:31:44 +0800 Subject: [PATCH 463/888] fix: missing tag cached repo for canal (#666) --- canal/canal.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/canal/canal.go b/canal/canal.go index 985c7b4de..1681c5d10 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -64,7 +64,7 @@ func Main() error { driver.NewRueidisClient, logger.Copy, cache.NewRedisCache, subject.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, driver.NewS3, - + tag.NewCachedRepo, tag.NewMysqlRepo, newEventHandler, From 942e226e795150f91d19824371f247ad2d02d041 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:10:29 +0800 Subject: [PATCH 464/888] metrics: add meta tags cached count (#667) --- internal/tag/cache_repo.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 74c6ab70e..65ba0c288 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -18,6 +18,7 @@ import ( "context" "time" + "github.com/prometheus/client_golang/prometheus" "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" @@ -44,6 +45,28 @@ type cachedTags struct { Tags []Tag } +//nolint:gochecknoglobals +var CacheCount = prometheus.NewCounter(prometheus.CounterOpts{ + Subsystem: "chii", + Name: "cached_count_total", + Help: "", + ConstLabels: map[string]string{"repo": "meta_tags"}, +}) + +//nolint:gochecknoglobals +var NotCacheCount = prometheus.NewCounter(prometheus.CounterOpts{ + Subsystem: "chii", + Name: "not_cached_count_total", + Help: "", + ConstLabels: map[string]string{"repo": "meta_tags"}, +}) + +//nolint:gochecknoinits +func init() { + prometheus.MustRegister(CacheCount) + prometheus.MustRegister(NotCacheCount) +} + func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { var key = cachekey.SubjectMetaTag(id) @@ -54,8 +77,10 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { } if ok { + CacheCount.Add(1) return s.Tags, nil } + NotCacheCount.Add(1) tags, err := r.repo.Get(ctx, id) if err != nil { @@ -86,6 +111,7 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod return nil, errgo.Wrap(err, "cache.MGet") } + CacheCount.Add(float64(len(tags))) for _, tag := range tags { result[tag.ID] = tag.Tags } @@ -97,6 +123,7 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod } } + NotCacheCount.Add(float64(len(missing))) missingFromCache, err := r.repo.GetByIDs(ctx, missing) if err != nil { return nil, err From 38d2434e949eb5de53efaaf0db79f58dd23ce5df Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:14:01 +0800 Subject: [PATCH 465/888] build: add commit date to docker tags (#668) --- .github/workflows/release-docker.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 55bdffcf1..e9fbd9837 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -65,6 +65,7 @@ jobs: images: ${{ env.IMAGE }} tags: | type=semver,event=tag,pattern=v{{version}} + type=raw,value={{commit_date 'YYYY-MM-DD'}}-{{sha}} type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} From 47fb70b3577583d1733d9942905a84404c246d29 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:32:26 +0800 Subject: [PATCH 466/888] perf: cache subject empty meta tags list (#669) --- internal/cachekey/cachekey.go | 2 +- internal/tag/cache_repo.go | 1 + internal/tag/mysql_repo.go | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/internal/cachekey/cachekey.go b/internal/cachekey/cachekey.go index 2f424a728..524fe1ded 100644 --- a/internal/cachekey/cachekey.go +++ b/internal/cachekey/cachekey.go @@ -56,5 +56,5 @@ func User(id model.UserID) string { } func SubjectMetaTag(id model.SubjectID) string { - return resPrefix + "subject:meta-tags:" + strconv.FormatUint(uint64(id), 10) + return "chii:v0:subject:meta-tags:" + strconv.FormatUint(uint64(id), 10) } diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 65ba0c288..bfda1de40 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -97,6 +97,7 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { return tags, nil } +// GetByIDs also need to change version in [cachekey.SubjectMetaTag] if schema is changed. func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { var tags []cachedTags result := make(map[model.SubjectID][]Tag, len(ids)) diff --git a/internal/tag/mysql_repo.go b/internal/tag/mysql_repo.go index 955388df6..a171efcf0 100644 --- a/internal/tag/mysql_repo.go +++ b/internal/tag/mysql_repo.go @@ -93,5 +93,13 @@ func (r mysqlRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod }) } + // set empty slice for subjects without tags + // this help we cache them. + for _, id := range ids { + if _, ok := tags[id]; !ok { + tags[id] = []Tag{} + } + } + return tags, nil } From be53cba54b1f9c4c8f1ceaa5969cf591d136a0f4 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:38:47 +0800 Subject: [PATCH 467/888] perf: only query tags for non-empty id list --- internal/tag/cache_repo.go | 47 +++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index bfda1de40..900cde4df 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -46,28 +46,27 @@ type cachedTags struct { } //nolint:gochecknoglobals -var CacheCount = prometheus.NewCounter(prometheus.CounterOpts{ +var CachedCount = prometheus.NewCounter(prometheus.CounterOpts{ Subsystem: "chii", - Name: "cached_count_total", - Help: "", + Name: "query_cached_count_total", ConstLabels: map[string]string{"repo": "meta_tags"}, }) //nolint:gochecknoglobals -var NotCacheCount = prometheus.NewCounter(prometheus.CounterOpts{ +var TotalCount = prometheus.NewCounter(prometheus.CounterOpts{ Subsystem: "chii", - Name: "not_cached_count_total", - Help: "", + Name: "query_count_total", ConstLabels: map[string]string{"repo": "meta_tags"}, }) //nolint:gochecknoinits func init() { - prometheus.MustRegister(CacheCount) - prometheus.MustRegister(NotCacheCount) + prometheus.MustRegister(CachedCount) + prometheus.MustRegister(TotalCount) } func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { + TotalCount.Add(1) var key = cachekey.SubjectMetaTag(id) var s cachedTags @@ -77,10 +76,9 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { } if ok { - CacheCount.Add(1) + CachedCount.Add(1) return s.Tags, nil } - NotCacheCount.Add(1) tags, err := r.repo.Get(ctx, id) if err != nil { @@ -99,6 +97,8 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { // GetByIDs also need to change version in [cachekey.SubjectMetaTag] if schema is changed. func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { + TotalCount.Add(float64(len(ids))) + var tags []cachedTags result := make(map[model.SubjectID][]Tag, len(ids)) if len(ids) == 0 { @@ -112,7 +112,7 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod return nil, errgo.Wrap(err, "cache.MGet") } - CacheCount.Add(float64(len(tags))) + CachedCount.Add(float64(len(tags))) for _, tag := range tags { result[tag.ID] = tag.Tags } @@ -124,19 +124,20 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod } } - NotCacheCount.Add(float64(len(missing))) - missingFromCache, err := r.repo.GetByIDs(ctx, missing) - if err != nil { - return nil, err - } - for id, tag := range missingFromCache { - result[id] = tag - err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ - ID: id, - Tags: tag, - }, time.Hour) + if len(missing) != 0 { + missingFromCache, err := r.repo.GetByIDs(ctx, missing) if err != nil { - return nil, errgo.Wrap(err, "cache.Set") + return nil, err + } + for id, tag := range missingFromCache { + result[id] = tag + err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ + ID: id, + Tags: tag, + }, time.Hour) + if err != nil { + return nil, errgo.Wrap(err, "cache.Set") + } } } From 4176a449867722e4ede99c36621debff2299bfad Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:42:57 +0800 Subject: [PATCH 468/888] style: add help message to metrics --- internal/tag/cache_repo.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 900cde4df..ccdcfe4cd 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -49,6 +49,7 @@ type cachedTags struct { var CachedCount = prometheus.NewCounter(prometheus.CounterOpts{ Subsystem: "chii", Name: "query_cached_count_total", + Help: "cached sql query count total", ConstLabels: map[string]string{"repo": "meta_tags"}, }) @@ -56,6 +57,7 @@ var CachedCount = prometheus.NewCounter(prometheus.CounterOpts{ var TotalCount = prometheus.NewCounter(prometheus.CounterOpts{ Subsystem: "chii", Name: "query_count_total", + Help: "sql query count total", ConstLabels: map[string]string{"repo": "meta_tags"}, }) From b5322530d51a42d59b8b636f83aae23df03a98fa Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:44:52 +0800 Subject: [PATCH 469/888] perf: always cache meta tags 1h --- internal/tag/cache_repo.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index ccdcfe4cd..e4a476b9f 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -67,6 +67,8 @@ func init() { prometheus.MustRegister(TotalCount) } +// also need to change version in [cachekey.SubjectMetaTag] if schema is changed. + func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { TotalCount.Add(1) var key = cachekey.SubjectMetaTag(id) @@ -90,14 +92,13 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { if e := r.cache.Set(ctx, key, cachedTags{ ID: id, Tags: tags, - }, time.Minute); e != nil { + }, time.Hour); e != nil { r.log.Error("can't set response to cache", zap.Error(e)) } return tags, nil } -// GetByIDs also need to change version in [cachekey.SubjectMetaTag] if schema is changed. func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { TotalCount.Add(float64(len(ids))) From 713a905e871f16db006ec579c61a70d2d009bed5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:46:04 +0800 Subject: [PATCH 470/888] refactor: use early return --- internal/tag/cache_repo.go | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index e4a476b9f..0b85bcfad 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -100,14 +100,15 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { } func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) { - TotalCount.Add(float64(len(ids))) - - var tags []cachedTags result := make(map[model.SubjectID][]Tag, len(ids)) if len(ids) == 0 { return result, nil } + TotalCount.Add(float64(len(ids))) + + var tags []cachedTags + err := r.cache.MGet(ctx, lo.Map(ids, func(item model.SubjectID, index int) string { return cachekey.SubjectMetaTag(item) }), &tags) @@ -127,20 +128,22 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod } } - if len(missing) != 0 { - missingFromCache, err := r.repo.GetByIDs(ctx, missing) + if len(missing) == 0 { + return result, nil + } + + missingFromCache, err := r.repo.GetByIDs(ctx, missing) + if err != nil { + return nil, err + } + for id, tag := range missingFromCache { + result[id] = tag + err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ + ID: id, + Tags: tag, + }, time.Hour) if err != nil { - return nil, err - } - for id, tag := range missingFromCache { - result[id] = tag - err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ - ID: id, - Tags: tag, - }, time.Hour) - if err != nil { - return nil, errgo.Wrap(err, "cache.Set") - } + return nil, errgo.Wrap(err, "cache.Set") } } From 43d03abbaab4e57826e118bda69e105e63d93221 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:52:06 +0800 Subject: [PATCH 471/888] chore: add some logger --- internal/pkg/cache/redis.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index c73384055..d09fe4baa 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -110,6 +110,7 @@ func (c redisCache) MGet(ctx context.Context, keys []string, result any) error { e := message.DecodeJSON(v.Interface()) if e != nil { + logger.Warn("unexpected failure when decoding json", zap.Error(e)) continue } From 792c56bda56a64e65a2d0ea380bdf79af9ac5687 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 25 Nov 2024 23:56:40 +0800 Subject: [PATCH 472/888] chore: ignore nil redis error --- internal/pkg/cache/redis.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index d09fe4baa..3ba23db54 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -108,6 +108,11 @@ func (c redisCache) MGet(ctx context.Context, keys []string, result any) error { for _, message := range results { var v = reflect.New(elementType) + //nolint:errorlint + if message.Error() == rueidis.Nil { + continue + } + e := message.DecodeJSON(v.Interface()) if e != nil { logger.Warn("unexpected failure when decoding json", zap.Error(e)) From b0d5e5a1afed6d0dec49011afd1b160fc04d6f39 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:15:19 +0800 Subject: [PATCH 473/888] perf: use metaTags in subject table --- internal/search/handle.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 2c407bc8b..744a02a16 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -141,10 +141,10 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) - if err != nil { - return errgo.Wrap(err, "tagRepo.GetByIDs") - } + // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) + // if err != nil { + // return errgo.Wrap(err, "tagRepo.GetByIDs") + // } var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { @@ -152,7 +152,13 @@ func (c *client) Handle(ctx echo.Context) error { if !ok { continue } - metaTags := tags[id] + // metaTags := tags[id] + var metaTags []tag.Tag + + for _, t := range strings.Split(s.MetaTags, " ") { + metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) + } + subject := toResponseSubject(s, metaTags) data = append(data, subject) } From f93cd3d44886fa4875ac051ca33ae1215002ca38 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:28:02 +0800 Subject: [PATCH 474/888] perf: remove unnecessary sql filter --- internal/search/handle.go | 8 +------- internal/tag/cache_repo.go | 9 ++++----- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 744a02a16..f0d943227 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -130,13 +130,7 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - var sf = subject.Filter{} - - if r.Filter.NSFW.Set && !r.Filter.NSFW.Value { - sf.NSFW = null.Bool{Set: true, Value: false} - } - - subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, sf) + subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{}) if err != nil { return errgo.Wrap(err, "subjectRepo.GetByIDs") } diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 0b85bcfad..32f3b4bae 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -28,6 +28,8 @@ import ( "github.com/bangumi/server/internal/pkg/cache" ) +const cacheTTL = time.Hour * 4 + func NewCachedRepo(c cache.RedisCache, r Repo, log *zap.Logger) CachedRepo { return cacheRepo{cache: c, repo: r, log: log.Named("subject.CachedRepo")} } @@ -89,10 +91,7 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { return tags, err } - if e := r.cache.Set(ctx, key, cachedTags{ - ID: id, - Tags: tags, - }, time.Hour); e != nil { + if e := r.cache.Set(ctx, key, cachedTags{ID: id, Tags: tags}, cacheTTL); e != nil { r.log.Error("can't set response to cache", zap.Error(e)) } @@ -141,7 +140,7 @@ func (r cacheRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[mod err = r.cache.Set(ctx, cachekey.SubjectMetaTag(id), cachedTags{ ID: id, Tags: tag, - }, time.Hour) + }, cacheTTL) if err != nil { return nil, errgo.Wrap(err, "cache.Set") } From 867e0f06083a2b8b014c842accffb778676d1997 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:38:07 +0800 Subject: [PATCH 475/888] perf: only get meta tags for non-empty string --- internal/search/handle.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index f0d943227..ed580a223 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -135,10 +135,17 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) - // if err != nil { - // return errgo.Wrap(err, "tagRepo.GetByIDs") - // } + var idsToGetTags []model.SubjectID + for _, m := range subjects { + if m.MetaTags != "" { + idsToGetTags = append(idsToGetTags, m.ID) + } + } + + tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), idsToGetTags) + if err != nil { + return errgo.Wrap(err, "tagRepo.GetByIDs") + } var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { @@ -146,8 +153,10 @@ func (c *client) Handle(ctx echo.Context) error { if !ok { continue } - // metaTags := tags[id] - var metaTags []tag.Tag + metaTags := tags[id] + if metaTags == nil { + metaTags = []tag.Tag{} + } for _, t := range strings.Split(s.MetaTags, " ") { metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) From 42c1534918442506b6a165ba52afc6713b441f08 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:43:12 +0800 Subject: [PATCH 476/888] Revert "perf: only get meta tags for non-empty string" This reverts commit 867e0f06083a2b8b014c842accffb778676d1997. --- internal/search/handle.go | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index ed580a223..f0d943227 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -135,17 +135,10 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - var idsToGetTags []model.SubjectID - for _, m := range subjects { - if m.MetaTags != "" { - idsToGetTags = append(idsToGetTags, m.ID) - } - } - - tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), idsToGetTags) - if err != nil { - return errgo.Wrap(err, "tagRepo.GetByIDs") - } + // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) + // if err != nil { + // return errgo.Wrap(err, "tagRepo.GetByIDs") + // } var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { @@ -153,10 +146,8 @@ func (c *client) Handle(ctx echo.Context) error { if !ok { continue } - metaTags := tags[id] - if metaTags == nil { - metaTags = []tag.Tag{} - } + // metaTags := tags[id] + var metaTags []tag.Tag for _, t := range strings.Split(s.MetaTags, " ") { metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) From 02803c97c253313b3080764d4c795a38a2887d11 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:49:27 +0800 Subject: [PATCH 477/888] fix: reduce default search page size --- internal/search/handle.go | 4 ++-- openapi/v0.yaml | 5 ----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index f0d943227..76818d284 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -54,8 +54,8 @@ type Handler interface { Handle(c echo.Context) error } -const defaultLimit = 50 -const maxLimit = 200 +const defaultLimit = 10 +const maxLimit = 20 type Req struct { Keyword string `json:"keyword"` diff --git a/openapi/v0.yaml b/openapi/v0.yaml index c7ea620dd..98584a8d2 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -33,11 +33,6 @@ paths: 不同筛选条件之间为 `且` - - 由于目前 meilisearch 的一些问题,条目排名更新并不会触发搜索数据更新,所以条目排名可能是过期数据。 - - 希望未来版本的 meilisearch 能解决相关的问题。 - parameters: - name: limit in: query From 0986a409d82c418c37461b587210b021e8577c92 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:52:26 +0800 Subject: [PATCH 478/888] fix!: reduce search page limit to 20 --- internal/search/handle.go | 2 +- web/req/page.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 76818d284..44061308a 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -105,7 +105,7 @@ type ReponseSubject struct { //nolint:funlen func (c *client) Handle(ctx echo.Context) error { auth := accessor.GetFromCtx(ctx) - q, err := req.GetPageQuery(ctx, defaultLimit, maxLimit) + q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) if err != nil { return err } diff --git a/web/req/page.go b/web/req/page.go index c0e1de94b..18e719ac1 100644 --- a/web/req/page.go +++ b/web/req/page.go @@ -35,6 +35,42 @@ func (q PageQuery) Check(count int64) error { return nil } +// GetPageQuerySoftLimit apply soft limit on query without error. +func GetPageQuerySoftLimit(c echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { + q := PageQuery{Limit: defaultLimit} + var err error + + raw := c.QueryParam("limit") + if raw != "" { + q.Limit, err = strconv.Atoi(raw) + if err != nil { + return q, res.BadRequest("can't parse query args limit as int: " + strconv.Quote(raw)) + } + + if q.Limit <= 0 { + return q, res.BadRequest("limit should be greater than zero") + } + + if q.Limit > maxLimit { + q.Limit = maxLimit + } + } + + raw = c.QueryParam("offset") + if raw != "" { + q.Offset, err = strconv.Atoi(raw) + if err != nil { + return q, res.BadRequest("can't parse query args offset as int: " + strconv.Quote(raw)) + } + + if q.Offset < 0 { + return q, res.BadRequest("offset should be greater than or equal to 0") + } + } + + return q, nil +} + func GetPageQuery(c echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { q := PageQuery{Limit: defaultLimit} var err error From 679000afb3b1a011b517a16ca2a53599e45fe0af Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 00:38:07 +0800 Subject: [PATCH 479/888] perf: only get meta tags for non-empty string --- internal/search/handle.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 44061308a..42e88396b 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -135,10 +135,17 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) - // if err != nil { - // return errgo.Wrap(err, "tagRepo.GetByIDs") - // } + var idsToGetTags []model.SubjectID + for _, m := range subjects { + if m.MetaTags != "" { + idsToGetTags = append(idsToGetTags, m.ID) + } + } + + tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), idsToGetTags) + if err != nil { + return errgo.Wrap(err, "tagRepo.GetByIDs") + } var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { @@ -146,8 +153,10 @@ func (c *client) Handle(ctx echo.Context) error { if !ok { continue } - // metaTags := tags[id] - var metaTags []tag.Tag + metaTags := tags[id] + if metaTags == nil { + metaTags = []tag.Tag{} + } for _, t := range strings.Split(s.MetaTags, " ") { metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) From b136b6010de398f16bcc2961ad9ec5b82335333b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 01:04:59 +0800 Subject: [PATCH 480/888] perf: cache meta tags 24h --- internal/tag/cache_repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 32f3b4bae..4cbc3ff0f 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -28,7 +28,7 @@ import ( "github.com/bangumi/server/internal/pkg/cache" ) -const cacheTTL = time.Hour * 4 +const cacheTTL = time.Hour * 24 func NewCachedRepo(c cache.RedisCache, r Repo, log *zap.Logger) CachedRepo { return cacheRepo{cache: c, repo: r, log: log.Named("subject.CachedRepo")} From b5a9fe0c386f733b6a8f49cb17aefb66187847c5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 26 Nov 2024 01:24:32 +0800 Subject: [PATCH 481/888] Revert "perf: only get meta tags for non-empty string" This reverts commit 679000afb3b1a011b517a16ca2a53599e45fe0af. --- internal/search/handle.go | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/internal/search/handle.go b/internal/search/handle.go index 42e88396b..44061308a 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -135,17 +135,10 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - var idsToGetTags []model.SubjectID - for _, m := range subjects { - if m.MetaTags != "" { - idsToGetTags = append(idsToGetTags, m.ID) - } - } - - tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), idsToGetTags) - if err != nil { - return errgo.Wrap(err, "tagRepo.GetByIDs") - } + // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) + // if err != nil { + // return errgo.Wrap(err, "tagRepo.GetByIDs") + // } var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { @@ -153,10 +146,8 @@ func (c *client) Handle(ctx echo.Context) error { if !ok { continue } - metaTags := tags[id] - if metaTags == nil { - metaTags = []tag.Tag{} - } + // metaTags := tags[id] + var metaTags []tag.Tag for _, t := range strings.Split(s.MetaTags, " ") { metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) From 7f56155804011d7566774953dcc5f30c4a87a939 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Tue, 26 Nov 2024 08:51:03 +0800 Subject: [PATCH 482/888] fix: ignore empty tag on search (#670) --- internal/search/client.go | 4 ---- internal/search/handle.go | 9 +++------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/internal/search/client.go b/internal/search/client.go index b3b3b50a2..d92627b94 100644 --- a/internal/search/client.go +++ b/internal/search/client.go @@ -39,7 +39,6 @@ import ( "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/subject" - "github.com/bangumi/server/internal/tag" ) // New provide a search app is AppConfig.MeiliSearchURL is empty string, return nope search client. @@ -48,7 +47,6 @@ import ( func New( cfg config.AppConfig, subjectRepo subject.Repo, - tagRepo tag.CachedRepo, log *zap.Logger, query *query.Query, ) (Client, error) { @@ -80,7 +78,6 @@ func New( subjectIndex: meili.Index("subjects"), log: log.Named("search"), subjectRepo: subjectRepo, - tagRepo: tagRepo, } if cfg.AppType != config.AppTypeCanal { @@ -139,7 +136,6 @@ func (c *client) canalInit(cfg config.AppConfig) error { type client struct { subjectRepo subject.Repo - tagRepo tag.CachedRepo meili meilisearch.ServiceManager q *query.Query subjectIndex meilisearch.IndexManager diff --git a/internal/search/handle.go b/internal/search/handle.go index 44061308a..dc7978c23 100644 --- a/internal/search/handle.go +++ b/internal/search/handle.go @@ -135,21 +135,18 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - // tags, err := c.tagRepo.GetByIDs(ctx.Request().Context(), ids) - // if err != nil { - // return errgo.Wrap(err, "tagRepo.GetByIDs") - // } - var data = make([]ReponseSubject, 0, len(subjects)) for _, id := range ids { s, ok := subjects[id] if !ok { continue } - // metaTags := tags[id] var metaTags []tag.Tag for _, t := range strings.Split(s.MetaTags, " ") { + if t == "" { + continue + } metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) } From 181fb87a7dbc20b638371f17d1be284fbdfc1eb4 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Tue, 26 Nov 2024 14:41:10 +0800 Subject: [PATCH 483/888] feat: support searching character & person (#671) --- canal/canal.go | 5 +- canal/event.go | 4 + canal/on_character.go | 45 +++ canal/on_person.go | 44 +++ canal/on_subject.go | 23 +- cmd/web/cmd.go | 3 +- internal/mocks/SearchClient.go | 132 +++---- internal/search/character/client.go | 110 ++++++ internal/search/character/doc.go | 51 +++ internal/search/character/event.go | 57 +++ internal/search/character/handle.go | 128 +++++++ internal/search/client.go | 340 ------------------ internal/search/extractor.common.go | 55 --- internal/search/noop.go | 14 +- internal/search/person/client.go | 110 ++++++ internal/search/person/doc.go | 49 +++ internal/search/person/event.go | 57 +++ internal/search/person/handle.go | 121 +++++++ internal/search/search.go | 150 ++++++++ internal/search/searcher/client.go | 231 ++++++++++++ internal/search/subject/client.go | 111 ++++++ internal/search/{index.go => subject/doc.go} | 32 +- .../doc_internal_test.go} | 2 +- internal/search/subject/event.go | 58 +++ internal/search/{ => subject}/handle.go | 21 +- .../{ => subject}/handle_internal_test.go | 2 +- .../{ => subject}/index_internal_test.go | 8 +- openapi/v0.yaml | 165 ++++++++- web/handler/character/character.go | 30 -- web/handler/character/get.go | 2 +- web/handler/search.go | 14 +- web/res/character.go | 32 +- web/routes.go | 4 +- 33 files changed, 1667 insertions(+), 543 deletions(-) create mode 100644 canal/on_character.go create mode 100644 canal/on_person.go create mode 100644 internal/search/character/client.go create mode 100644 internal/search/character/doc.go create mode 100644 internal/search/character/event.go create mode 100644 internal/search/character/handle.go delete mode 100644 internal/search/client.go delete mode 100644 internal/search/extractor.common.go create mode 100644 internal/search/person/client.go create mode 100644 internal/search/person/doc.go create mode 100644 internal/search/person/event.go create mode 100644 internal/search/person/handle.go create mode 100644 internal/search/search.go create mode 100644 internal/search/searcher/client.go create mode 100644 internal/search/subject/client.go rename internal/search/{index.go => subject/doc.go} (82%) rename internal/search/{extract_internal_test.go => subject/doc_internal_test.go} (98%) create mode 100644 internal/search/subject/event.go rename internal/search/{ => subject}/handle.go (94%) rename internal/search/{ => subject}/handle_internal_test.go (98%) rename internal/search/{ => subject}/index_internal_test.go (84%) diff --git a/canal/canal.go b/canal/canal.go index 1681c5d10..9ad7ea470 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -26,6 +26,8 @@ import ( "github.com/bangumi/server/config" "github.com/bangumi/server/dal" + "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/pkg/driver" "github.com/bangumi/server/internal/pkg/logger" @@ -62,7 +64,8 @@ func Main() error { fx.Provide( driver.NewMysqlSqlDB, driver.NewRueidisClient, logger.Copy, cache.NewRedisCache, - subject.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, + subject.NewMysqlRepo, character.NewMysqlRepo, person.NewMysqlRepo, + search.New, session.NewMysqlRepo, session.New, driver.NewS3, tag.NewCachedRepo, tag.NewMysqlRepo, diff --git a/canal/event.go b/canal/event.go index 458b49819..4d7fc3d0f 100644 --- a/canal/event.go +++ b/canal/event.go @@ -124,6 +124,10 @@ func (e *eventHandler) onMessage(key, value []byte) error { err = e.OnSubjectField(ctx, key, p) case "chii_subjects": err = e.OnSubject(ctx, key, p) + case "chii_characters": + err = e.OnCharacter(ctx, key, p) + case "chii_persons": + err = e.OnPerson(ctx, key, p) case "chii_members": err = e.OnUserChange(ctx, key, p) } diff --git a/canal/on_character.go b/canal/on_character.go new file mode 100644 index 000000000..525d1b7d8 --- /dev/null +++ b/canal/on_character.go @@ -0,0 +1,45 @@ +package canal + +import ( + "context" + "encoding/json" + + "github.com/trim21/errgo" + "go.uber.org/zap" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search" +) + +type CharacterKey struct { + ID model.CharacterID `json:"crt_id"` +} + +func (e *eventHandler) OnCharacter(ctx context.Context, key json.RawMessage, payload Payload) error { + var k CharacterKey + if err := json.Unmarshal(key, &k); err != nil { + return err + } + return e.onCharacterChange(ctx, k.ID, payload.Op) +} + +func (e *eventHandler) onCharacterChange(ctx context.Context, characterID model.CharacterID, op string) error { + switch op { + case opCreate: + if err := e.search.EventAdded(ctx, characterID, search.SearchTargetCharacter); err != nil { + return errgo.Wrap(err, "search.OnCharacterAdded") + } + case opUpdate, opSnapshot: + if err := e.search.EventUpdate(ctx, characterID, search.SearchTargetCharacter); err != nil { + return errgo.Wrap(err, "search.OnCharacterUpdate") + } + case opDelete: + if err := e.search.EventDelete(ctx, characterID, search.SearchTargetCharacter); err != nil { + return errgo.Wrap(err, "search.OnCharacterDelete") + } + default: + e.log.Warn("unexpected operator", zap.String("op", op)) + } + + return nil +} diff --git a/canal/on_person.go b/canal/on_person.go new file mode 100644 index 000000000..f5f75b4fa --- /dev/null +++ b/canal/on_person.go @@ -0,0 +1,44 @@ +package canal + +import ( + "context" + "encoding/json" + + "github.com/trim21/errgo" + "go.uber.org/zap" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search" +) + +type PersonKey struct { + ID model.PersonID `json:"prsn_id"` +} + +func (e *eventHandler) OnPerson(ctx context.Context, key json.RawMessage, payload Payload) error { + var k PersonKey + if err := json.Unmarshal(key, &k); err != nil { + return err + } + return e.onPersonChange(ctx, k.ID, payload.Op) +} + +func (e *eventHandler) onPersonChange(ctx context.Context, personID model.PersonID, op string) error { + switch op { + case opCreate: + if err := e.search.EventAdded(ctx, personID, search.SearchTargetPerson); err != nil { + return errgo.Wrap(err, "search.OnPersonAdded") + } + case opUpdate, opSnapshot: + if err := e.search.EventUpdate(ctx, personID, search.SearchTargetPerson); err != nil { + return errgo.Wrap(err, "search.OnPersonUpdate") + } + case opDelete: + if err := e.search.EventDelete(ctx, personID, search.SearchTargetPerson); err != nil { + return errgo.Wrap(err, "search.OnPersonDelete") + } + default: + e.log.Warn("unexpected operator", zap.String("op", op)) + } + return nil +} diff --git a/canal/on_subject.go b/canal/on_subject.go index f96b7354b..5ecf0b406 100644 --- a/canal/on_subject.go +++ b/canal/on_subject.go @@ -22,8 +22,17 @@ import ( "go.uber.org/zap" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search" ) +type SubjectKey struct { + ID model.SubjectID `json:"subject_id"` +} + +type SubjectFieldKey struct { + ID model.SubjectID `json:"field_sid"` +} + func (e *eventHandler) OnSubject(ctx context.Context, key json.RawMessage, payload Payload) error { var k SubjectKey if err := json.Unmarshal(key, &k); err != nil { @@ -45,15 +54,15 @@ func (e *eventHandler) OnSubjectField(ctx context.Context, key json.RawMessage, func (e *eventHandler) onSubjectChange(ctx context.Context, subjectID model.SubjectID, op string) error { switch op { case opCreate: - if err := e.search.OnSubjectAdded(ctx, subjectID); err != nil { + if err := e.search.EventAdded(ctx, subjectID, search.SearchTargetSubject); err != nil { return errgo.Wrap(err, "search.OnSubjectAdded") } case opUpdate, opSnapshot: - if err := e.search.OnSubjectUpdate(ctx, subjectID); err != nil { + if err := e.search.EventUpdate(ctx, subjectID, search.SearchTargetSubject); err != nil { return errgo.Wrap(err, "search.OnSubjectUpdate") } case opDelete: - if err := e.search.OnSubjectDelete(ctx, subjectID); err != nil { + if err := e.search.EventDelete(ctx, subjectID, search.SearchTargetSubject); err != nil { return errgo.Wrap(err, "search.OnSubjectDelete") } default: @@ -62,11 +71,3 @@ func (e *eventHandler) onSubjectChange(ctx context.Context, subjectID model.Subj return nil } - -type SubjectKey struct { - ID model.SubjectID `json:"subject_id"` -} - -type SubjectFieldKey struct { - ID model.SubjectID `json:"field_sid"` -} diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 080542909..ea11b7a55 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -88,7 +88,8 @@ func start() error { index.NewMysqlRepo, auth.NewMysqlRepo, episode.NewMysqlRepo, revision.NewMysqlRepo, infra.NewMysqlRepo, timeline.NewMysqlRepo, pm.NewMysqlRepo, notification.NewMysqlRepo, - dam.New, subject.NewMysqlRepo, subject.NewCachedRepo, person.NewMysqlRepo, + dam.New, subject.NewMysqlRepo, subject.NewCachedRepo, + character.NewMysqlRepo, person.NewMysqlRepo, tag.NewCachedRepo, tag.NewMysqlRepo, diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index 2311ae084..41241d903 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -7,6 +7,8 @@ import ( echo "github.com/labstack/echo/v4" mock "github.com/stretchr/testify/mock" + + search "github.com/bangumi/server/internal/search" ) // SearchClient is an autogenerated mock type for the Client type @@ -54,17 +56,17 @@ func (_c *SearchClient_Close_Call) RunAndReturn(run func()) *SearchClient_Close_ return _c } -// Handle provides a mock function with given fields: c -func (_m *SearchClient) Handle(c echo.Context) error { - ret := _m.Called(c) +// EventAdded provides a mock function with given fields: ctx, id, target +func (_m *SearchClient) EventAdded(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _m.Called(ctx, id, target) if len(ret) == 0 { - panic("no return value specified for Handle") + panic("no return value specified for EventAdded") } var r0 error - if rf, ok := ret.Get(0).(func(echo.Context) error); ok { - r0 = rf(c) + if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = rf(ctx, id, target) } else { r0 = ret.Error(0) } @@ -72,45 +74,47 @@ func (_m *SearchClient) Handle(c echo.Context) error { return r0 } -// SearchClient_Handle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handle' -type SearchClient_Handle_Call struct { +// SearchClient_EventAdded_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EventAdded' +type SearchClient_EventAdded_Call struct { *mock.Call } -// Handle is a helper method to define mock.On call -// - c echo.Context -func (_e *SearchClient_Expecter) Handle(c interface{}) *SearchClient_Handle_Call { - return &SearchClient_Handle_Call{Call: _e.mock.On("Handle", c)} +// EventAdded is a helper method to define mock.On call +// - ctx context.Context +// - id uint32 +// - target search.SearchTarget +func (_e *SearchClient_Expecter) EventAdded(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventAdded_Call { + return &SearchClient_EventAdded_Call{Call: _e.mock.On("EventAdded", ctx, id, target)} } -func (_c *SearchClient_Handle_Call) Run(run func(c echo.Context)) *SearchClient_Handle_Call { +func (_c *SearchClient_EventAdded_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventAdded_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(echo.Context)) + run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) }) return _c } -func (_c *SearchClient_Handle_Call) Return(_a0 error) *SearchClient_Handle_Call { +func (_c *SearchClient_EventAdded_Call) Return(_a0 error) *SearchClient_EventAdded_Call { _c.Call.Return(_a0) return _c } -func (_c *SearchClient_Handle_Call) RunAndReturn(run func(echo.Context) error) *SearchClient_Handle_Call { +func (_c *SearchClient_EventAdded_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventAdded_Call { _c.Call.Return(run) return _c } -// OnSubjectAdded provides a mock function with given fields: ctx, id -func (_m *SearchClient) OnSubjectAdded(ctx context.Context, id uint32) error { - ret := _m.Called(ctx, id) +// EventDelete provides a mock function with given fields: ctx, id, target +func (_m *SearchClient) EventDelete(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _m.Called(ctx, id, target) if len(ret) == 0 { - panic("no return value specified for OnSubjectAdded") + panic("no return value specified for EventDelete") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { - r0 = rf(ctx, id) + if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = rf(ctx, id, target) } else { r0 = ret.Error(0) } @@ -118,46 +122,47 @@ func (_m *SearchClient) OnSubjectAdded(ctx context.Context, id uint32) error { return r0 } -// SearchClient_OnSubjectAdded_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'OnSubjectAdded' -type SearchClient_OnSubjectAdded_Call struct { +// SearchClient_EventDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EventDelete' +type SearchClient_EventDelete_Call struct { *mock.Call } -// OnSubjectAdded is a helper method to define mock.On call +// EventDelete is a helper method to define mock.On call // - ctx context.Context // - id uint32 -func (_e *SearchClient_Expecter) OnSubjectAdded(ctx interface{}, id interface{}) *SearchClient_OnSubjectAdded_Call { - return &SearchClient_OnSubjectAdded_Call{Call: _e.mock.On("OnSubjectAdded", ctx, id)} +// - target search.SearchTarget +func (_e *SearchClient_Expecter) EventDelete(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventDelete_Call { + return &SearchClient_EventDelete_Call{Call: _e.mock.On("EventDelete", ctx, id, target)} } -func (_c *SearchClient_OnSubjectAdded_Call) Run(run func(ctx context.Context, id uint32)) *SearchClient_OnSubjectAdded_Call { +func (_c *SearchClient_EventDelete_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventDelete_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) }) return _c } -func (_c *SearchClient_OnSubjectAdded_Call) Return(_a0 error) *SearchClient_OnSubjectAdded_Call { +func (_c *SearchClient_EventDelete_Call) Return(_a0 error) *SearchClient_EventDelete_Call { _c.Call.Return(_a0) return _c } -func (_c *SearchClient_OnSubjectAdded_Call) RunAndReturn(run func(context.Context, uint32) error) *SearchClient_OnSubjectAdded_Call { +func (_c *SearchClient_EventDelete_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventDelete_Call { _c.Call.Return(run) return _c } -// OnSubjectDelete provides a mock function with given fields: ctx, id -func (_m *SearchClient) OnSubjectDelete(ctx context.Context, id uint32) error { - ret := _m.Called(ctx, id) +// EventUpdate provides a mock function with given fields: ctx, id, target +func (_m *SearchClient) EventUpdate(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _m.Called(ctx, id, target) if len(ret) == 0 { - panic("no return value specified for OnSubjectDelete") + panic("no return value specified for EventUpdate") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { - r0 = rf(ctx, id) + if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = rf(ctx, id, target) } else { r0 = ret.Error(0) } @@ -165,46 +170,47 @@ func (_m *SearchClient) OnSubjectDelete(ctx context.Context, id uint32) error { return r0 } -// SearchClient_OnSubjectDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'OnSubjectDelete' -type SearchClient_OnSubjectDelete_Call struct { +// SearchClient_EventUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EventUpdate' +type SearchClient_EventUpdate_Call struct { *mock.Call } -// OnSubjectDelete is a helper method to define mock.On call +// EventUpdate is a helper method to define mock.On call // - ctx context.Context // - id uint32 -func (_e *SearchClient_Expecter) OnSubjectDelete(ctx interface{}, id interface{}) *SearchClient_OnSubjectDelete_Call { - return &SearchClient_OnSubjectDelete_Call{Call: _e.mock.On("OnSubjectDelete", ctx, id)} +// - target search.SearchTarget +func (_e *SearchClient_Expecter) EventUpdate(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventUpdate_Call { + return &SearchClient_EventUpdate_Call{Call: _e.mock.On("EventUpdate", ctx, id, target)} } -func (_c *SearchClient_OnSubjectDelete_Call) Run(run func(ctx context.Context, id uint32)) *SearchClient_OnSubjectDelete_Call { +func (_c *SearchClient_EventUpdate_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventUpdate_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) }) return _c } -func (_c *SearchClient_OnSubjectDelete_Call) Return(_a0 error) *SearchClient_OnSubjectDelete_Call { +func (_c *SearchClient_EventUpdate_Call) Return(_a0 error) *SearchClient_EventUpdate_Call { _c.Call.Return(_a0) return _c } -func (_c *SearchClient_OnSubjectDelete_Call) RunAndReturn(run func(context.Context, uint32) error) *SearchClient_OnSubjectDelete_Call { +func (_c *SearchClient_EventUpdate_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventUpdate_Call { _c.Call.Return(run) return _c } -// OnSubjectUpdate provides a mock function with given fields: ctx, id -func (_m *SearchClient) OnSubjectUpdate(ctx context.Context, id uint32) error { - ret := _m.Called(ctx, id) +// Handle provides a mock function with given fields: c, target +func (_m *SearchClient) Handle(c echo.Context, target search.SearchTarget) error { + ret := _m.Called(c, target) if len(ret) == 0 { - panic("no return value specified for OnSubjectUpdate") + panic("no return value specified for Handle") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { - r0 = rf(ctx, id) + if rf, ok := ret.Get(0).(func(echo.Context, search.SearchTarget) error); ok { + r0 = rf(c, target) } else { r0 = ret.Error(0) } @@ -212,31 +218,31 @@ func (_m *SearchClient) OnSubjectUpdate(ctx context.Context, id uint32) error { return r0 } -// SearchClient_OnSubjectUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'OnSubjectUpdate' -type SearchClient_OnSubjectUpdate_Call struct { +// SearchClient_Handle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handle' +type SearchClient_Handle_Call struct { *mock.Call } -// OnSubjectUpdate is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -func (_e *SearchClient_Expecter) OnSubjectUpdate(ctx interface{}, id interface{}) *SearchClient_OnSubjectUpdate_Call { - return &SearchClient_OnSubjectUpdate_Call{Call: _e.mock.On("OnSubjectUpdate", ctx, id)} +// Handle is a helper method to define mock.On call +// - c echo.Context +// - target search.SearchTarget +func (_e *SearchClient_Expecter) Handle(c interface{}, target interface{}) *SearchClient_Handle_Call { + return &SearchClient_Handle_Call{Call: _e.mock.On("Handle", c, target)} } -func (_c *SearchClient_OnSubjectUpdate_Call) Run(run func(ctx context.Context, id uint32)) *SearchClient_OnSubjectUpdate_Call { +func (_c *SearchClient_Handle_Call) Run(run func(c echo.Context, target search.SearchTarget)) *SearchClient_Handle_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(echo.Context), args[1].(search.SearchTarget)) }) return _c } -func (_c *SearchClient_OnSubjectUpdate_Call) Return(_a0 error) *SearchClient_OnSubjectUpdate_Call { +func (_c *SearchClient_Handle_Call) Return(_a0 error) *SearchClient_Handle_Call { _c.Call.Return(_a0) return _c } -func (_c *SearchClient_OnSubjectUpdate_Call) RunAndReturn(run func(context.Context, uint32) error) *SearchClient_OnSubjectUpdate_Call { +func (_c *SearchClient_Handle_Call) RunAndReturn(run func(echo.Context, search.SearchTarget) error) *SearchClient_Handle_Call { _c.Call.Return(run) return _c } diff --git a/internal/search/character/client.go b/internal/search/character/client.go new file mode 100644 index 000000000..83e926243 --- /dev/null +++ b/internal/search/character/client.go @@ -0,0 +1,110 @@ +package character + +import ( + "context" + "fmt" + "reflect" + "strconv" + + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + "github.com/trim21/pkg/queue" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search/searcher" +) + +const ( + idx = "characters" +) + +func New( + cfg config.AppConfig, + meili meilisearch.ServiceManager, + repo character.Repo, + log *zap.Logger, + query *query.Query, +) (searcher.Searcher, error) { + if repo == nil { + return nil, fmt.Errorf("nil characterRepo") + } + c := &client{ + meili: meili, + repo: repo, + index: meili.Index(idx), + log: log.Named("search").With(zap.String("index", idx)), + q: query, + } + + if cfg.AppType != config.AppTypeCanal { + return c, nil + } + + return c, c.canalInit(cfg) +} + +type client struct { + repo character.Repo + index meilisearch.IndexManager + + meili meilisearch.ServiceManager + log *zap.Logger + q *query.Query + + queue *queue.Batched[searcher.Document] +} + +func (c *client) Close() { + if c.queue != nil { + c.queue.Close() + } +} + +func (c *client) canalInit(cfg config.AppConfig) error { + if err := searcher.ValidateConfigs(cfg); err != nil { + return errgo.Wrap(err, "validate search config") + } + c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) + searcher.RegisterQueueMetrics(idx, c.queue) + shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) + if err != nil { + return err + } + if shouldCreateIndex { + go c.firstRun() + } + return nil +} + +//nolint:funlen +func (c *client) firstRun() { + c.log.Info("search initialize") + rt := reflect.TypeOf(document{}) + searcher.InitIndex(c.log, c.meili, idx, rt, rankRule()) + + ctx := context.Background() + + maxItem, err := c.q.Character.WithContext(ctx).Limit(1).Order(c.q.Character.ID.Desc()).Take() + if err != nil { + c.log.Fatal("failed to get current max id", zap.Error(err)) + return + } + + c.log.Info(fmt.Sprintf("run full search index with max %s id %d", idx, maxItem.ID)) + + width := len(strconv.Itoa(int(maxItem.ID))) + for i := model.CharacterID(1); i <= maxItem.ID; i++ { + if i%10000 == 0 { + c.log.Info(fmt.Sprintf("progress %*d/%d", width, i, maxItem.ID)) + } + + err := c.OnUpdate(ctx, i) + if err != nil { + c.log.Error("error when updating", zap.Error(err)) + } + } +} diff --git a/internal/search/character/doc.go b/internal/search/character/doc.go new file mode 100644 index 000000000..1e1a23de8 --- /dev/null +++ b/internal/search/character/doc.go @@ -0,0 +1,51 @@ +package character + +import ( + "strconv" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search/searcher" + "github.com/bangumi/server/pkg/wiki" +) + +type document struct { + ID model.CharacterID `json:"id"` + Name string `json:"name" searchable:"true"` + Aliases []string `json:"aliases,omitempty" searchable:"true"` + Comment uint32 `json:"comment" sortable:"true"` + Collect uint32 `json:"collect" sortable:"true"` + NSFW bool `json:"nsfw" filterable:"true"` +} + +func (d *document) GetID() string { + return strconv.FormatUint(uint64(d.ID), 10) +} + +func rankRule() *[]string { + return &[]string{ + // 相似度最优先 + "exactness", + "words", + "typo", + "proximity", + "attribute", + "sort", + "id:asc", + "comment:desc", + "collect:desc", + "nsfw:asc", + } +} + +func extract(c *model.Character) searcher.Document { + w := wiki.ParseOmitError(c.Infobox) + + return &document{ + ID: c.ID, + Name: c.Name, + Aliases: searcher.ExtractAliases(w), + Comment: c.CommentCount, + Collect: c.CollectCount, + NSFW: c.NSFW, + } +} diff --git a/internal/search/character/event.go b/internal/search/character/event.go new file mode 100644 index 000000000..10c3dad66 --- /dev/null +++ b/internal/search/character/event.go @@ -0,0 +1,57 @@ +package character + +import ( + "context" + "errors" + "strconv" + + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/model" +) + +func (c *client) OnAdded(ctx context.Context, id model.CharacterID) error { + s, err := c.repo.Get(ctx, id) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "characterRepo.Get") + } + + if s.Redirect != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + return err +} + +func (c *client) OnUpdate(ctx context.Context, id model.CharacterID) error { + s, err := c.repo.Get(ctx, id) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "characterRepo.Get") + } + + if s.Redirect != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + c.queue.Push(extracted) + + return nil +} + +func (c *client) OnDelete(ctx context.Context, id model.CharacterID) error { + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + + return errgo.Wrap(err, "search") +} diff --git a/internal/search/character/handle.go b/internal/search/character/handle.go new file mode 100644 index 000000000..660b2704e --- /dev/null +++ b/internal/search/character/handle.go @@ -0,0 +1,128 @@ +package character + +import ( + "encoding/json" + "fmt" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/generic/slice" + "github.com/bangumi/server/internal/pkg/null" + "github.com/bangumi/server/web/accessor" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +const defaultLimit = 10 +const maxLimit = 20 + +type Req struct { + Keyword string `json:"keyword"` + Filter ReqFilter `json:"filter"` +} + +type ReqFilter struct { //nolint:musttag + NSFW null.Bool `json:"nsfw"` +} + +type hit struct { + ID model.CharacterID `json:"id"` +} + +//nolint:funlen +func (c *client) Handle(ctx echo.Context) error { + auth := accessor.GetFromCtx(ctx) + q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) + if err != nil { + return err + } + + var r Req + if err = json.NewDecoder(ctx.Request().Body).Decode(&r); err != nil { + return res.JSONError(ctx, err) + } + + if !auth.AllowNSFW() { + r.Filter.NSFW = null.Bool{Set: true, Value: false} + } + + result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), q.Limit, q.Offset) + if err != nil { + return errgo.Wrap(err, "search") + } + + var hits []hit + if err = json.Unmarshal(result.Hits, &hits); err != nil { + return errgo.Wrap(err, "json.Unmarshal") + } + ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) + + characters, err := c.repo.GetByIDs(ctx.Request().Context(), ids) + if err != nil { + return errgo.Wrap(err, "characterRepo.GetByIDs") + } + + var data = make([]res.CharacterV0, 0, len(characters)) + for _, id := range ids { + s, ok := characters[id] + if !ok { + continue + } + character := res.ConvertModelCharacter(s) + data = append(data, character) + } + + return ctx.JSON(http.StatusOK, res.Paged{ + Data: data, + Total: result.EstimatedTotalHits, + Limit: q.Limit, + Offset: q.Offset, + }) +} + +func (c *client) doSearch( + words string, + filter [][]string, + limit, offset int, +) (*meiliSearchResponse, error) { + if limit == 0 { + limit = 10 + } else if limit > 50 { + limit = 50 + } + + raw, err := c.index.SearchRaw(words, &meilisearch.SearchRequest{ + Offset: int64(offset), + Limit: int64(limit), + Filter: filter, + }) + if err != nil { + return nil, errgo.Wrap(err, "meilisearch search") + } + + var r meiliSearchResponse + if err := json.Unmarshal(*raw, &r); err != nil { + return nil, errgo.Wrap(err, "json.Unmarshal") + } + + return &r, nil +} + +type meiliSearchResponse struct { + Hits json.RawMessage `json:"hits"` + EstimatedTotalHits int64 `json:"estimatedTotalHits"` //nolint:tagliatelle +} + +func filterToMeiliFilter(req ReqFilter) [][]string { + var filter = make([][]string, 0, 1) + + if req.NSFW.Set { + filter = append(filter, []string{fmt.Sprintf("nsfw = %t", req.NSFW.Value)}) + } + + return filter +} diff --git a/internal/search/client.go b/internal/search/client.go deleted file mode 100644 index d92627b94..000000000 --- a/internal/search/client.go +++ /dev/null @@ -1,340 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package search - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - "os" - "reflect" - "strconv" - "strings" - "time" - - "github.com/avast/retry-go/v4" - "github.com/meilisearch/meilisearch-go" - "github.com/prometheus/client_golang/prometheus" - "github.com/samber/lo" - "github.com/trim21/errgo" - "github.com/trim21/pkg/queue" - "go.uber.org/zap" - - "github.com/bangumi/server/config" - "github.com/bangumi/server/dal/query" - "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/subject" -) - -// New provide a search app is AppConfig.MeiliSearchURL is empty string, return nope search client. -// -// see `MeiliSearchURL` and `MeiliSearchKey` in [config.AppConfig]. -func New( - cfg config.AppConfig, - subjectRepo subject.Repo, - log *zap.Logger, - query *query.Query, -) (Client, error) { - if cfg.Search.MeiliSearch.URL == "" { - return NoopClient{}, nil - } - - if subjectRepo == nil { - panic("nil SubjectRepo") - } - if _, err := url.Parse(cfg.Search.MeiliSearch.URL); err != nil { - return nil, errgo.Wrap(err, "url.Parse") - } - - meili := meilisearch.New( - cfg.Search.MeiliSearch.URL, - meilisearch.WithAPIKey(cfg.Search.MeiliSearch.Key), - meilisearch.WithCustomClient(&http.Client{Timeout: cfg.Search.MeiliSearch.Timeout}), - ) - - if _, err := meili.Version(); err != nil { - return nil, errgo.Wrap(err, "meilisearch") - } - - c := &client{ - meili: meili, - q: query, - subject: "subjects", - subjectIndex: meili.Index("subjects"), - log: log.Named("search"), - subjectRepo: subjectRepo, - } - - if cfg.AppType != config.AppTypeCanal { - return c, nil - } - - return c, c.canalInit(cfg) -} - -func (c *client) canalInit(cfg config.AppConfig) error { - if cfg.Search.SearchBatchSize <= 0 { - // nolint: goerr113 - return fmt.Errorf("config.SearchBatchSize should >= 0, current %d", cfg.Search.SearchBatchSize) - } - - if cfg.Search.SearchBatchInterval <= 0 { - // nolint: goerr113 - return fmt.Errorf("config.SearchBatchInterval should >= 0, current %d", cfg.Search.SearchBatchInterval) - } - - c.queue = queue.NewBatchedDedupe[subjectIndex]( - c.sendBatch, - cfg.Search.SearchBatchSize, - cfg.Search.SearchBatchInterval, - func(items []subjectIndex) []subjectIndex { - // lo.UniqBy 会保留第一次出现的元素,reverse 之后会保留新的数据 - return lo.UniqBy(lo.Reverse(items), func(item subjectIndex) model.SubjectID { - return item.ID - }) - }, - ) - - prometheus.DefaultRegisterer.MustRegister( - prometheus.NewGaugeFunc( - prometheus.GaugeOpts{ - Namespace: "chii", - Name: "meilisearch_queue_batch", - Help: "meilisearch update queue batch size", - }, - func() float64 { - return float64(c.queue.Len()) - }, - )) - - shouldCreateIndex, err := c.needFirstRun() - if err != nil { - return err - } - - if shouldCreateIndex { - go c.firstRun() - } - - return nil -} - -type client struct { - subjectRepo subject.Repo - meili meilisearch.ServiceManager - q *query.Query - subjectIndex meilisearch.IndexManager - log *zap.Logger - subject string - queue *queue.Batched[subjectIndex] -} - -func (c *client) Close() { - if c.queue != nil { - c.queue.Close() - } -} - -// OnSubjectAdded is the hook called by canal. -func (c *client) OnSubjectAdded(ctx context.Context, id model.SubjectID) error { - s, err := c.subjectRepo.Get(ctx, id, subject.Filter{}) - if err != nil { - if errors.Is(err, gerr.ErrNotFound) { - return nil - } - return errgo.Wrap(err, "subjectRepo.Get") - } - - if s.Redirect != 0 || s.Ban != 0 { - return c.OnSubjectDelete(ctx, id) - } - - extracted := extractSubject(&s) - - _, err = c.subjectIndex.UpdateDocumentsWithContext(ctx, extracted, "id") - return err -} - -// OnSubjectUpdate is the hook called by canal. -func (c *client) OnSubjectUpdate(ctx context.Context, id model.SubjectID) error { - s, err := c.subjectRepo.Get(ctx, id, subject.Filter{}) - if err != nil { - if errors.Is(err, gerr.ErrNotFound) { - return nil - } - return errgo.Wrap(err, "subjectRepo.Get") - } - - if s.Redirect != 0 || s.Ban != 0 { - return c.OnSubjectDelete(ctx, id) - } - - extracted := extractSubject(&s) - - c.queue.Push(extracted) - - return nil -} - -// OnSubjectDelete is the hook called by canal. -func (c *client) OnSubjectDelete(ctx context.Context, id model.SubjectID) error { - _, err := c.subjectIndex.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) - - return errgo.Wrap(err, "search") -} - -// UpsertSubject add subject to search backend. -func (c *client) sendBatch(items []subjectIndex) { - c.log.Debug("send batch to meilisearch", zap.Int("len", len(items))) - err := retry.Do( - func() error { - _, err := c.subjectIndex.UpdateDocuments(items, "id") - return err - }, - retry.OnRetry(func(n uint, err error) { - c.log.Warn("failed to send batch", zap.Uint("attempt", n), zap.Error(err)) - }), - - retry.DelayType(retry.BackOffDelay), - retry.Delay(time.Microsecond*100), - retry.Attempts(5), //nolint:mnd - retry.RetryIf(func(err error) bool { - var r = &meilisearch.Error{} - return errors.As(err, &r) - }), - ) - - if err != nil { - c.log.Error("failed to send batch", zap.Error(err)) - } -} - -func (c *client) needFirstRun() (bool, error) { - if os.Getenv("CHII_SEARCH_INIT") == "true" { - return true, nil - } - - index, err := c.meili.GetIndex("subjects") - if err != nil { - var e *meilisearch.Error - if errors.As(err, &e) { - return true, nil - } - return false, errgo.Wrap(err, "get subjects index") - } - - stat, err := index.GetStats() - if err != nil { - return false, errgo.Wrap(err, "get subjects index stats") - } - - return stat.NumberOfDocuments == 0, nil -} - -//nolint:funlen -func (c *client) firstRun() { - c.log.Info("search initialize") - _, err := c.meili.CreateIndex(&meilisearch.IndexConfig{ - Uid: "subjects", - PrimaryKey: "id", - }) - if err != nil { - c.log.Fatal("failed to create search subject index", zap.Error(err)) - return - } - - subjectIndex := c.meili.Index("subjects") - - c.log.Info("set sortable attributes", zap.Strings("attributes", *getAttributes("sortable"))) - _, err = subjectIndex.UpdateSortableAttributes(getAttributes("sortable")) - if err != nil { - c.log.Fatal("failed to update search index sortable attributes", zap.Error(err)) - return - } - - c.log.Info("set filterable attributes", zap.Strings("attributes", *getAttributes("filterable"))) - _, err = subjectIndex.UpdateFilterableAttributes(getAttributes("filterable")) - if err != nil { - c.log.Fatal("failed to update search index filterable attributes", zap.Error(err)) - return - } - - c.log.Info("set searchable attributes", zap.Strings("attributes", *getAttributes("searchable"))) - _, err = subjectIndex.UpdateSearchableAttributes(getAttributes("searchable")) - if err != nil { - c.log.Fatal("failed to update search index searchable attributes", zap.Error(err)) - return - } - - c.log.Info("set ranking rules", zap.Strings("rule", *rankRule())) - _, err = subjectIndex.UpdateRankingRules(rankRule()) - if err != nil { - c.log.Fatal("failed to update search index searchable attributes", zap.Error(err)) - return - } - - ctx := context.Background() - - maxSubject, err := c.q.Subject.WithContext(ctx).Limit(1).Order(c.q.Subject.ID.Desc()).Take() - if err != nil { - c.log.Fatal("failed to get current max subject id", zap.Error(err)) - return - } - - c.log.Info(fmt.Sprintf("run full search index with max subject id %d", maxSubject.ID)) - - width := len(strconv.Itoa(int(maxSubject.ID))) - for i := model.SubjectID(1); i <= maxSubject.ID; i++ { - if i%10000 == 0 { - c.log.Info(fmt.Sprintf("progress %*d/%d", width, i, maxSubject.ID)) - } - - err := c.OnSubjectUpdate(ctx, i) - if err != nil { - c.log.Error("error when updating subject", zap.Error(err)) - } - } -} - -func getAttributes(tag string) *[]string { - rt := reflect.TypeOf(subjectIndex{}) - var s []string - for i := 0; i < rt.NumField(); i++ { - t, ok := rt.Field(i).Tag.Lookup(tag) - if !ok { - continue - } - - if t != "true" { - continue - } - - s = append(s, getJSONFieldName(rt.Field(i))) - } - - return &s -} - -func getJSONFieldName(f reflect.StructField) string { - t := f.Tag.Get("json") - if t == "" { - return f.Name - } - - return strings.Split(t, ",")[0] -} diff --git a/internal/search/extractor.common.go b/internal/search/extractor.common.go deleted file mode 100644 index 6213919d1..000000000 --- a/internal/search/extractor.common.go +++ /dev/null @@ -1,55 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package search - -import ( - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/pkg/wiki" -) - -func heat(s *model.Subject) uint32 { - return s.OnHold + s.Doing + s.Dropped + s.Wish + s.Collect -} - -func extractAliases(s *model.Subject, w wiki.Wiki) []string { - var aliases = make([]string, 0, 2) - if s.NameCN != "" { - aliases = append(aliases, s.NameCN) - } - - for _, field := range w.Fields { - if field.Key == "别名" { - aliases = append(aliases, getValues(field)...) - } - } - - return aliases -} - -func getValues(f wiki.Field) []string { - if f.Null { - return nil - } - - if !f.Array { - return []string{f.Value} - } - - var s = make([]string, len(f.Values)) - for i, value := range f.Values { - s[i] = value.Value - } - return s -} diff --git a/internal/search/noop.go b/internal/search/noop.go index bf68f32d8..56ca35a8e 100644 --- a/internal/search/noop.go +++ b/internal/search/noop.go @@ -19,8 +19,6 @@ import ( "net/http" "github.com/labstack/echo/v4" - - "github.com/bangumi/server/internal/model" ) var _ Client = NoopClient{} @@ -28,17 +26,19 @@ var _ Client = NoopClient{} type NoopClient struct { } -func (n NoopClient) OnSubjectAdded(ctx context.Context, id model.SubjectID) error { return nil } - -func (n NoopClient) Handle(c echo.Context) error { +func (n NoopClient) Handle(c echo.Context, _ SearchTarget) error { return c.String(http.StatusOK, "search is not enable") } -func (n NoopClient) OnSubjectUpdate(_ context.Context, _ model.SubjectID) error { +func (n NoopClient) EventAdded(ctx context.Context, _ uint32, _ SearchTarget) error { + return nil +} + +func (n NoopClient) EventUpdate(_ context.Context, _ uint32, _ SearchTarget) error { return nil } -func (n NoopClient) OnSubjectDelete(_ context.Context, _ model.SubjectID) error { +func (n NoopClient) EventDelete(_ context.Context, _ uint32, _ SearchTarget) error { return nil } diff --git a/internal/search/person/client.go b/internal/search/person/client.go new file mode 100644 index 000000000..a7a454005 --- /dev/null +++ b/internal/search/person/client.go @@ -0,0 +1,110 @@ +package person + +import ( + "context" + "fmt" + "reflect" + "strconv" + + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + "github.com/trim21/pkg/queue" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/person" + "github.com/bangumi/server/internal/search/searcher" +) + +const ( + idx = "persons" +) + +func New( + cfg config.AppConfig, + meili meilisearch.ServiceManager, + repo person.Repo, + log *zap.Logger, + query *query.Query, +) (searcher.Searcher, error) { + if repo == nil { + return nil, fmt.Errorf("nil personRepo") + } + c := &client{ + meili: meili, + repo: repo, + index: meili.Index("persons"), + log: log.Named("search").With(zap.String("index", idx)), + q: query, + } + + if cfg.AppType != config.AppTypeCanal { + return c, nil + } + + return c, c.canalInit(cfg) +} + +type client struct { + repo person.Repo + index meilisearch.IndexManager + + meili meilisearch.ServiceManager + log *zap.Logger + q *query.Query + + queue *queue.Batched[searcher.Document] +} + +func (c *client) Close() { + if c.queue != nil { + c.queue.Close() + } +} + +func (c *client) canalInit(cfg config.AppConfig) error { + if err := searcher.ValidateConfigs(cfg); err != nil { + return errgo.Wrap(err, "validate search config") + } + c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) + searcher.RegisterQueueMetrics(idx, c.queue) + shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) + if err != nil { + return err + } + if shouldCreateIndex { + go c.firstRun() + } + return nil +} + +//nolint:funlen +func (c *client) firstRun() { + c.log.Info("search initialize") + rt := reflect.TypeOf(document{}) + searcher.InitIndex(c.log, c.meili, idx, rt, rankRule()) + + ctx := context.Background() + + maxItem, err := c.q.Person.WithContext(ctx).Limit(1).Order(c.q.Person.ID.Desc()).Take() + if err != nil { + c.log.Fatal("failed to get current max id", zap.Error(err)) + return + } + + c.log.Info(fmt.Sprintf("run full search index with max %s id %d", idx, maxItem.ID)) + + width := len(strconv.Itoa(int(maxItem.ID))) + for i := model.PersonID(1); i <= maxItem.ID; i++ { + if i%10000 == 0 { + c.log.Info(fmt.Sprintf("progress %*d/%d", width, i, maxItem.ID)) + } + + err := c.OnUpdate(ctx, i) + if err != nil { + c.log.Error("error when updating", zap.Error(err)) + } + } +} diff --git a/internal/search/person/doc.go b/internal/search/person/doc.go new file mode 100644 index 000000000..c19e3a7ef --- /dev/null +++ b/internal/search/person/doc.go @@ -0,0 +1,49 @@ +package person + +import ( + "strconv" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search/searcher" + "github.com/bangumi/server/pkg/wiki" +) + +type document struct { + ID model.PersonID `json:"id"` + Name string `json:"name" searchable:"true"` + Aliases []string `json:"aliases,omitempty" searchable:"true"` + Comment uint32 `json:"comment" sortable:"true"` + Collect uint32 `json:"collect" sortable:"true"` + Career []string `json:"career,omitempty" filterable:"true"` +} + +func (d *document) GetID() string { + return strconv.FormatUint(uint64(d.ID), 10) +} + +func rankRule() *[]string { + return &[]string{ + // 相似度最优先 + "exactness", + "words", + "typo", + "proximity", + "attribute", + "sort", + "id:asc", + "comment:desc", + "collect:desc", + } +} + +func extract(c *model.Person) searcher.Document { + w := wiki.ParseOmitError(c.Infobox) + + return &document{ + ID: c.ID, + Name: c.Name, + Aliases: searcher.ExtractAliases(w), + Comment: c.CommentCount, + Collect: c.CollectCount, + } +} diff --git a/internal/search/person/event.go b/internal/search/person/event.go new file mode 100644 index 000000000..467c2fdf2 --- /dev/null +++ b/internal/search/person/event.go @@ -0,0 +1,57 @@ +package person + +import ( + "context" + "errors" + "strconv" + + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/model" +) + +func (c *client) OnAdded(ctx context.Context, id model.PersonID) error { + s, err := c.repo.Get(ctx, id) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "characterRepo.Get") + } + + if s.Redirect != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + return err +} + +func (c *client) OnUpdate(ctx context.Context, id model.PersonID) error { + s, err := c.repo.Get(ctx, id) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "characterRepo.Get") + } + + if s.Redirect != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + c.queue.Push(extracted) + + return nil +} + +func (c *client) OnDelete(ctx context.Context, id model.PersonID) error { + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + + return errgo.Wrap(err, "search") +} diff --git a/internal/search/person/handle.go b/internal/search/person/handle.go new file mode 100644 index 000000000..3f4bf1023 --- /dev/null +++ b/internal/search/person/handle.go @@ -0,0 +1,121 @@ +package person + +import ( + "encoding/json" + "net/http" + "strconv" + + "github.com/labstack/echo/v4" + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/generic/slice" + "github.com/bangumi/server/web/req" + "github.com/bangumi/server/web/res" +) + +const defaultLimit = 10 +const maxLimit = 20 + +type Req struct { + Keyword string `json:"keyword"` + Filter ReqFilter `json:"filter"` +} + +type ReqFilter struct { //nolint:musttag + Careers []string `json:"meta_tags"` // and +} + +type hit struct { + ID model.PersonID `json:"id"` +} + +//nolint:funlen +func (c *client) Handle(ctx echo.Context) error { + q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) + if err != nil { + return err + } + + var r Req + if err = json.NewDecoder(ctx.Request().Body).Decode(&r); err != nil { + return res.JSONError(ctx, err) + } + + result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), q.Limit, q.Offset) + if err != nil { + return errgo.Wrap(err, "search") + } + + var hits []hit + if err = json.Unmarshal(result.Hits, &hits); err != nil { + return errgo.Wrap(err, "json.Unmarshal") + } + ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) + + persons, err := c.repo.GetByIDs(ctx.Request().Context(), ids) + if err != nil { + return errgo.Wrap(err, "personRepo.GetByIDs") + } + + var data = make([]res.PersonV0, 0, len(persons)) + for _, id := range ids { + s, ok := persons[id] + if !ok { + continue + } + person := res.ConvertModelPerson(s) + data = append(data, person) + } + + return ctx.JSON(http.StatusOK, res.Paged{ + Data: data, + Total: result.EstimatedTotalHits, + Limit: q.Limit, + Offset: q.Offset, + }) +} + +func (c *client) doSearch( + words string, + filter [][]string, + limit, offset int, +) (*meiliSearchResponse, error) { + if limit == 0 { + limit = 10 + } else if limit > 50 { + limit = 50 + } + + raw, err := c.index.SearchRaw(words, &meilisearch.SearchRequest{ + Offset: int64(offset), + Limit: int64(limit), + Filter: filter, + }) + if err != nil { + return nil, errgo.Wrap(err, "meilisearch search") + } + + var r meiliSearchResponse + if err := json.Unmarshal(*raw, &r); err != nil { + return nil, errgo.Wrap(err, "json.Unmarshal") + } + + return &r, nil +} + +type meiliSearchResponse struct { + Hits json.RawMessage `json:"hits"` + EstimatedTotalHits int64 `json:"estimatedTotalHits"` //nolint:tagliatelle +} + +func filterToMeiliFilter(req ReqFilter) [][]string { + var filter = make([][]string, 0, len(req.Careers)) + + for _, career := range req.Careers { + filter = append(filter, []string{"career = " + strconv.Quote(career)}) + } + + return filter +} diff --git a/internal/search/search.go b/internal/search/search.go new file mode 100644 index 000000000..8c80027be --- /dev/null +++ b/internal/search/search.go @@ -0,0 +1,150 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package search + +import ( + "context" + "fmt" + "net/http" + "net/url" + + "github.com/labstack/echo/v4" + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/person" + characterSearcher "github.com/bangumi/server/internal/search/character" + personSearcher "github.com/bangumi/server/internal/search/person" + "github.com/bangumi/server/internal/search/searcher" + subjectSearcher "github.com/bangumi/server/internal/search/subject" + "github.com/bangumi/server/internal/subject" +) + +type SearchTarget string + +const ( + SearchTargetSubject SearchTarget = "subject" + SearchTargetCharacter SearchTarget = "character" + SearchTargetPerson SearchTarget = "person" +) + +type Client interface { + Handle(c echo.Context, target SearchTarget) error + Close() + + EventAdded(ctx context.Context, id uint32, target SearchTarget) error + EventUpdate(ctx context.Context, id uint32, target SearchTarget) error + EventDelete(ctx context.Context, id uint32, target SearchTarget) error +} + +type Handler interface { + Handle(c echo.Context, target SearchTarget) error +} + +type Search struct { + searchers map[SearchTarget]searcher.Searcher +} + +// New provide a search app is AppConfig.MeiliSearchURL is empty string, return nope search client. +// +// see `MeiliSearchURL` and `MeiliSearchKey` in [config.AppConfig]. +func New( + cfg config.AppConfig, + subjectRepo subject.Repo, + characterRepo character.Repo, + personRepo person.Repo, + log *zap.Logger, + query *query.Query, +) (Client, error) { + if cfg.Search.MeiliSearch.URL == "" { + return NoopClient{}, nil + } + if _, err := url.Parse(cfg.Search.MeiliSearch.URL); err != nil { + return nil, errgo.Wrap(err, "url.Parse") + } + meili := meilisearch.New( + cfg.Search.MeiliSearch.URL, + meilisearch.WithAPIKey(cfg.Search.MeiliSearch.Key), + meilisearch.WithCustomClient(&http.Client{Timeout: cfg.Search.MeiliSearch.Timeout}), + ) + if _, err := meili.Version(); err != nil { + return nil, errgo.Wrap(err, "meilisearch") + } + + subject, err := subjectSearcher.New(cfg, meili, subjectRepo, log, query) + if err != nil { + return nil, errgo.Wrap(err, "subject search") + } + character, err := characterSearcher.New(cfg, meili, characterRepo, log, query) + if err != nil { + return nil, errgo.Wrap(err, "character search") + } + person, err := personSearcher.New(cfg, meili, personRepo, log, query) + if err != nil { + return nil, errgo.Wrap(err, "person search") + } + + searchers := map[SearchTarget]searcher.Searcher{ + SearchTargetSubject: subject, + SearchTargetCharacter: character, + SearchTargetPerson: person, + } + s := &Search{ + searchers: searchers, + } + return s, nil +} + +func (s *Search) Handle(c echo.Context, target SearchTarget) error { + searcher := s.searchers[target] + if searcher == nil { + return fmt.Errorf("searcher not found for %s", target) + } + return searcher.Handle(c) +} + +func (s *Search) EventAdded(ctx context.Context, id uint32, target SearchTarget) error { + searcher := s.searchers[target] + if searcher == nil { + return fmt.Errorf("searcher not found for %s", target) + } + return searcher.OnAdded(ctx, id) +} + +func (s *Search) EventUpdate(ctx context.Context, id uint32, target SearchTarget) error { + searcher := s.searchers[target] + if searcher == nil { + return fmt.Errorf("searcher not found for %s", target) + } + return searcher.OnUpdate(ctx, id) +} + +func (s *Search) EventDelete(ctx context.Context, id uint32, target SearchTarget) error { + searcher := s.searchers[target] + if searcher == nil { + return fmt.Errorf("searcher not found for %s", target) + } + return searcher.OnDelete(ctx, id) +} + +func (s *Search) Close() { + for _, searcher := range s.searchers { + searcher.Close() + } +} diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go new file mode 100644 index 000000000..d18498cb5 --- /dev/null +++ b/internal/search/searcher/client.go @@ -0,0 +1,231 @@ +package searcher + +import ( + "context" + "errors" + "fmt" + "os" + "reflect" + "strings" + "time" + + "github.com/avast/retry-go/v4" + "github.com/labstack/echo/v4" + "github.com/meilisearch/meilisearch-go" + "github.com/prometheus/client_golang/prometheus" + "github.com/samber/lo" + "github.com/trim21/errgo" + "github.com/trim21/pkg/queue" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/pkg/wiki" +) + +type Searcher interface { + Handle(c echo.Context) error + + Close() + + OnAdded(ctx context.Context, id uint32) error + OnUpdate(ctx context.Context, id uint32) error + OnDelete(ctx context.Context, id uint32) error +} + +type Document interface { + GetID() string +} + +func NeedFirstRun(meili meilisearch.ServiceManager, idx string) (bool, error) { + if os.Getenv("CHII_SEARCH_INIT") == "true" { + return true, nil + } + + index, err := meili.GetIndex(idx) + if err != nil { + var e *meilisearch.Error + if errors.As(err, &e) { + return true, nil + } + return false, errgo.Wrap(err, fmt.Sprintf("get index %s", idx)) + } + + stat, err := index.GetStats() + if err != nil { + return false, errgo.Wrap(err, fmt.Sprintf("get index %s stats", idx)) + } + + return stat.NumberOfDocuments == 0, nil +} + +func ValidateConfigs(cfg config.AppConfig) error { + if cfg.Search.SearchBatchSize <= 0 { + // nolint: goerr113 + return fmt.Errorf("config.SearchBatchSize should >= 0, current %d", cfg.Search.SearchBatchSize) + } + + if cfg.Search.SearchBatchInterval <= 0 { + // nolint: goerr113 + return fmt.Errorf("config.SearchBatchInterval should >= 0, current %d", cfg.Search.SearchBatchInterval) + } + + return nil +} + +func ExtractAliases(w wiki.Wiki) []string { + aliases := []string{} + for _, field := range w.Fields { + if field.Key == "中文名" { + aliases = append(aliases, GetWikiValues(field)...) + } + if field.Key == "简体中文名" { + aliases = append(aliases, GetWikiValues(field)...) + } + } + for _, field := range w.Fields { + if field.Key == "别名" { + aliases = append(aliases, GetWikiValues(field)...) + } + } + return aliases +} + +func GetWikiValues(f wiki.Field) []string { + if f.Null { + return nil + } + + if !f.Array { + return []string{f.Value} + } + + var s = make([]string, len(f.Values)) + for i, value := range f.Values { + s[i] = value.Value + } + return s +} + +func NewSendBatch(log *zap.Logger, index meilisearch.IndexManager) func([]Document) { + return func(items []Document) { + log.Debug("send batch to meilisearch", zap.Int("len", len(items))) + err := retry.Do( + func() error { + _, err := index.UpdateDocuments(items, "id") + return err + }, + retry.OnRetry(func(n uint, err error) { + log.Warn("failed to send batch", zap.Uint("attempt", n), zap.Error(err)) + }), + retry.DelayType(retry.BackOffDelay), + retry.Delay(time.Microsecond*100), + retry.Attempts(5), //nolint:mnd + retry.RetryIf(func(err error) bool { + var r = &meilisearch.Error{} + return errors.As(err, &r) + }), + ) + if err != nil { + log.Error("failed to send batch", zap.Error(err)) + } + } +} + +func NewDedupeFunc() func([]Document) []Document { + return func(items []Document) []Document { + // lo.UniqBy 会保留第一次出现的元素,reverse 之后会保留新的数据 + return lo.UniqBy(lo.Reverse(items), func(item Document) string { + return item.GetID() + }) + } +} + +func NewBatchQueue(cfg config.AppConfig, log *zap.Logger, index meilisearch.IndexManager) *queue.Batched[Document] { + return queue.NewBatchedDedupe( + NewSendBatch(log, index), + cfg.Search.SearchBatchSize, + cfg.Search.SearchBatchInterval, + NewDedupeFunc(), + ) +} + +func RegisterQueueMetrics(idx string, queue *queue.Batched[Document]) { + prometheus.DefaultRegisterer.MustRegister( + prometheus.NewGaugeFunc( + prometheus.GaugeOpts{ + Namespace: "chii", + Name: "meilisearch_queue_batch", + Help: "meilisearch update queue batch size", + ConstLabels: prometheus.Labels{ + "index": idx, + }, + }, + func() float64 { + return float64(queue.Len()) + }, + )) +} + +func GetAttributes(rt reflect.Type, tag string) *[]string { + var s []string + for i := 0; i < rt.NumField(); i++ { + t, ok := rt.Field(i).Tag.Lookup(tag) + if !ok { + continue + } + if t != "true" { + continue + } + s = append(s, getJSONFieldName(rt.Field(i))) + } + return &s +} + +func getJSONFieldName(f reflect.StructField) string { + t := f.Tag.Get("json") + if t == "" { + return f.Name + } + return strings.Split(t, ",")[0] +} + +func InitIndex(log *zap.Logger, meili meilisearch.ServiceManager, idx string, rt reflect.Type, rankRule *[]string) { + _, err := meili.CreateIndex(&meilisearch.IndexConfig{ + Uid: idx, + PrimaryKey: "id", + }) + if err != nil { + log.Fatal("failed to create search index", zap.Error(err)) + return + } + + index := meili.Index(idx) + + log.Info("set sortable attributes", zap.Strings("attributes", *GetAttributes(rt, "sortable"))) + _, err = index.UpdateSortableAttributes(GetAttributes(rt, "sortable")) + if err != nil { + log.Fatal("failed to update search index sortable attributes", zap.Error(err)) + return + } + + log.Info("set filterable attributes", zap.Strings("attributes", *GetAttributes(rt, "filterable"))) + _, err = index.UpdateFilterableAttributes(GetAttributes(rt, "filterable")) + if err != nil { + log.Fatal("failed to update search index filterable attributes", zap.Error(err)) + return + } + + log.Info("set searchable attributes", zap.Strings("attributes", *GetAttributes(rt, "searchable"))) + _, err = index.UpdateSearchableAttributes(GetAttributes(rt, "searchable")) + if err != nil { + log.Fatal("failed to update search index searchable attributes", zap.Error(err)) + return + } + + log.Info("set ranking rules", zap.Strings("rule", *rankRule)) + _, err = index.UpdateRankingRules(rankRule) + if err != nil { + log.Fatal("failed to update search index searchable attributes", zap.Error(err)) + return + } +} diff --git a/internal/search/subject/client.go b/internal/search/subject/client.go new file mode 100644 index 000000000..b7c899740 --- /dev/null +++ b/internal/search/subject/client.go @@ -0,0 +1,111 @@ +package subject + +import ( + "context" + "fmt" + "reflect" + "strconv" + + "github.com/meilisearch/meilisearch-go" + "github.com/trim21/errgo" + "github.com/trim21/pkg/queue" + "go.uber.org/zap" + + "github.com/bangumi/server/config" + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search/searcher" + "github.com/bangumi/server/internal/subject" +) + +const ( + idx = "subjects" +) + +func New( + cfg config.AppConfig, + meili meilisearch.ServiceManager, + repo subject.Repo, + log *zap.Logger, + query *query.Query, +) (searcher.Searcher, error) { + if repo == nil { + return nil, fmt.Errorf("nil subjectRepo") + } + c := &client{ + meili: meili, + repo: repo, + index: meili.Index(idx), + log: log.Named("search").With(zap.String("index", idx)), + q: query, + } + + if cfg.AppType != config.AppTypeCanal { + return c, nil + } + + return c, c.canalInit(cfg) +} + +type client struct { + repo subject.Repo + index meilisearch.IndexManager + + meili meilisearch.ServiceManager + log *zap.Logger + q *query.Query + + queue *queue.Batched[searcher.Document] +} + +func (c *client) Close() { + if c.queue != nil { + c.queue.Close() + } +} + +func (c *client) canalInit(cfg config.AppConfig) error { + if err := searcher.ValidateConfigs(cfg); err != nil { + return errgo.Wrap(err, "validate search config") + } + c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) + searcher.RegisterQueueMetrics(idx, c.queue) + + shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) + if err != nil { + return err + } + if shouldCreateIndex { + go c.firstRun() + } + return nil +} + +//nolint:funlen +func (c *client) firstRun() { + c.log.Info("search initialize") + rt := reflect.TypeOf(document{}) + searcher.InitIndex(c.log, c.meili, idx, rt, rankRule()) + + ctx := context.Background() + + maxItem, err := c.q.Subject.WithContext(ctx).Limit(1).Order(c.q.Subject.ID.Desc()).Take() + if err != nil { + c.log.Fatal("failed to get current max id", zap.Error(err)) + return + } + + c.log.Info(fmt.Sprintf("run full search index with max %s id %d", idx, maxItem.ID)) + + width := len(strconv.Itoa(int(maxItem.ID))) + for i := model.SubjectID(1); i <= maxItem.ID; i++ { + if i%10000 == 0 { + c.log.Info(fmt.Sprintf("progress %*d/%d", width, i, maxItem.ID)) + } + + err := c.OnUpdate(ctx, i) + if err != nil { + c.log.Error("error when updating", zap.Error(err)) + } + } +} diff --git a/internal/search/index.go b/internal/search/subject/doc.go similarity index 82% rename from internal/search/index.go rename to internal/search/subject/doc.go index d185c5a49..ec7b083a4 100644 --- a/internal/search/index.go +++ b/internal/search/subject/doc.go @@ -12,13 +12,14 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -package search +package subject import ( "strconv" "strings" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/search/searcher" "github.com/bangumi/server/pkg/wiki" ) @@ -26,7 +27,7 @@ import ( // 使用 `filterable:"true"`, `sortable:"true"` // 两种 tag 来设置是否可以被索引和排序. // 搜索字段因为带有排序,所以定义在 [search.searchAbleAttribute] 中. -type subjectIndex struct { +type document struct { ID model.SubjectID `json:"id"` Tag []string `json:"tag,omitempty" filterable:"true"` MetaTags []string `json:"meta_tag" filterable:"true"` @@ -42,6 +43,10 @@ type subjectIndex struct { NSFW bool `json:"nsfw" filterable:"true"` } +func (d *document) GetID() string { + return strconv.FormatUint(uint64(d.ID), 10) +} + func rankRule() *[]string { return &[]string{ // 相似度最优先 @@ -60,7 +65,11 @@ func rankRule() *[]string { } } -func extractSubject(s *model.Subject) subjectIndex { +func heat(s *model.Subject) uint32 { + return s.OnHold + s.Doing + s.Dropped + s.Wish + s.Collect +} + +func extract(s *model.Subject) searcher.Document { tags := s.Tags w := wiki.ParseOmitError(s.Infobox) @@ -72,7 +81,7 @@ func extractSubject(s *model.Subject) subjectIndex { tagNames[i] = tag.Name } - return subjectIndex{ + return &document{ ID: s.ID, Name: s.Name, Aliases: extractAliases(s, w), @@ -89,6 +98,21 @@ func extractSubject(s *model.Subject) subjectIndex { } } +func extractAliases(s *model.Subject, w wiki.Wiki) []string { + var aliases = make([]string, 0, 2) + if s.NameCN != "" { + aliases = append(aliases, s.NameCN) + } + + for _, field := range w.Fields { + if field.Key == "别名" { + aliases = append(aliases, searcher.GetWikiValues(field)...) + } + } + + return aliases +} + func parseDateVal(date string) int { if len(date) < 10 { return 0 diff --git a/internal/search/extract_internal_test.go b/internal/search/subject/doc_internal_test.go similarity index 98% rename from internal/search/extract_internal_test.go rename to internal/search/subject/doc_internal_test.go index f84874568..6af854169 100644 --- a/internal/search/extract_internal_test.go +++ b/internal/search/subject/doc_internal_test.go @@ -12,7 +12,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -package search +package subject import ( "testing" diff --git a/internal/search/subject/event.go b/internal/search/subject/event.go new file mode 100644 index 000000000..268338403 --- /dev/null +++ b/internal/search/subject/event.go @@ -0,0 +1,58 @@ +package subject + +import ( + "context" + "errors" + "strconv" + + "github.com/trim21/errgo" + + "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/subject" +) + +func (c *client) OnAdded(ctx context.Context, id model.SubjectID) error { + s, err := c.repo.Get(ctx, id, subject.Filter{}) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "subjectRepo.Get") + } + + if s.Redirect != 0 || s.Ban != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + return err +} + +func (c *client) OnUpdate(ctx context.Context, id model.SubjectID) error { + s, err := c.repo.Get(ctx, id, subject.Filter{}) + if err != nil { + if errors.Is(err, gerr.ErrNotFound) { + return nil + } + return errgo.Wrap(err, "subjectRepo.Get") + } + + if s.Redirect != 0 || s.Ban != 0 { + return c.OnDelete(ctx, id) + } + + extracted := extract(&s) + + c.queue.Push(extracted) + + return nil +} + +func (c *client) OnDelete(ctx context.Context, id model.SubjectID) error { + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + + return errgo.Wrap(err, "search") +} diff --git a/internal/search/handle.go b/internal/search/subject/handle.go similarity index 94% rename from internal/search/handle.go rename to internal/search/subject/handle.go index dc7978c23..bc524a8e8 100644 --- a/internal/search/handle.go +++ b/internal/search/subject/handle.go @@ -13,10 +13,9 @@ // along with this program. If not, see // Package search 基于 meilisearch 提供搜索功能 -package search +package subject import ( - "context" "encoding/json" "fmt" "net/http" @@ -40,20 +39,6 @@ import ( "github.com/bangumi/server/web/res" ) -type Client interface { - Handler - Close() - - OnSubjectAdded(ctx context.Context, id model.SubjectID) error - OnSubjectUpdate(ctx context.Context, id model.SubjectID) error - OnSubjectDelete(ctx context.Context, id model.SubjectID) error -} - -// Handler TODO: 想个办法挪到 web 里面去. -type Handler interface { - Handle(c echo.Context) error -} - const defaultLimit = 10 const maxLimit = 20 @@ -130,7 +115,7 @@ func (c *client) Handle(ctx echo.Context) error { } ids := slice.Map(hits, func(h hit) model.SubjectID { return h.ID }) - subjects, err := c.subjectRepo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{}) + subjects, err := c.repo.GetByIDs(ctx.Request().Context(), ids, subject.Filter{}) if err != nil { return errgo.Wrap(err, "subjectRepo.GetByIDs") } @@ -187,7 +172,7 @@ func (c *client) doSearch( return nil, res.BadRequest("sort not supported") } - raw, err := c.subjectIndex.SearchRaw(words, &meilisearch.SearchRequest{ + raw, err := c.index.SearchRaw(words, &meilisearch.SearchRequest{ Offset: int64(offset), Limit: int64(limit), Filter: filter, diff --git a/internal/search/handle_internal_test.go b/internal/search/subject/handle_internal_test.go similarity index 98% rename from internal/search/handle_internal_test.go rename to internal/search/subject/handle_internal_test.go index fb54defb2..5eb9e839f 100644 --- a/internal/search/handle_internal_test.go +++ b/internal/search/subject/handle_internal_test.go @@ -12,7 +12,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -package search +package subject import ( "testing" diff --git a/internal/search/index_internal_test.go b/internal/search/subject/index_internal_test.go similarity index 84% rename from internal/search/index_internal_test.go rename to internal/search/subject/index_internal_test.go index 5049c767b..1da67e001 100644 --- a/internal/search/index_internal_test.go +++ b/internal/search/subject/index_internal_test.go @@ -12,19 +12,23 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -package search +package subject import ( + "reflect" "sort" "testing" "github.com/stretchr/testify/require" + + "github.com/bangumi/server/internal/search/searcher" ) func TestIndexFilter(t *testing.T) { t.Parallel() - actual := *(getAttributes("filterable")) + rt := reflect.TypeOf(document{}) + actual := *(searcher.GetAttributes(rt, "filterable")) expected := []string{"date", "meta_tag", "score", "rank", "type", "nsfw", "tag"} sort.Strings(expected) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 98584a8d2..69addf9f0 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -131,7 +131,6 @@ paths: `true` 只会返回 R18 条目。 `false` 只会返回非 R18 条目。 - responses: 200: description: 返回搜索结果 @@ -140,6 +139,120 @@ paths: schema: "$ref": "#/components/schemas/Paged_Subject" + "/v0/search/characters": + post: + tags: + - 角色 + summary: 角色搜索 + operationId: searchCharacters + description: | + ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动 + + 目前支持的筛选条件包括: + - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。 + + parameters: + - name: limit + in: query + description: 分页参数 + required: false + schema: + type: integer + - name: offset + in: query + description: 分页参数 + required: false + schema: + type: integer + requestBody: + content: + "application/json": + schema: + type: object + required: + - keyword + properties: + keyword: + type: string + filter: + type: object + description: 不同条件之间是 `且` 的关系 + properties: + nsfw: + type: boolean + description: | + 无权限的用户会直接忽略此字段,不会返回 R18 角色。 + + 默认或者 `null` 会返回包含 R18 的所有搜索结果。 + + `true` 只会返回 R18 角色。 + + `false` 只会返回非 R18 角色。 + responses: + 200: + description: 返回搜索结果 + content: + application/json: + schema: + "$ref": "#/components/schemas/Paged_Character" + + "/v0/search/persons": + post: + tags: + - 人物 + summary: 人物搜索 + operationId: searchPersons + description: | + ## 实验性 API, 本 schema 和实际的 API 行为都可能随时发生改动 + + 目前支持的筛选条件包括: + - `career`: 职业,可以多次出现。`且` 关系。 + + 不同筛选条件之间为 `且` + + parameters: + - name: limit + in: query + description: 分页参数 + required: false + schema: + type: integer + - name: offset + in: query + description: 分页参数 + required: false + schema: + type: integer + requestBody: + content: + "application/json": + schema: + type: object + required: + - keyword + properties: + keyword: + type: string + filter: + type: object + description: 不同条件之间是 `且` 的关系 + properties: + career: + type: array + items: + type: string + example: + - artist + - director + description: 职业,可以多次出现。多值之间为 `且` 关系。 + responses: + 200: + description: 返回搜索结果 + content: + application/json: + schema: + "$ref": "#/components/schemas/Paged_Person" + "/v0/subjects": get: tags: @@ -479,7 +592,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/CharacterDetail" + "$ref": "#/components/schemas/Character" "404": description: Not Found content: @@ -1962,8 +2075,8 @@ components: - B - AB - O - CharacterDetail: - title: CharacterDetail + Character: + title: Character required: - id - name @@ -2526,6 +2639,50 @@ components: items: "$ref": "#/components/schemas/Subject" default: [] + Paged_Character: + title: Paged[Character] + type: object + properties: + total: + title: Total + type: integer + default: 0 + limit: + title: Limit + type: integer + default: 0 + offset: + title: Offset + type: integer + default: 0 + data: + title: Data + type: array + items: + "$ref": "#/components/schemas/Character" + default: [] + Paged_Person: + title: Paged[Person] + type: object + properties: + total: + title: Total + type: integer + default: 0 + limit: + title: Limit + type: integer + default: 0 + offset: + title: Offset + type: integer + default: 0 + data: + title: Data + type: array + items: + "$ref": "#/components/schemas/Person" + default: [] Paged_Episode: title: Paged[Episode] type: object diff --git a/web/handler/character/character.go b/web/handler/character/character.go index 8578489f9..eacf54fd4 100644 --- a/web/handler/character/character.go +++ b/web/handler/character/character.go @@ -21,13 +21,8 @@ import ( "github.com/bangumi/server/ctrl" "github.com/bangumi/server/internal/character" "github.com/bangumi/server/internal/collections" - "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/person" - "github.com/bangumi/server/internal/pkg/compat" - "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" - "github.com/bangumi/server/pkg/wiki" - "github.com/bangumi/server/web/res" ) type Character struct { @@ -58,28 +53,3 @@ func New( cfg: config.AppConfig{}, }, nil } - -func convertModelCharacter(s model.Character) res.CharacterV0 { - img := res.PersonImage(s.Image) - - return res.CharacterV0{ - ID: s.ID, - Type: s.Type, - Name: s.Name, - NSFW: s.NSFW, - Images: img, - Summary: s.Summary, - Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), - Gender: null.NilString(res.GenderMap[s.FieldGender]), - BloodType: null.NilUint8(s.FieldBloodType), - BirthYear: null.NilUint16(s.FieldBirthYear), - BirthMon: null.NilUint8(s.FieldBirthMon), - BirthDay: null.NilUint8(s.FieldBirthDay), - Stat: res.Stat{ - Comments: s.CommentCount, - Collects: s.CollectCount, - }, - Redirect: s.Redirect, - Locked: s.Locked, - } -} diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 08547ddca..8e9fde474 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -53,7 +53,7 @@ func (h Character) Get(c echo.Context) error { return res.ErrNotFound } - return c.JSON(http.StatusOK, convertModelCharacter(r)) + return c.JSON(http.StatusOK, res.ConvertModelCharacter(r)) } func (h Character) GetImage(c echo.Context) error { diff --git a/web/handler/search.go b/web/handler/search.go index 38895045f..cf0aeec0c 100644 --- a/web/handler/search.go +++ b/web/handler/search.go @@ -16,8 +16,18 @@ package handler import ( "github.com/labstack/echo/v4" + + "github.com/bangumi/server/internal/search" ) -func (h Handler) Search(c echo.Context) error { - return h.search.Handle(c) //nolint:wrapcheck +func (h Handler) SearchSubjects(c echo.Context) error { + return h.search.Handle(c, search.SearchTargetSubject) //nolint:wrapcheck +} + +func (h Handler) SearchCharacters(c echo.Context) error { + return h.search.Handle(c, search.SearchTargetCharacter) //nolint:wrapcheck +} + +func (h Handler) SearchPersons(c echo.Context) error { + return h.search.Handle(c, search.SearchTargetPerson) //nolint:wrapcheck } diff --git a/web/res/character.go b/web/res/character.go index 2f6ac467d..4acdd7e04 100644 --- a/web/res/character.go +++ b/web/res/character.go @@ -14,7 +14,12 @@ package res -import "github.com/bangumi/server/internal/model" +import ( + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/compat" + "github.com/bangumi/server/internal/pkg/null" + "github.com/bangumi/server/pkg/wiki" +) type CharacterV0 struct { BirthMon *uint8 `json:"birth_mon"` @@ -52,3 +57,28 @@ func CharacterStaffString(i uint8) string { return "" } + +func ConvertModelCharacter(s model.Character) CharacterV0 { + img := PersonImage(s.Image) + + return CharacterV0{ + ID: s.ID, + Type: s.Type, + Name: s.Name, + NSFW: s.NSFW, + Images: img, + Summary: s.Summary, + Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), + Gender: null.NilString(GenderMap[s.FieldGender]), + BloodType: null.NilUint8(s.FieldBloodType), + BirthYear: null.NilUint16(s.FieldBirthYear), + BirthMon: null.NilUint8(s.FieldBirthMon), + BirthDay: null.NilUint8(s.FieldBirthDay), + Stat: Stat{ + Comments: s.CommentCount, + Collects: s.CollectCount, + }, + Redirect: s.Redirect, + Locked: s.Locked, + } +} diff --git a/web/routes.go b/web/routes.go index f3a2b169c..2c3808fde 100644 --- a/web/routes.go +++ b/web/routes.go @@ -58,7 +58,9 @@ func AddRouters( v0 := app.Group("/v0", common.MiddlewareAccessTokenAuth) - v0.POST("/search/subjects", h.Search) + v0.POST("/search/subjects", h.SearchSubjects) + v0.POST("/search/characters", h.SearchCharacters) + v0.POST("/search/persons", h.SearchPersons) subjectHandler.Routes(v0) From 552c090f7af71d992a5c2c02f8992a9f2bd6ac81 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Tue, 26 Nov 2024 15:01:20 +0800 Subject: [PATCH 484/888] fix: update example config for kafka topics (#672) --- config.example.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config.example.yaml b/config.example.yaml index e342a4aba..4e125cfed 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -23,6 +23,8 @@ canal: topics: # kafka topic of redis stream keys - debezium.bangumi.chii_subject_fields - debezium.bangumi.chii_subjects + - debezium.bangumi.chii_characters + - debezium.bangumi.chii_persons - debezium.bangumi.chii_members search: From b719b55ee31172054b2233de7d1827d211a2f7df Mon Sep 17 00:00:00 2001 From: everpcpc Date: Wed, 27 Nov 2024 08:29:46 +0800 Subject: [PATCH 485/888] fix: remove duplicate repo arg (#674) --- cmd/web/cmd.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index ea11b7a55..739a44e01 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -82,8 +82,6 @@ func start() error { fx.Provide( logger.Copy, cache.NewRedisCache, - character.NewMysqlRepo, - user.NewMysqlRepo, index.NewMysqlRepo, auth.NewMysqlRepo, episode.NewMysqlRepo, revision.NewMysqlRepo, infra.NewMysqlRepo, timeline.NewMysqlRepo, pm.NewMysqlRepo, notification.NewMysqlRepo, From 38ce8e6d91023d543dda151f33f3681f4cd24478 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:19:32 +0800 Subject: [PATCH 486/888] chore(deps): update gcr.io/distroless/static docker digest to 5c7e2b4 (#675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 7e6c62637..76bc339a6 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:cc226ca14d17d01d4b278d9489da930a0dd11150df10ae95829d13e6d00fbdbf +FROM gcr.io/distroless/static@sha256:5c7e2b465ac6a2a4e5f4f7f722ce43b147dabe87cb21ac6c4007ae5178a1fa58 ENTRYPOINT ["/app/chii.exe"] From 386ae6808984149034b2d08dc95892855327e32c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:19:43 +0800 Subject: [PATCH 487/888] ci: update codecov/codecov-action action to v5 (#687) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 120a98cb9..20ada4382 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -72,7 +72,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@v4 + - uses: codecov/codecov-action@v5 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required From e553755722475071ea05b684c8c38afab8843db8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:19:59 +0800 Subject: [PATCH 488/888] build(deps): update module github.com/bytedance/sonic to v1.12.5 (#677) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 92fbde363..514ce6754 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.42 github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 - github.com/bytedance/sonic v1.12.4 + github.com/bytedance/sonic v1.12.5 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 93e7a9796..a02876b86 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.4 h1:9Csb3c9ZJhfUWeMtpCDCq6BUoH5ogfDFLUgQ/jG+R0k= -github.com/bytedance/sonic v1.12.4/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.5 h1:hoZxY8uW+mT+OpkcUWw4k0fDINtOcVavEsGfzwzFU/w= +github.com/bytedance/sonic v1.12.5/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= From 3b32f43d0b3edc931b22b781cf73259a087306fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:26:05 +0800 Subject: [PATCH 489/888] build(deps): update module golang.org/x/text to v0.20.0 (#685) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 514ce6754..573f56020 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.28.0 - golang.org/x/text v0.19.0 + golang.org/x/text v0.20.0 google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.1 @@ -98,7 +98,7 @@ require ( golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect - golang.org/x/sync v0.8.0 // indirect + golang.org/x/sync v0.9.0 // indirect golang.org/x/sys v0.26.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect diff --git a/go.sum b/go.sum index a02876b86..cdf763267 100644 --- a/go.sum +++ b/go.sum @@ -249,8 +249,8 @@ golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -276,8 +276,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 9299c86e94e51ebcc8b8da95008ffdacfaab53d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:26:24 +0800 Subject: [PATCH 490/888] build(deps): update aws-sdk-go-v2 monorepo (#676) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 573f56020..1a3e40c7c 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.23.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go-v2 v1.32.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.42 - github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 + github.com/aws/aws-sdk-go-v2 v1.32.5 + github.com/aws/aws-sdk-go-v2/credentials v1.17.46 + github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 github.com/bytedance/sonic v1.12.5 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 @@ -53,15 +53,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/andybalholm/brotli v1.1.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 // indirect - github.com/aws/smithy-go v1.22.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 // indirect + github.com/aws/smithy-go v1.22.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index cdf763267..d5963ab85 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd0wk= -github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= -github.com/aws/aws-sdk-go-v2/credentials v1.17.42 h1:sBP0RPjBU4neGpIYyx8mkU2QqLPl5u9cmdTWVzIpHkM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.42/go.mod h1:FwZBfU530dJ26rv9saAbxa9Ej3eF/AK0OAY86k13n4M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22/go.mod h1:Y/SmAyPcOTmpeVaWSzSKiILfXTVJwrGmYZhcRbhWuEY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 h1:981MHwBaRZM7+9QSR6XamDzF/o7ouUGxFzr+nVSIhrs= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22/go.mod h1:1RA1+aBEfn+CAB/Mh0MB6LsdCYCnjZm7tKXtnk499ZQ= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 h1:yV+hCAHZZYJQcwAaszoBNwLbPItHvApxT0kVIw6jRgs= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22/go.mod h1:kbR1TL8llqB1eGnVbybcA4/wgScxdylOdyAd51yxPdw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 h1:kT6BcZsmMtNkP/iYMcRG+mIEA/IbeiUimXtGmqF39y0= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3/go.mod h1:Z8uGua2k4PPaGOYn66pK02rhMrot3Xk3tpBuUFPomZU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 h1:qcxX0JYlgWH3hpPUnd6U0ikcl6LLA9sLkXE2w1fpMvY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3/go.mod h1:cLSNEmI45soc+Ef8K/L+8sEA3A3pYFEYf5B5UI+6bH4= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 h1:ZC7Y/XgKUxwqcdhO5LE8P6oGP1eh6xlQReWNKfhvJno= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3/go.mod h1:WqfO7M9l9yUAw0HcHaikwRd/H6gzYdz7vjejCA5e2oY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 h1:p9TNFL8bFUMd+38YIpTAXpoxyz0MxC7FlbFEH4P4E1U= -github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2/go.mod h1:fNjyo0Coen9QTwQLWeV6WO2Nytwiu+cCcWaTdKCAqqE= -github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= -github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= +github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7/go.mod h1:QraP0UcVlQJsmHfioCrveWOC1nbiWUl3ej08h4mXWoc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.46 h1:AU7RcriIo2lXjUfHFnFKYsLCwgbz1E7Mm95ieIRDNUg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.46/go.mod h1:1FmYyLGL08KQXQ6mcTlifyFXfJVCNJTVGuQP4m0d/UA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 h1:4usbeaes3yJnCFC7kfeyhkdkPtoRYPa/hTmCqMpKpLI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24/go.mod h1:5CI1JemjVwde8m2WG3cz23qHKPOxbpkq0HaoreEgLIY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 h1:N1zsICrQglfzaBnrfM0Ys00860C+QFwu6u/5+LomP+o= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24/go.mod h1:dCn9HbJ8+K31i8IQ8EWmWj0EiIk0+vKiHNMxTTYveAg= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24 h1:JX70yGKLj25+lMC5Yyh8wBtvB01GDilyRuJvXJ4piD0= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24/go.mod h1:+Ln60j9SUTD0LEwnhEB0Xhg61DHqplBrbZpLgyjoEHg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5 h1:gvZOjQKPxFXy1ft3QnEyXmT+IqneM9QAUWlM3r0mfqw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5/go.mod h1:DLWnfvIcm9IET/mmjdxeXbBKmTCm0ZB8p1za9BVteM8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 h1:wtpJ4zcwrSbwhECWQoI/g6WM9zqCcSpHDJIWSbMLOu4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5/go.mod h1:qu/W9HXQbbQ4+1+JcZp0ZNPV31ym537ZJN+fiS7Ti8E= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 h1:P1doBzv5VEg1ONxnJss1Kh5ZG/ewoIE4MQtKKc6Crgg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5/go.mod h1:NOP+euMW7W3Ukt28tAxPuoWao4rhhqJD3QEBk7oCg7w= +github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 h1:Q2ax8S21clKOnHhhr933xm3JxdJebql+R7aNo7p7GBQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0/go.mod h1:ralv4XawHjEMaHOWnTFushl0WRqim/gQWesAMF6hTow= +github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= +github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= From 663b3256522577e3279ee8b14f0f699846dc8faa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:28:09 +0800 Subject: [PATCH 491/888] build(deps): update module golang.org/x/crypto to v0.29.0 (#684) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1a3e40c7c..c81468762 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.28.0 + golang.org/x/crypto v0.29.0 golang.org/x/text v0.20.0 google.golang.org/grpc v1.67.1 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 @@ -99,7 +99,7 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.26.0 // indirect + golang.org/x/sys v0.27.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect diff --git a/go.sum b/go.sum index d5963ab85..fed24c2cf 100644 --- a/go.sum +++ b/go.sum @@ -230,8 +230,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -261,8 +261,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From df715b7ee6524941bdf343e9732279b55236462d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:28:27 +0800 Subject: [PATCH 492/888] build(deps): update module google.golang.org/grpc to v1.68.0 (#686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c81468762..ef72ca93c 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.29.0 golang.org/x/text v0.20.0 - google.golang.org/grpc v1.67.1 + google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.1 gopkg.in/yaml.v3 v3.0.1 diff --git a/go.sum b/go.sum index fed24c2cf..750a10ad2 100644 --- a/go.sum +++ b/go.sum @@ -78,6 +78,8 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -289,8 +291,8 @@ golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= From d1967bf2a77887720d77dd54e05a2d964905d02a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:28:40 +0800 Subject: [PATCH 493/888] build(deps): update module github.com/stretchr/testify to v1.10.0 (#683) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ef72ca93c..cffdbf5c9 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.1.0-alpha.5 github.com/trim21/htest v0.0.4 diff --git a/go.sum b/go.sum index 750a10ad2..2e9d8f062 100644 --- a/go.sum +++ b/go.sum @@ -192,8 +192,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= github.com/trim21/go-phpserialize v0.1.0-alpha.5 h1:bMsUpfwAgPggQzDKdafNBvkPWDCMfzlvH30MWzI/SYg= From fa0683df02d9d64480cae262c56a643652baa678 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:28:50 +0800 Subject: [PATCH 494/888] build(deps): update module github.com/go-resty/resty/v2 to v2.16.2 (#682) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cffdbf5c9..27193fda8 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.22.1 - github.com/go-resty/resty/v2 v2.15.3 + github.com/go-resty/resty/v2 v2.16.2 github.com/go-sql-driver/mysql v1.8.1 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 diff --git a/go.sum b/go.sum index 2e9d8f062..8389b919e 100644 --- a/go.sum +++ b/go.sum @@ -64,8 +64,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.15.3 h1:bqff+hcqAflpiF591hhJzNdkRsFhlB96CYfBwSFvql8= -github.com/go-resty/resty/v2 v2.15.3/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= +github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg= +github.com/go-resty/resty/v2 v2.16.2/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= From 75e48ac8c92a74f3b23a97a809b6a6e3a467d872 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:31:10 +0800 Subject: [PATCH 495/888] build(deps): update dependency prettier to ^3.4.1 (#680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 146a2750f..8b8d05ba4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.3" + "prettier": "^3.4.1" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 812c53117..c49a7c45d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.3.3" + "prettier": "^3.4.1" }, "nodemonConfig": { "restartable": "rs", From b9de5a6c5443941a374b66308d946acb5bc55f16 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:31:15 +0800 Subject: [PATCH 496/888] build(deps): update module google.golang.org/protobuf to v1.35.2 (#679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 27193fda8..f5b5f5d05 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( golang.org/x/text v0.20.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.1 + google.golang.org/protobuf v1.35.2 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index 8389b919e..6be930b5f 100644 --- a/go.sum +++ b/go.sum @@ -295,8 +295,8 @@ google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From ba0e96f37448b48052fee51ddb0936706e12328b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:31:24 +0800 Subject: [PATCH 497/888] build(deps): update module github.com/redis/rueidis to v1.0.49 (#678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f5b5f5d05..1a6c30876 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/meilisearch/meilisearch-go v0.29.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.5 - github.com/redis/rueidis v1.0.48 + github.com/redis/rueidis v1.0.49 github.com/samber/lo v1.47.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 diff --git a/go.sum b/go.sum index 6be930b5f..9868c1a65 100644 --- a/go.sum +++ b/go.sum @@ -167,8 +167,8 @@ github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJN github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.48 h1:ggZHjEtc/echUmPkGTfssRisnc3p/mIUEwrpbNsZ1mQ= -github.com/redis/rueidis v1.0.48/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= +github.com/redis/rueidis v1.0.49 h1:uhjMcQ663R8st3saoo85VV9Ce37zfvRXiveZcBrS3YQ= +github.com/redis/rueidis v1.0.49/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= From 4051eedde0f4ecb2ce5e2a298575ffd8dc1f7031 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:31:34 +0800 Subject: [PATCH 498/888] build(deps): update module github.com/go-playground/validator/v10 to v10.23.0 (#681) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1a6c30876..7904b9973 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.22.1 + github.com/go-playground/validator/v10 v10.23.0 github.com/go-resty/resty/v2 v2.16.2 github.com/go-sql-driver/mysql v1.8.1 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 9868c1a65..e9657e3c9 100644 --- a/go.sum +++ b/go.sum @@ -62,8 +62,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.23.0 h1:/PwmTwZhS0dPkav3cdK9kV1FsAmrL8sThn8IHr/sO+o= +github.com/go-playground/validator/v10 v10.23.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg= github.com/go-resty/resty/v2 v2.16.2/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= From 40ab2997c01246e32a64c55dc29448cf0ea7ee0a Mon Sep 17 00:00:00 2001 From: xrz <62951481+xrz-cloud@users.noreply.github.com> Date: Sun, 8 Dec 2024 22:05:17 +0800 Subject: [PATCH 499/888] feat: support get current user's email and reg_time (#690) --- internal/user/model.go | 1 + internal/user/mysql_repository.go | 1 + openapi/v0.yaml | 11 +++++++++ web/handler/user/me.go | 37 ++++++++++++++++++------------- 4 files changed, 34 insertions(+), 16 deletions(-) diff --git a/internal/user/model.go b/internal/user/model.go index 2ee5e2bbb..cb700cf6b 100644 --- a/internal/user/model.go +++ b/internal/user/model.go @@ -32,6 +32,7 @@ type FullUser struct { ID model.UserID UserGroup GroupID TimeOffset int8 + Email string } type GroupID = uint8 diff --git a/internal/user/mysql_repository.go b/internal/user/mysql_repository.go index c77fb0d3e..a85365a79 100644 --- a/internal/user/mysql_repository.go +++ b/internal/user/mysql_repository.go @@ -59,6 +59,7 @@ func (m mysqlRepo) GetFullUser(ctx context.Context, userID model.UserID) (FullUs ID: u.ID, RegistrationTime: time.Unix(u.Regdate, 0), TimeOffset: parseTimeOffset(u.Timeoffset), + Email: u.Email, }, nil } diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 69addf9f0..87e18ee9a 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -1041,8 +1041,19 @@ paths: schema: allOf: - "$ref": "#/components/schemas/User" + - required: + - email + - reg_time - type: object properties: + email: + description: "用户绑定的邮箱地址" + type: string + format: email + reg_time: + description: "用户注册时间。比如 2017-12-03T08:51:16+08:00" + type: string + format: date-time time_offset: description: "用户设置的时区偏移,以小时为单位。比如 GMT+8(shanghai/beijing)为 8" type: integer diff --git a/web/handler/user/me.go b/web/handler/user/me.go index d2482c903..ca4fecc8e 100644 --- a/web/handler/user/me.go +++ b/web/handler/user/me.go @@ -16,6 +16,7 @@ package user import ( "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -26,14 +27,16 @@ import ( ) type CurrentUser struct { - Avatar res.Avatar `json:"avatar"` - Sign string `json:"sign"` - URL string `json:"url"` - Username string `json:"username"` - Nickname string `json:"nickname"` - ID model.UserID `json:"id"` - UserGroup uint8 `json:"user_group"` - TimeOffset int8 `json:"time_offset"` + Avatar res.Avatar `json:"avatar"` + Sign string `json:"sign"` + URL string `json:"url"` + Username string `json:"username"` + Nickname string `json:"nickname"` + ID model.UserID `json:"id"` + UserGroup uint8 `json:"user_group"` + RegistrationTime time.Time `json:"reg_time"` + Email string `json:"email"` + TimeOffset int8 `json:"time_offset"` } func (h User) GetCurrent(c echo.Context) error { @@ -48,13 +51,15 @@ func (h User) GetCurrent(c echo.Context) error { } return c.JSON(http.StatusOK, CurrentUser{ - ID: user.ID, - URL: "https://bgm.tv/user/" + user.UserName, - Username: user.UserName, - Nickname: user.NickName, - UserGroup: user.UserGroup, - Avatar: res.UserAvatar(user.Avatar), - Sign: user.Sign, - TimeOffset: user.TimeOffset, + ID: user.ID, + URL: "https://bgm.tv/user/" + user.UserName, + Username: user.UserName, + Nickname: user.NickName, + UserGroup: user.UserGroup, + Avatar: res.UserAvatar(user.Avatar), + Sign: user.Sign, + RegistrationTime: user.RegistrationTime, + Email: user.Email, + TimeOffset: user.TimeOffset, }) } From 3289ce588a5c7b65de890d0ae226a377df9ebb47 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:26:07 +0800 Subject: [PATCH 500/888] build(deps): update module golang.org/x/crypto to v0.31.0 [security] (#691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 7904b9973..fd13ffa24 100644 --- a/go.mod +++ b/go.mod @@ -36,8 +36,8 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.29.0 - golang.org/x/text v0.20.0 + golang.org/x/crypto v0.31.0 + golang.org/x/text v0.21.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 @@ -98,8 +98,8 @@ require ( golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.30.0 // indirect - golang.org/x/sync v0.9.0 // indirect - golang.org/x/sys v0.27.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.28.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect diff --git a/go.sum b/go.sum index e9657e3c9..148c304d0 100644 --- a/go.sum +++ b/go.sum @@ -232,8 +232,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= -golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -251,8 +251,8 @@ golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -263,8 +263,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= -golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -278,8 +278,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= -golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 6bb1f3cb58a0b99ebf971930785f5edb9a653e5a Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 14 Dec 2024 03:12:11 +0800 Subject: [PATCH 501/888] docs: fix getMyself error status code --- openapi/v0.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 87e18ee9a..3b2264a44 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -1057,7 +1057,7 @@ paths: time_offset: description: "用户设置的时区偏移,以小时为单位。比如 GMT+8(shanghai/beijing)为 8" type: integer - "403": + "401": description: unauthorized content: application/json: From 3f838a4a479eaf92a522256378fa1c7692d2973f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 05:04:16 +0800 Subject: [PATCH 502/888] build(deps): update module golang.org/x/net to v0.33.0 [security] (#692) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fd13ffa24..b12196cc8 100644 --- a/go.mod +++ b/go.mod @@ -97,7 +97,7 @@ require ( go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/time v0.7.0 // indirect diff --git a/go.sum b/go.sum index 148c304d0..3836c8886 100644 --- a/go.sum +++ b/go.sum @@ -246,8 +246,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 234f790e86e614522911f59a2ac70f6fb2bf3ea3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 04:03:50 +0800 Subject: [PATCH 503/888] build(deps): update module github.com/bytedance/sonic to v1.12.6 (#693) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b12196cc8..c225d6383 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.5 github.com/aws/aws-sdk-go-v2/credentials v1.17.46 github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 - github.com/bytedance/sonic v1.12.5 + github.com/bytedance/sonic v1.12.6 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 3836c8886..85d6d2d5b 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.5 h1:hoZxY8uW+mT+OpkcUWw4k0fDINtOcVavEsGfzwzFU/w= -github.com/bytedance/sonic v1.12.5/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.6 h1:/isNmCUF2x3Sh8RAp/4mh4ZGkcFAX/hLrzrK3AvpRzk= +github.com/bytedance/sonic v1.12.6/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= From 1ce12360ed2d782d73e123eaf5ffc3fdedc22c27 Mon Sep 17 00:00:00 2001 From: everpcpc Date: Sun, 29 Dec 2024 10:38:29 +0800 Subject: [PATCH 504/888] fix: norm NFC for subject comment (#695) --- internal/collections/domain/collection/subject.go | 2 +- internal/subject/mysql_repository_test.go | 2 +- web/req/collection.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/collections/domain/collection/subject.go b/internal/collections/domain/collection/subject.go index 3534aca95..f196e6871 100644 --- a/internal/collections/domain/collection/subject.go +++ b/internal/collections/domain/collection/subject.go @@ -119,7 +119,7 @@ func (s *Subject) UpdateComment(comment string) error { return gerr.ErrInvisibleChar } - s.comment = norm.NFKC.String(comment) + s.comment = norm.NFC.String(comment) return nil } diff --git a/internal/subject/mysql_repository_test.go b/internal/subject/mysql_repository_test.go index c6a767a99..93c531595 100644 --- a/internal/subject/mysql_repository_test.go +++ b/internal/subject/mysql_repository_test.go @@ -73,7 +73,7 @@ func TestBrowse(t *testing.T) { } s, err := repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 12, len(s)) + require.Equal(t, 17, len(s)) filter = subject.BrowseFilter{ Type: 1, diff --git a/web/req/collection.go b/web/req/collection.go index f0e5d6aac..19503cbf5 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -70,7 +70,7 @@ func (v *SubjectEpisodeCollectionPatch) Validate() error { } if v.Comment.Set { - v.Comment.Value = norm.NFKC.String(v.Comment.Value) + v.Comment.Value = norm.NFC.String(v.Comment.Value) v.Comment.Value = strings.TrimSpace(v.Comment.Value) if !dam.AllPrintableChar(v.Comment.Value) { return res.BadRequest("invisible character are included in comment") From ea0113b642f364ee0472847e547ceb4c3d958423 Mon Sep 17 00:00:00 2001 From: qilme <89187439+qilme@users.noreply.github.com> Date: Wed, 5 Feb 2025 01:49:12 +0800 Subject: [PATCH 505/888] fix: remove redundant type definition for query parameters in OpenAPI spec (#696) --- openapi/v0.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 3b2264a44..fa46508dd 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -505,7 +505,6 @@ paths: allOf: - "$ref": "#/components/schemas/EpType" description: 参照章节的`type` - type: integer name: type in: query - required: false @@ -1092,7 +1091,6 @@ paths: schema: allOf: - "$ref": "#/components/schemas/SubjectCollectionType" - type: integer name: type in: query - $ref: "#/components/parameters/default_query_limit" From 4e85e8610700c231eaa18ecf3ed359822f07e404 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 8 Feb 2025 01:53:43 +0800 Subject: [PATCH 506/888] chore: remove unnecessary logger --- ctrl/update_subject_collection.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index aa3c9edca..86f095050 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -25,7 +25,6 @@ import ( "github.com/bangumi/server/internal/auth" "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/logger/log" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" ) @@ -50,7 +49,6 @@ func (ctl Ctrl) UpdateSubjectCollection( req UpdateCollectionRequest, allowCreate bool, ) error { - ctl.log.Info("try to update collection", zap.Uint32("subject_id", subject.ID), log.User(u.ID)) met := ctl.collection.UpdateSubjectCollection if allowCreate { met = ctl.collection.UpdateOrCreateSubjectCollection From d360d07e9dc889f70d112181757ffc3fe9fab9d1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 8 Feb 2025 01:54:07 +0800 Subject: [PATCH 507/888] chore: remove unnecessary logger --- canal/event.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/canal/event.go b/canal/event.go index 4d7fc3d0f..9945ca323 100644 --- a/canal/event.go +++ b/canal/event.go @@ -90,8 +90,6 @@ func (e *eventHandler) Close() error { } func (e *eventHandler) OnUserPasswordChange(ctx context.Context, id model.UserID) error { - e.log.Info("user change password", log.User(id)) - if err := e.session.RevokeUser(ctx, id); err != nil { e.log.Error("failed to revoke user", log.User(id), zap.Error(err)) return errgo.Wrap(err, "session.RevokeUser") From 7f3210eddbcda00d9852c7ecba303bb032d5a1ba Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 8 Feb 2025 02:00:06 +0800 Subject: [PATCH 508/888] chore: remove unnecessary logger --- ctrl/update_episode_progress.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/ctrl/update_episode_progress.go b/ctrl/update_episode_progress.go index e957f4898..dbf2b7a59 100644 --- a/ctrl/update_episode_progress.go +++ b/ctrl/update_episode_progress.go @@ -48,9 +48,6 @@ func (ctl Ctrl) UpdateEpisodesCollection( return err } - ctl.log.Info("try to update collection info", zap.Uint32("subject", subjectID), - log.User(u.ID), zap.Reflect("episodes", episodeIDs)) - /* GORM v1.25.0 起修复了一个 bug,但是被当成 feature 使用了。在该版本之前,Limit 0 认为不是合法的 Limit,会被从 SQL 语句中忽略 see PR: go-gorm/gorm/pull/6191 From cb197d967f55b836bffdf6d373b43eb93768cbad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:24:50 +0800 Subject: [PATCH 509/888] build(deps): update npm (#713) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b8d05ba4..9c9a6adeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,20 +8,20 @@ "name": "chii", "version": "0.34.0", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.7.2", + "@apidevtools/json-schema-ref-parser": "^11.9.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.4.1" + "prettier": "^3.4.2" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.0.tgz", + "integrity": "sha512-8Q/r5mXLa8Rfyh6r4SgEEFJgISVN5cDNFlcfSWLgFn3odzQhTfHAqzI3hMGdcROViL+8NrDNVVFQtEUrYOksDg==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.0.tgz", + "integrity": "sha512-8Q/r5mXLa8Rfyh6r4SgEEFJgISVN5cDNFlcfSWLgFn3odzQhTfHAqzI3hMGdcROViL+8NrDNVVFQtEUrYOksDg==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", - "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index c49a7c45d..865e64247 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.7.2", + "@apidevtools/json-schema-ref-parser": "^11.9.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.4.1" + "prettier": "^3.4.2" }, "nodemonConfig": { "restartable": "rs", From e9833c2ae0f24877932c2fd2093907f26f056bcc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:24:59 +0800 Subject: [PATCH 510/888] chore(deps): update gcr.io/distroless/static docker digest to 3f2b64e (#697) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 76bc339a6..1e9c0c8d7 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:5c7e2b465ac6a2a4e5f4f7f722ce43b147dabe87cb21ac6c4007ae5178a1fa58 +FROM gcr.io/distroless/static@sha256:3f2b64ef97bd285e36132c684e6b2ae8f2723293d09aae046196cca64251acac ENTRYPOINT ["/app/chii.exe"] From cbfc1f57fd5f6a08802d00bab4101785bc8d2f2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:25:08 +0800 Subject: [PATCH 511/888] ci: update autofix-ci/action digest to 551dded (#698) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index eba0e7e82..b0252c81e 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -32,4 +32,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c + - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef From fbb3c98db2f4adc4d4d9f2fe689864bab0086a99 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:25:16 +0800 Subject: [PATCH 512/888] build(deps): update module github.com/bytedance/sonic to v1.12.8 (#699) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 7 +++---- go.sum | 13 ++++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index c225d6383..7f37ed32b 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.32.5 github.com/aws/aws-sdk-go-v2/credentials v1.17.46 github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 - github.com/bytedance/sonic v1.12.6 + github.com/bytedance/sonic v1.12.8 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 @@ -63,10 +63,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 // indirect github.com/aws/smithy-go v1.22.1 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bytedance/sonic/loader v0.2.0 // indirect + github.com/bytedance/sonic/loader v0.2.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudwego/base64x v0.1.4 // indirect - github.com/cloudwego/iasm v0.2.0 // indirect + github.com/cloudwego/base64x v0.1.5 // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect diff --git a/go.sum b/go.sum index 85d6d2d5b..0272abc9f 100644 --- a/go.sum +++ b/go.sum @@ -35,16 +35,15 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.6 h1:/isNmCUF2x3Sh8RAp/4mh4ZGkcFAX/hLrzrK3AvpRzk= -github.com/bytedance/sonic v1.12.6/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.8 h1:4xYRVRlXIgvSZ4e8iVTlMF5szgpXd4AfvuWgA8I8lgs= +github.com/bytedance/sonic v1.12.8/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= -github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= +github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= -github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= +github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From 307993684a986952463ac3898b72182384f61312 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:25:26 +0800 Subject: [PATCH 513/888] build(deps): update module github.com/go-resty/resty/v2 to v2.16.5 (#700) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7f37ed32b..0272b3cf1 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.23.0 - github.com/go-resty/resty/v2 v2.16.2 + github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.8.1 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 diff --git a/go.sum b/go.sum index 0272abc9f..0f99b5e67 100644 --- a/go.sum +++ b/go.sum @@ -63,8 +63,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.23.0 h1:/PwmTwZhS0dPkav3cdK9kV1FsAmrL8sThn8IHr/sO+o= github.com/go-playground/validator/v10 v10.23.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-resty/resty/v2 v2.16.2 h1:CpRqTjIzq/rweXUt9+GxzzQdlkqMdt8Lm/fuK/CAbAg= -github.com/go-resty/resty/v2 v2.16.2/go.mod h1:0fHAoK7JoBy/Ch36N8VFeMsK7xQOHhvWaC3iOktwmIU= +github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= +github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= From fb401720ded93f1b223a8c9de98851bb10c1c67b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:25:49 +0800 Subject: [PATCH 514/888] build(deps): update module github.com/samber/lo to v1.49.1 (#708) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0272b3cf1..8730f5165 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.5 github.com/redis/rueidis v1.0.49 - github.com/samber/lo v1.47.0 + github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 0f99b5e67..b952ab346 100644 --- a/go.sum +++ b/go.sum @@ -171,8 +171,8 @@ github.com/redis/rueidis v1.0.49/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexo github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= -github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= +github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= +github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= From 1af8e569058fe08fcfec5da5a7abd532d688ae14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:25:56 +0800 Subject: [PATCH 515/888] build(deps): update module golang.org/x/text to v0.22.0 (#710) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8730f5165..a7bfc9f84 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.31.0 - golang.org/x/text v0.21.0 + golang.org/x/text v0.22.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.35.2 @@ -97,7 +97,7 @@ require ( golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.33.0 // indirect - golang.org/x/sync v0.10.0 // indirect + golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect diff --git a/go.sum b/go.sum index b952ab346..5b579439c 100644 --- a/go.sum +++ b/go.sum @@ -250,8 +250,8 @@ golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= -golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= +golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -277,8 +277,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= +golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From e79fee31f86c12dce8f663ef0eb9e139fbd5af63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:30:21 +0800 Subject: [PATCH 516/888] build(deps): update aws-sdk-go-v2 monorepo (#704) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index a7bfc9f84..5d5937c01 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.23.2 require ( github.com/avast/retry-go/v4 v4.6.0 - github.com/aws/aws-sdk-go-v2 v1.32.5 - github.com/aws/aws-sdk-go-v2/credentials v1.17.46 - github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 + github.com/aws/aws-sdk-go-v2 v1.36.1 + github.com/aws/aws-sdk-go-v2/credentials v1.17.59 + github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 github.com/bytedance/sonic v1.12.8 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 @@ -53,15 +53,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/andybalholm/brotli v1.1.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 // indirect - github.com/aws/smithy-go v1.22.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect + github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bytedance/sonic/loader v0.2.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 5b579439c..b0a29c2b9 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1 github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= -github.com/aws/aws-sdk-go-v2 v1.32.5 h1:U8vdWJuY7ruAkzaOdD7guwJjD06YSKmnKCJs7s3IkIo= -github.com/aws/aws-sdk-go-v2 v1.32.5/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7/go.mod h1:QraP0UcVlQJsmHfioCrveWOC1nbiWUl3ej08h4mXWoc= -github.com/aws/aws-sdk-go-v2/credentials v1.17.46 h1:AU7RcriIo2lXjUfHFnFKYsLCwgbz1E7Mm95ieIRDNUg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.46/go.mod h1:1FmYyLGL08KQXQ6mcTlifyFXfJVCNJTVGuQP4m0d/UA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 h1:4usbeaes3yJnCFC7kfeyhkdkPtoRYPa/hTmCqMpKpLI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24/go.mod h1:5CI1JemjVwde8m2WG3cz23qHKPOxbpkq0HaoreEgLIY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 h1:N1zsICrQglfzaBnrfM0Ys00860C+QFwu6u/5+LomP+o= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24/go.mod h1:dCn9HbJ8+K31i8IQ8EWmWj0EiIk0+vKiHNMxTTYveAg= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24 h1:JX70yGKLj25+lMC5Yyh8wBtvB01GDilyRuJvXJ4piD0= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24/go.mod h1:+Ln60j9SUTD0LEwnhEB0Xhg61DHqplBrbZpLgyjoEHg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5 h1:gvZOjQKPxFXy1ft3QnEyXmT+IqneM9QAUWlM3r0mfqw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5/go.mod h1:DLWnfvIcm9IET/mmjdxeXbBKmTCm0ZB8p1za9BVteM8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 h1:wtpJ4zcwrSbwhECWQoI/g6WM9zqCcSpHDJIWSbMLOu4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5/go.mod h1:qu/W9HXQbbQ4+1+JcZp0ZNPV31ym537ZJN+fiS7Ti8E= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 h1:P1doBzv5VEg1ONxnJss1Kh5ZG/ewoIE4MQtKKc6Crgg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5/go.mod h1:NOP+euMW7W3Ukt28tAxPuoWao4rhhqJD3QEBk7oCg7w= -github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 h1:Q2ax8S21clKOnHhhr933xm3JxdJebql+R7aNo7p7GBQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0/go.mod h1:ralv4XawHjEMaHOWnTFushl0WRqim/gQWesAMF6hTow= -github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro= -github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= +github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg= +github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4= +github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 h1:cCBJaT7EeEojpJ4s7wTDbhZlHVJOgNHN7iw6qVurGaw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q= +github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 h1:ehvUZNVrGA1Usa6yYo8A8pUqrigRelWXSbcCqYpRLeI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0/go.mod h1:KuLNrwYJFaC2AVZ+CVVc12k9NyqwgWsoNNHjwqF6QNk= +github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= +github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= From 9269db56f16a590edc4d2ccfa8ed107be86444b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:30:31 +0800 Subject: [PATCH 517/888] build(deps): update module golang.org/x/crypto to v0.32.0 (#709) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 5d5937c01..a1bb100b5 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.31.0 + golang.org/x/crypto v0.32.0 golang.org/x/text v0.22.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 @@ -98,7 +98,7 @@ require ( golang.org/x/mod v0.21.0 // indirect golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.11.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect diff --git a/go.sum b/go.sum index b0a29c2b9..3b0e186da 100644 --- a/go.sum +++ b/go.sum @@ -231,8 +231,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -262,8 +262,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 3e662fb4bd0a53e9b8a30d8001d2d669906730c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:37:48 +0800 Subject: [PATCH 518/888] build(deps): update module github.com/labstack/echo/v4 to v4.13.3 (#706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 5 ++--- go.sum | 10 ++++------ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index a1bb100b5..bf6ca0e47 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v4 v4.12.0 + github.com/labstack/echo/v4 v4.13.3 github.com/mattn/go-colorable v0.1.13 github.com/meilisearch/meilisearch-go v0.29.0 github.com/mitchellh/mapstructure v1.5.0 @@ -67,7 +67,6 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/gabriel-vasile/mimetype v1.4.5 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect @@ -99,7 +98,7 @@ require ( golang.org/x/net v0.33.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.29.0 // indirect - golang.org/x/time v0.7.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.26.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect gorm.io/datatypes v1.2.2 // indirect diff --git a/go.sum b/go.sum index 3b0e186da..cb2ac4c44 100644 --- a/go.sum +++ b/go.sum @@ -68,8 +68,6 @@ github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= @@ -121,8 +119,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0= -github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM= +github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= +github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -279,8 +277,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= -golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= From dbec030cff0cc4775c3de563e851dd9799da0da9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:45:34 +0800 Subject: [PATCH 519/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.30.0 (#707) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index bf6ca0e47..9a5a880f8 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.3 github.com/mattn/go-colorable v0.1.13 - github.com/meilisearch/meilisearch-go v0.29.0 + github.com/meilisearch/meilisearch-go v0.30.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.5 github.com/redis/rueidis v1.0.49 @@ -52,7 +52,7 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect - github.com/andybalholm/brotli v1.1.0 // indirect + github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect diff --git a/go.sum b/go.sum index cb2ac4c44..10137145f 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,8 @@ filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4 github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= -github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= @@ -68,7 +68,6 @@ github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= @@ -141,8 +140,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.29.0 h1:HZ9NEKN59USINQ/DXJge/aaXq8IrsKbXGTdAoBaaDz4= -github.com/meilisearch/meilisearch-go v0.29.0/go.mod h1:2cRCAn4ddySUsFfNDLVPod/plRibQsJkXF/4gLhxbOk= +github.com/meilisearch/meilisearch-go v0.30.0 h1:J5TKZmfNOQc065+icxN2ShzT8u9F2/v6/gO/4DEw2ek= +github.com/meilisearch/meilisearch-go v0.30.0/go.mod h1:NYOgjEGt/+oExD+NixreBMqxtIB0kCndXOOgpGhoqEs= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -211,6 +210,8 @@ github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= From 68c1ceae781910cad4d0dfacbd8b2bbdcbfc28fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:45:52 +0800 Subject: [PATCH 520/888] build(deps): update module github.com/go-playground/validator/v10 to v10.24.0 (#705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 9a5a880f8..ea8e16a08 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.23.0 + github.com/go-playground/validator/v10 v10.24.0 github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.8.1 github.com/google/uuid v1.6.0 @@ -66,7 +66,7 @@ require ( github.com/bytedance/sonic/loader v0.2.2 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect @@ -95,7 +95,7 @@ require ( go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.33.0 // indirect + golang.org/x/net v0.34.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/go.sum b/go.sum index 10137145f..29826631b 100644 --- a/go.sum +++ b/go.sum @@ -53,16 +53,16 @@ github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3 github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.23.0 h1:/PwmTwZhS0dPkav3cdK9kV1FsAmrL8sThn8IHr/sO+o= -github.com/go-playground/validator/v10 v10.23.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= @@ -244,8 +244,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From f27cc3948edc12901d281de2bcc25f7834f8c86e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:47:49 +0800 Subject: [PATCH 521/888] build(deps): update module github.com/mattn/go-colorable to v0.1.14 (#701) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index ea8e16a08..81939babb 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/jarcoal/httpmock v1.3.1 github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.3 - github.com/mattn/go-colorable v0.1.13 + github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.30.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.5 diff --git a/go.sum b/go.sum index 29826631b..4b0db2363 100644 --- a/go.sum +++ b/go.sum @@ -128,9 +128,8 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= @@ -256,7 +255,6 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From c39ebe4ced0d3caf915426a27c86a87f7b2b91c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:48:15 +0800 Subject: [PATCH 522/888] build(deps): update module github.com/redis/rueidis to v1.0.54 (#702) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 18 ++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 81939babb..d6a24a6e2 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/meilisearch/meilisearch-go v0.30.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.20.5 - github.com/redis/rueidis v1.0.49 + github.com/redis/rueidis v1.0.54 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 @@ -94,12 +94,12 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/mod v0.21.0 // indirect + golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.29.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.29.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index 4b0db2363..bc0c2bdef 100644 --- a/go.sum +++ b/go.sum @@ -147,8 +147,8 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= -github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= +github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= +github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -162,8 +162,8 @@ github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJN github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.49 h1:uhjMcQ663R8st3saoo85VV9Ce37zfvRXiveZcBrS3YQ= -github.com/redis/rueidis v1.0.49/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexoTURIxM= +github.com/redis/rueidis v1.0.54 h1:QGlQXic7ILkcogpbMTV2bjIyKsUsZk5mPMveoe9eMPs= +github.com/redis/rueidis v1.0.54/go.mod h1:HqQFoIupoJzcRnOlI6URmujTCXfNgbm6kYpczVrs4Pw= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -231,12 +231,10 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -282,8 +280,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= From 9d55938a6f6b1f822250d2fd5ea45f1fce0858bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:48:28 +0800 Subject: [PATCH 523/888] build(deps): update module github.com/spf13/pflag to v1.0.6 (#703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index d6a24a6e2..fdef4542b 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.8.1 - github.com/spf13/pflag v1.0.5 + github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.1.0-alpha.5 diff --git a/go.sum b/go.sum index bc0c2bdef..d6411c778 100644 --- a/go.sum +++ b/go.sum @@ -175,8 +175,9 @@ github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= From 9dd1c28b16335739205469b8ddc28a6df4c0a12b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 9 Feb 2025 02:07:28 +0800 Subject: [PATCH 524/888] build(deps): update module golang.org/x/crypto to v0.33.0 (#714) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index fdef4542b..a41aeb9b0 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.32.0 + golang.org/x/crypto v0.33.0 golang.org/x/text v0.22.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 @@ -97,7 +97,7 @@ require ( golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/sync v0.11.0 // indirect - golang.org/x/sys v0.29.0 // indirect + golang.org/x/sys v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect diff --git a/go.sum b/go.sum index d6411c778..f344365cf 100644 --- a/go.sum +++ b/go.sum @@ -230,8 +230,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= +golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= @@ -258,8 +258,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 643de1bf4003ff0c6bbb98f86b6351d88b8b662b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 03:41:07 +0800 Subject: [PATCH 525/888] chore(deps): update proto digest to 6d8eab9 (#715) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index 7475c4b23..6d8eab9cf 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 7475c4b237d2541de47d726ded88560405f17013 +Subproject commit 6d8eab9cfca66c7cc67ac5f08d88d438c56e0565 From 1636cf5e4e7b2aad9956eef881971735e282acaf Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 06:59:47 +0800 Subject: [PATCH 526/888] build: update go version to 1.23.6 --- .github/workflows/build.yaml | 5 +++-- .github/workflows/lint.yaml | 7 ++++--- .github/workflows/release-docker.yaml | 5 +++-- .github/workflows/test.yaml | 5 +++-- .golangci.yaml | 22 ++++------------------ go.mod | 4 +++- 6 files changed, 20 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 56f80f84a..49246586a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -46,9 +46,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-122-${{ hashFiles('**/go.sum') }}-build + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-build restore-keys: | - go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- - name: Install Task uses: arduino/setup-task@v2 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index cdd1cabac..7d772315f 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -43,13 +43,14 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-122-${{ hashFiles('**/go.sum') }}-lint + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-lint restore-keys: | - go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- - run: go get -t ./... - name: Run linters uses: golangci/golangci-lint-action@v6 with: - version: v1.61.0 + version: v1.64.5 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index e9fbd9837..39685f662 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -36,9 +36,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-122-${{ hashFiles('**/go.sum') }}-build + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-build restore-keys: | - go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 20ada4382..bb9059098 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -53,9 +53,10 @@ jobs: path: | ~/.cache/go-build ~/go/pkg - key: go-cache-122-${{ hashFiles('**/go.sum') }}-test + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-test restore-keys: | - go-cache-122-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- - run: go get -t ./... diff --git a/.golangci.yaml b/.golangci.yaml index 380125165..a2b186804 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -24,22 +24,8 @@ run: output: # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions # default is "colored-line-number" - formats: colored-line-number - - # print lines of code with issue, default is true - print-issued-lines: true - - # print linter name in the end of issue text, default is true - print-linter-name: true - - # make issues output unique by line, default is true - uniq-by-line: true - - # add a prefix to the output file references; default is no prefix - path-prefix: "" - - # sorts results by: filepath, line and column - sort-results: true + formats: + - format: "colored-line-number" # all available settings of specific linters linters-settings: @@ -176,7 +162,7 @@ linters-settings: # https://staticcheck.io/docs/options#checks checks: ["all"] - stylecheck: + # stylecheck: # Select the Go version to target. The default is '1.13'. testpackage: @@ -274,7 +260,7 @@ linters: # - staticcheck - stylecheck - tagliatelle - - tenv + - usetesting - testableexamples - testpackage - thelper diff --git a/go.mod b/go.mod index a41aeb9b0..5128920e6 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/bangumi/server -go 1.23.2 +go 1.23 + +toolchain go1.23.6 require ( github.com/avast/retry-go/v4 v4.6.0 From 5b2e1e1d8524602a8227635d70e18e80de2ba671 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:10:59 +0800 Subject: [PATCH 527/888] build(deps): update module google.golang.org/protobuf to v1.36.5 (#712) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5128920e6..4ca304845 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( golang.org/x/text v0.22.0 google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.35.2 + google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index f344365cf..ce80fff42 100644 --- a/go.sum +++ b/go.sum @@ -290,8 +290,8 @@ google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 8cddda9d2cf90262c86fb924d1113f92398eacfc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:11:11 +0800 Subject: [PATCH 528/888] build(deps): update npm (#721) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c9a6adeb..6af5e4f91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,20 +8,20 @@ "name": "chii", "version": "0.34.0", "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.9.0", + "@apidevtools/json-schema-ref-parser": "^11.9.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.4.2" + "prettier": "^3.5.2" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.0.tgz", - "integrity": "sha512-8Q/r5mXLa8Rfyh6r4SgEEFJgISVN5cDNFlcfSWLgFn3odzQhTfHAqzI3hMGdcROViL+8NrDNVVFQtEUrYOksDg==", + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -294,9 +294,9 @@ } }, "node_modules/prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", + "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -444,9 +444,9 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.0.tgz", - "integrity": "sha512-8Q/r5mXLa8Rfyh6r4SgEEFJgISVN5cDNFlcfSWLgFn3odzQhTfHAqzI3hMGdcROViL+8NrDNVVFQtEUrYOksDg==", + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", "requires": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -664,9 +664,9 @@ } }, "prettier": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", - "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", + "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", "dev": true }, "reftools": { diff --git a/package.json b/package.json index 865e64247..295d3a67b 100644 --- a/package.json +++ b/package.json @@ -12,14 +12,14 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.9.0", + "@apidevtools/json-schema-ref-parser": "^11.9.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21" }, "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.4.2" + "prettier": "^3.5.2" }, "nodemonConfig": { "restartable": "rs", From cc2b76cc99c2afcbb6f2921d2344d41e2c360e3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:17:44 +0800 Subject: [PATCH 529/888] build(deps): update module github.com/prometheus/client_golang to v1.21.0 (#725) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 4ca304845..09c16b1cf 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.30.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/client_golang v1.21.0 github.com/redis/rueidis v1.0.54 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 @@ -75,7 +75,7 @@ require ( github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.17.10 // indirect + github.com/klauspost/compress v1.17.11 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect @@ -85,7 +85,7 @@ require ( github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.60.0 // indirect + github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/stretchr/objx v0.5.2 // indirect diff --git a/go.sum b/go.sum index ce80fff42..8068d4497 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.10 h1:oXAz+Vh0PMUvJczoi+flxpnBEPxoER1IaAnU/NMPtT0= -github.com/klauspost/compress v1.17.10/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= @@ -154,12 +154,12 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= +github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.60.0 h1:+V9PAREWNvJMAuJ1x1BaWl9dewMW4YrHZQbx0sJNllA= -github.com/prometheus/common v0.60.0/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= +github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= +github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redis/rueidis v1.0.54 h1:QGlQXic7ILkcogpbMTV2bjIyKsUsZk5mPMveoe9eMPs= From a802ceffe8e1b1efe6a69e2cb9825e644500a0c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:19:04 +0800 Subject: [PATCH 530/888] build(deps): update module github.com/spf13/cobra to v1.9.1 (#726) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 09c16b1cf..087efb5e0 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/redis/rueidis v1.0.54 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 - github.com/spf13/cobra v1.8.1 + github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.3 diff --git a/go.sum b/go.sum index 8068d4497..1c007710a 100644 --- a/go.sum +++ b/go.sum @@ -45,7 +45,7 @@ github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -173,9 +173,8 @@ github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUan github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From 96394c544bbdda39f40397215a681c2d18c54f0e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:20:37 +0800 Subject: [PATCH 531/888] chore(config): migrate renovate config (#728) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- .github/renovate.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index bebd2c743..829601602 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -12,8 +12,8 @@ "packageRules": [ { "matchDatasources": ["docker"], - "matchPackagePrefixes": ["gcr.io/"], - "pinDigests": true + "pinDigests": true, + "matchPackageNames": ["gcr.io/**"] }, { "matchManagers": ["docker-compose"], @@ -31,7 +31,7 @@ { "groupName": "gomod-redis", "matchManagers": ["gomod"], - "matchPackagePrefixes": ["github.com/go-redis/redismock", "github.com/redis/go-redis"] + "matchPackageNames": ["github.com/go-redis/redismock/**", "github.com/redis/go-redis/**"] }, { "groupName": "npm", From 708434f15a148b241c152e26220bf1f26bb9da7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:21:44 +0800 Subject: [PATCH 532/888] build(deps): update module github.com/go-playground/validator/v10 to v10.25.0 (#722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 087efb5e0..56021b956 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.24.0 + github.com/go-playground/validator/v10 v10.25.0 github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.8.1 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 1c007710a..7429aeb6c 100644 --- a/go.sum +++ b/go.sum @@ -61,8 +61,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= -github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= +github.com/go-playground/validator/v10 v10.25.0 h1:5Dh7cjvzR7BRZadnsVOzPhWsrwUr0nmsZJxEAnFLNO8= +github.com/go-playground/validator/v10 v10.25.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= From e28be0b15bdac63972d31dce9002bf96878a92e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:21:53 +0800 Subject: [PATCH 533/888] build(deps): update module github.com/bytedance/sonic to v1.12.9 (#718) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 56021b956..0835ffa01 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.1 github.com/aws/aws-sdk-go-v2/credentials v1.17.59 github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 - github.com/bytedance/sonic v1.12.8 + github.com/bytedance/sonic v1.12.9 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index 7429aeb6c..41ad86b79 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.8 h1:4xYRVRlXIgvSZ4e8iVTlMF5szgpXd4AfvuWgA8I8lgs= -github.com/bytedance/sonic v1.12.8/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= +github.com/bytedance/sonic v1.12.9 h1:Od1BvK55NnewtGaJsTDeAOSnLVO2BTSLOe0+ooKokmQ= +github.com/bytedance/sonic v1.12.9/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= From 9bec77b85c2f2d4b6d31691a60fdaa6c14122a88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:22:02 +0800 Subject: [PATCH 534/888] build(deps): update module github.com/avast/retry-go/v4 to v4.6.1 (#717) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0835ffa01..69e2985b0 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23 toolchain go1.23.6 require ( - github.com/avast/retry-go/v4 v4.6.0 + github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.1 github.com/aws/aws-sdk-go-v2/credentials v1.17.59 github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 diff --git a/go.sum b/go.sum index 41ad86b79..29ab75ef8 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0 github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/avast/retry-go/v4 v4.6.0 h1:K9xNA+KeB8HHc2aWFuLb25Offp+0iVRXEvFx8IinRJA= -github.com/avast/retry-go/v4 v4.6.0/go.mod h1:gvWlPhBVsvBbLkVGDg/KwvBv0bEkCOLRRSHKIr2PyOE= +github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= +github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0= From 7d4634b56d19a33324a7360944c2cffc46ded763 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:22:30 +0800 Subject: [PATCH 535/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.31.0 (#724) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 69e2985b0..3eb174ee7 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.3 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.30.0 + github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.21.0 github.com/redis/rueidis v1.0.54 @@ -79,7 +79,7 @@ require ( github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect + github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect diff --git a/go.sum b/go.sum index 29ab75ef8..3f8d02c08 100644 --- a/go.sum +++ b/go.sum @@ -126,8 +126,8 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -139,8 +139,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.30.0 h1:J5TKZmfNOQc065+icxN2ShzT8u9F2/v6/gO/4DEw2ek= -github.com/meilisearch/meilisearch-go v0.30.0/go.mod h1:NYOgjEGt/+oExD+NixreBMqxtIB0kCndXOOgpGhoqEs= +github.com/meilisearch/meilisearch-go v0.31.0 h1:yZRhY1qJqdH8h6GFZALGtkDLyj8f9v5aJpsNMyrUmnY= +github.com/meilisearch/meilisearch-go v0.31.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= From 9327c76be8fc7a9dc284d186ff374fd0dbc49dd8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:22:38 +0800 Subject: [PATCH 536/888] build(deps): update module github.com/go-sql-driver/mysql to v1.9.0 (#723) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 3eb174ee7..36c2a3e65 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.25.0 github.com/go-resty/resty/v2 v2.16.5 - github.com/go-sql-driver/mysql v1.8.1 + github.com/go-sql-driver/mysql v1.9.0 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index 3f8d02c08..7974369cd 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,9 @@ github.com/go-playground/validator/v10 v10.25.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1 github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= +github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= From e05c87db68801d15c75b0d694b00c8c629eba0d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:22:48 +0800 Subject: [PATCH 537/888] build(deps): update module github.com/trim21/go-phpserialize to v0.1.0 (#720) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 36c2a3e65..c74905571 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.3 - github.com/trim21/go-phpserialize v0.1.0-alpha.5 + github.com/trim21/go-phpserialize v0.1.0 github.com/trim21/htest v0.0.4 github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 diff --git a/go.sum b/go.sum index 7974369cd..386db08b9 100644 --- a/go.sum +++ b/go.sum @@ -51,8 +51,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -192,8 +192,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= -github.com/trim21/go-phpserialize v0.1.0-alpha.5 h1:bMsUpfwAgPggQzDKdafNBvkPWDCMfzlvH30MWzI/SYg= -github.com/trim21/go-phpserialize v0.1.0-alpha.5/go.mod h1:/3zMYuOzpcKOevwP3ZN0WxdVRaB3CzJh5T2i41QPgRQ= +github.com/trim21/go-phpserialize v0.1.0 h1:4wLvVYkP6Ya07M+2YweFdx4WOrydZzVyxKRDGK/L5KM= +github.com/trim21/go-phpserialize v0.1.0/go.mod h1:99ibWRqdNj3DTX+dbHvo+L47TsoEXwArpvBPRLrvz20= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/trim21/pkg v0.0.4 h1:0nYODKdqNUzmUaPFvqSiR420u2uXQgIYyVyiNfH7olc= From fae24eff998ec959e453e23512299ddbb2e15166 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:23:03 +0800 Subject: [PATCH 538/888] build(deps): update aws-sdk-go-v2 monorepo (#716) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 22 +++++++++++----------- go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index c74905571..1b54e807c 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ toolchain go1.23.6 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.36.1 - github.com/aws/aws-sdk-go-v2/credentials v1.17.59 - github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 + github.com/aws/aws-sdk-go-v2 v1.36.3 + github.com/aws/aws-sdk-go-v2/credentials v1.17.61 + github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0 github.com/bytedance/sonic v1.12.9 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 @@ -55,14 +55,14 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bytedance/sonic/loader v0.2.2 // indirect diff --git a/go.sum b/go.sum index 386db08b9..6dfd2fcce 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= -github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg= -github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4= -github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 h1:cCBJaT7EeEojpJ4s7wTDbhZlHVJOgNHN7iw6qVurGaw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q= -github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 h1:ehvUZNVrGA1Usa6yYo8A8pUqrigRelWXSbcCqYpRLeI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0/go.mod h1:KuLNrwYJFaC2AVZ+CVVc12k9NyqwgWsoNNHjwqF6QNk= +github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= +github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= +github.com/aws/aws-sdk-go-v2/credentials v1.17.61 h1:Hd/uX6Wo2iUW1JWII+rmyCD7MMhOe7ALwQXN6sKDd1o= +github.com/aws/aws-sdk-go-v2/credentials v1.17.61/go.mod h1:L7vaLkwHY1qgW0gG1zG0z/X0sQ5tpIY5iI13+j3qI80= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcuz+RjeziUtNJackkM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2 h1:t/gZFyrijKuSU0elA5kRngP/oU3mc0I+Dvp8HwRE4c0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0 h1:EBm8lXevBWe+kK9VOU/IBeOI189WPRwPUc3LvJK9GOs= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0/go.mod h1:4qzsZSzB/KiX2EzDjs9D7A8rI/WGJxZceVJIHqtJjIU= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From a0330de6e646975dde306f92a7e66bc515edddd4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:44:05 +0800 Subject: [PATCH 539/888] build(deps): update module google.golang.org/grpc to v1.70.0 (#711) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1b54e807c..d88b29e31 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.33.0 golang.org/x/text v0.22.0 - google.golang.org/grpc v1.68.0 + google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 @@ -102,7 +102,7 @@ require ( golang.org/x/sys v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 6dfd2fcce..30ba226af 100644 --- a/go.sum +++ b/go.sum @@ -55,6 +55,10 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -213,6 +217,16 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= @@ -284,10 +298,10 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f h1:cUMEy+8oS78BWIH9OWazBkzbr090Od9tWBNtZHkOhf0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240930140551-af27646dc61f/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= -google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= +google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= From d7da13b992254f2fbe895bd57a801d6cc62b686b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 07:44:15 +0800 Subject: [PATCH 540/888] build(deps): update module github.com/redis/rueidis to v1.0.55 (#719) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index d88b29e31..e65a05920 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.21.0 - github.com/redis/rueidis v1.0.54 + github.com/redis/rueidis v1.0.55 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.9.1 @@ -97,7 +97,7 @@ require ( go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.34.0 // indirect + golang.org/x/net v0.35.0 // indirect golang.org/x/sync v0.11.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/go.sum b/go.sum index 30ba226af..72b6fa18c 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,8 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= @@ -167,8 +167,8 @@ github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.54 h1:QGlQXic7ILkcogpbMTV2bjIyKsUsZk5mPMveoe9eMPs= -github.com/redis/rueidis v1.0.54/go.mod h1:HqQFoIupoJzcRnOlI6URmujTCXfNgbm6kYpczVrs4Pw= +github.com/redis/rueidis v1.0.55 h1:PrRv6eETcanBgYVNdwxn6RyUaPfxN6H+b5jUA4mfpkw= +github.com/redis/rueidis v1.0.55/go.mod h1:cr7ILwt1AqyMRfjWlA9Orubj6gp1xzn1DPyhmrhv/x0= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -256,8 +256,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= +golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From fb593de0a78b88d7519771a437705627475fbd62 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 08:30:37 +0800 Subject: [PATCH 541/888] build: upgrade golang.org/x/crypto --- go.mod | 4 ++-- go.sum | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index e65a05920..fae10ba6d 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.23 +go 1.23.0 toolchain go1.23.6 @@ -38,7 +38,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.33.0 + golang.org/x/crypto v0.35.0 golang.org/x/text v0.22.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 diff --git a/go.sum b/go.sum index 72b6fa18c..a3b32dc33 100644 --- a/go.sum +++ b/go.sum @@ -244,8 +244,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= -golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= From 2d9f66420fec39faddb4f084c0a6a1c4414d3cd1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 21:11:21 +0800 Subject: [PATCH 542/888] ci: add security scan tool (#729) --- .github/workflows/security.yaml | 52 +++++++++++++++++++++++++++++++++ go.mod | 4 +-- 2 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/security.yaml diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml new file mode 100644 index 000000000..23c9db70e --- /dev/null +++ b/.github/workflows/security.yaml @@ -0,0 +1,52 @@ +name: Security Vulnerability Check + +on: + push: + branches-ignore: + - renovate/** + paths: + - "**.go" + - "go.mod" + - "go.sum" + - ".golangci.yaml" + - ".github/workflows/security.yaml" + pull_request: + branches: + - master + paths: + - "**.go" + - "go.mod" + - "go.sum" + - ".github/workflows/security.yaml" + schedule: + - cron: "15 3 * * 4" + +env: + GOTOOLCHAIN: "local" + +jobs: + vulnerability-scan: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version-file: "go.mod" + cache: false + + - name: Go Build Cache (vulnerability_scan) + uses: actions/cache@v4 + with: + path: | + ~/.cache/go-build + ~/go/pkg + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-vulnerability_scan + restore-keys: | + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- + + - run: go install golang.org/x/vuln/cmd/govulncheck@latest + + - run: govulncheck ./... diff --git a/go.mod b/go.mod index fae10ba6d..8ef4a6c68 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,6 @@ module github.com/bangumi/server -go 1.23.0 - -toolchain go1.23.6 +go 1.23.6 require ( github.com/avast/retry-go/v4 v4.6.1 From ab68a310cc96bfcad6af7bd95015cd3d23cf2c29 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 21:34:59 +0800 Subject: [PATCH 543/888] ci: does github actions allow nested directory? (#730) --- .github/workflows/{release-openapi.yaml => release/openapi.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{release-openapi.yaml => release/openapi.yaml} (100%) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release/openapi.yaml similarity index 100% rename from .github/workflows/release-openapi.yaml rename to .github/workflows/release/openapi.yaml From 4a2268c9c2d88e4197a6ce78692f46a116bc92ef Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 21:37:01 +0800 Subject: [PATCH 544/888] ci: does github actions allow nested directory? (#731) --- .github/workflows/{release-docker.yaml => release/docker.yaml} | 0 .github/workflows/{release.yaml => release/github.yaml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{release-docker.yaml => release/docker.yaml} (100%) rename .github/workflows/{release.yaml => release/github.yaml} (100%) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release/docker.yaml similarity index 100% rename from .github/workflows/release-docker.yaml rename to .github/workflows/release/docker.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release/github.yaml similarity index 100% rename from .github/workflows/release.yaml rename to .github/workflows/release/github.yaml From 0883a7a012e4bd6951a5b06c880166d01f46292b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 21:39:23 +0800 Subject: [PATCH 545/888] ci: github actions do not allow allow nested directory --- .github/workflows/{release/docker.yaml => release-docker.yaml} | 0 .github/workflows/{release/github.yaml => release-github.yaml} | 0 .github/workflows/{release/openapi.yaml => release-openapi.yaml} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{release/docker.yaml => release-docker.yaml} (100%) rename .github/workflows/{release/github.yaml => release-github.yaml} (100%) rename .github/workflows/{release/openapi.yaml => release-openapi.yaml} (100%) diff --git a/.github/workflows/release/docker.yaml b/.github/workflows/release-docker.yaml similarity index 100% rename from .github/workflows/release/docker.yaml rename to .github/workflows/release-docker.yaml diff --git a/.github/workflows/release/github.yaml b/.github/workflows/release-github.yaml similarity index 100% rename from .github/workflows/release/github.yaml rename to .github/workflows/release-github.yaml diff --git a/.github/workflows/release/openapi.yaml b/.github/workflows/release-openapi.yaml similarity index 100% rename from .github/workflows/release/openapi.yaml rename to .github/workflows/release-openapi.yaml From c9e482f26e5e3b41e96de828c39b42229993b87c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 1 Mar 2025 21:53:35 +0800 Subject: [PATCH 546/888] ci: use on actions to setup all go (#732) --- .github/actions/setup-go/action.yaml | 30 +++++++++++++++++++++++++++ .github/workflows/build.yaml | 17 ++------------- .github/workflows/lint.yaml | 19 ++--------------- .github/workflows/release-docker.yaml | 17 +-------------- .github/workflows/security.yaml | 17 +-------------- .github/workflows/test.yaml | 19 ++--------------- 6 files changed, 38 insertions(+), 81 deletions(-) create mode 100644 .github/actions/setup-go/action.yaml diff --git a/.github/actions/setup-go/action.yaml b/.github/actions/setup-go/action.yaml new file mode 100644 index 000000000..77aaf640d --- /dev/null +++ b/.github/actions/setup-go/action.yaml @@ -0,0 +1,30 @@ +inputs: + env: + description: "env" + required: false + default: "build" + +name: "Setup Golang" +description: "setup golang env" +runs: + using: "composite" + steps: + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version-file: "go.mod" + cache: false + + - name: Go Build Cache (${{ inputs.env }}) + uses: actions/cache@v4 + with: + path: | + ~/.cache/go-build + ~/go/pkg + key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-${{ inputs.env }} + restore-keys: | + go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- + go-cache-123-${{ hashFiles('**/go.mod') }}- + + - run: go get ./... + shell: bash diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 49246586a..04a12ac2c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,22 +34,9 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Go - uses: actions/setup-go@v5 + - uses: ./.github/actions/setup-go with: - go-version-file: "go.mod" - cache: false - - - name: Go Build Cache (build) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-build - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- + env: build - name: Install Task uses: arduino/setup-task@v2 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 7d772315f..3065493b7 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -31,24 +31,9 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Go - uses: actions/setup-go@v5 + - uses: ./.github/actions/setup-go with: - go-version-file: "go.mod" - cache: false - - - name: Go Build Cache (lint) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-lint - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- - - - run: go get -t ./... + env: lint - name: Run linters uses: golangci/golangci-lint-action@v6 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 39685f662..a4d3f91b0 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -24,22 +24,7 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Go - uses: actions/setup-go@v5 - with: - go-version-file: "go.mod" - cache: false - - - name: Go Build Cache (build) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-build - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- + - uses: ./.github/actions/setup-go - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 23c9db70e..e6b545f9c 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -30,22 +30,7 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Go - uses: actions/setup-go@v5 - with: - go-version-file: "go.mod" - cache: false - - - name: Go Build Cache (vulnerability_scan) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-vulnerability_scan - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- + - uses: ./.github/actions/setup-go - run: go install golang.org/x/vuln/cmd/govulncheck@latest diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index bb9059098..4d04ee023 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -36,30 +36,15 @@ jobs: with: submodules: recursive - - name: Install Go - uses: actions/setup-go@v5 + - uses: ./.github/actions/setup-go with: - go-version-file: "go.mod" - cache: false + env: test - name: Install Task uses: arduino/setup-task@v2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - - name: Go Build Cache (test) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-test - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- - - - run: go get -t ./... - - run: bash $HOME/dev-env/wait_mysql_ready.sh - name: Run tests From 5be232a0dbc21bad053867d3d5a2b88b0509d207 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 4 Mar 2025 00:35:07 +0800 Subject: [PATCH 547/888] ci: lock go version (#733) --- .github/actions/setup-go/action.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-go/action.yaml b/.github/actions/setup-go/action.yaml index 77aaf640d..2ebe59673 100644 --- a/.github/actions/setup-go/action.yaml +++ b/.github/actions/setup-go/action.yaml @@ -9,10 +9,13 @@ description: "setup golang env" runs: using: "composite" steps: + - id: parse-gomod + uses: Arthur1/parse-gomod-action@v0.1.0 + - name: Install Go uses: actions/setup-go@v5 with: - go-version-file: "go.mod" + go-version: ${{ steps.parse-gomod.outputs.toolchain-go-version || steps.parse-gomod.outputs.go }} cache: false - name: Go Build Cache (${{ inputs.env }}) From 092e2940c91ef355871d841196fd49f5c6fcd9f1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 4 Mar 2025 00:38:48 +0800 Subject: [PATCH 548/888] build: add toolchain version to go.mod (#734) --- go.mod | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 8ef4a6c68..fae10ba6d 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,8 @@ module github.com/bangumi/server -go 1.23.6 +go 1.23.0 + +toolchain go1.23.6 require ( github.com/avast/retry-go/v4 v4.6.1 From d3169687ce97b6c3d9937ae37249ae046be4787a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 00:43:00 +0800 Subject: [PATCH 549/888] build(deps): update module github.com/bytedance/sonic to v1.12.10 (#735) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fae10ba6d..2962c8aa0 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.61 github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0 - github.com/bytedance/sonic v1.12.9 + github.com/bytedance/sonic v1.12.10 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index a3b32dc33..b066657cf 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.9 h1:Od1BvK55NnewtGaJsTDeAOSnLVO2BTSLOe0+ooKokmQ= -github.com/bytedance/sonic v1.12.9/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= +github.com/bytedance/sonic v1.12.10 h1:uVCQr6oS5669E9ZVW0HyksTLfNS7Q/9hV6IVS4nEMsI= +github.com/bytedance/sonic v1.12.10/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= From eb081ceced558060e1e2cff080d858d5107d3519 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Mar 2025 08:52:35 +0800 Subject: [PATCH 550/888] Update renovate.json --- .github/renovate.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 829601602..12ffc3cd5 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -20,10 +20,6 @@ "matchPackageNames": ["mysql"], "enabled": false }, - { - "matchPackageNames": ["go"], - "enabled": false - }, { "matchManagers": ["gomod"], "semanticCommitType": "build" From 16c5d738cbc582bbdd2d37170b53324025de4da8 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Mar 2025 08:54:12 +0800 Subject: [PATCH 551/888] Update renovate.json --- .github/renovate.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 12ffc3cd5..75fc38eaf 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,6 +1,10 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["local>Trim21/renovate-config", "local>Trim21/renovate-config:monthly"], + "extends": [ + "local>Trim21/renovate-config", + "local>Trim21/renovate-config:go", + "local>Trim21/renovate-config:monthly" + ], "separateMinorPatch": false, "separateMajorMinor": true, "separateMultipleMajor": true, From 6241b4a2a55394504a9cd8770cc9f6455e394dbc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 7 Mar 2025 08:54:26 +0800 Subject: [PATCH 552/888] Update renovate.json --- .github/renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 75fc38eaf..18744eb4c 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -8,7 +8,7 @@ "separateMinorPatch": false, "separateMajorMinor": true, "separateMultipleMajor": true, - "postUpdateOptions": ["gomodTidy1.17"], + "postUpdateOptions": ["gomodTidy"], "dockerfile": { "fileMatch": [".*dockerfile$"], "enabled": true From 74a15d6e81c996e13c307e3dc947364af4d7092d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 08:59:12 +0800 Subject: [PATCH 553/888] build(deps): lock file maintenance npm (#743) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 171 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 87 insertions(+), 86 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6af5e4f91..726b13447 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.5.2" + "prettier": "^3.5.3" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -35,9 +35,9 @@ } }, "node_modules/@exodus/schemasafe": { - "version": "1.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz", - "integrity": "sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", "dev": true }, "node_modules/@jsdevtools/ono": { @@ -80,20 +80,23 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/color-convert": { @@ -130,9 +133,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -238,33 +241,6 @@ "url": "https://github.com/Mermade/oas-kit?sponsor=1" } }, - "node_modules/oas-resolver/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/oas-resolver/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/oas-schema-walker": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", @@ -294,9 +270,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -320,7 +296,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -440,6 +416,33 @@ "engines": { "node": ">= 6" } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } } }, "dependencies": { @@ -454,9 +457,9 @@ } }, "@exodus/schemasafe": { - "version": "1.0.0-rc.6", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.6.tgz", - "integrity": "sha512-dDnQizD94EdBwEj/fh3zPRa/HWCS9O5au2PuHhZBbuM3xWHxuaKzPBOEWze7Nn0xW68MIpZ7Xdyn1CoCpjKCuQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", "dev": true }, "@jsdevtools/ono": { @@ -490,19 +493,19 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", "dev": true }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, @@ -534,9 +537,9 @@ "dev": true }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "fast-safe-stringify": { @@ -616,29 +619,6 @@ "reftools": "^1.1.9", "yaml": "^1.10.0", "yargs": "^17.0.1" - }, - "dependencies": { - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } } }, "oas-schema-walker": { @@ -664,9 +644,9 @@ } }, "prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true }, "reftools": { @@ -678,7 +658,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "should": { @@ -777,6 +757,27 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } } diff --git a/package.json b/package.json index 295d3a67b..44cdb0b70 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.5.2" + "prettier": "^3.5.3" }, "nodemonConfig": { "restartable": "rs", From d5b1d6e8b3a5d4eaf7f2c241268a1c5600c29a63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 08:59:24 +0800 Subject: [PATCH 554/888] build(deps): update dependency go to v1.23.7 (#737) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2962c8aa0..fd934f110 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/bangumi/server go 1.23.0 -toolchain go1.23.6 +toolchain go1.23.7 require ( github.com/avast/retry-go/v4 v4.6.1 From bf281181c16d9587d923f056c964d30e40bf17df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 08:59:48 +0800 Subject: [PATCH 555/888] build(deps): update module github.com/prometheus/client_golang to v1.21.1 (#739) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fd934f110..88ecb498d 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.21.0 + github.com/prometheus/client_golang v1.21.1 github.com/redis/rueidis v1.0.55 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 diff --git a/go.sum b/go.sum index b066657cf..8f9984ed2 100644 --- a/go.sum +++ b/go.sum @@ -159,8 +159,8 @@ github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.21.0 h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA= -github.com/prometheus/client_golang v1.21.0/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= +github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= From d31956a0fc88edb61608e8a9566b8c8c31ffb384 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:00:49 +0800 Subject: [PATCH 556/888] build(deps): update module golang.org/x/text to v0.23.0 (#741) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 88ecb498d..ac11082cd 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.35.0 - golang.org/x/text v0.22.0 + golang.org/x/text v0.23.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 @@ -98,7 +98,7 @@ require ( golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.35.0 // indirect - golang.org/x/sync v0.11.0 // indirect + golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect diff --git a/go.sum b/go.sum index 8f9984ed2..c959147b0 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -287,8 +287,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 9c5ac76feb30ad82f01a6e70ca96163d90886e59 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:01:02 +0800 Subject: [PATCH 557/888] build(deps): update aws-sdk-go-v2 monorepo (#738) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index ac11082cd..45110c7ed 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ toolchain go1.23.7 require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.61 - github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0 + github.com/aws/aws-sdk-go-v2/credentials v1.17.62 + github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1 github.com/bytedance/sonic v1.12.10 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 diff --git a/go.sum b/go.sum index c959147b0..8ef04d2fb 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/credentials v1.17.61 h1:Hd/uX6Wo2iUW1JWII+rmyCD7MMhOe7ALwQXN6sKDd1o= -github.com/aws/aws-sdk-go-v2/credentials v1.17.61/go.mod h1:L7vaLkwHY1qgW0gG1zG0z/X0sQ5tpIY5iI13+j3qI80= +github.com/aws/aws-sdk-go-v2/credentials v1.17.62 h1:fvtQY3zFzYJ9CfixuAQ96IxDrBajbBWGqjNTCa79ocU= +github.com/aws/aws-sdk-go-v2/credentials v1.17.62/go.mod h1:ElETBxIQqcxej++Cs8GyPBbgMys5DgQPTwo7cUPDKt8= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= @@ -27,8 +27,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0 h1:EBm8lXevBWe+kK9VOU/IBeOI189WPRwPUc3LvJK9GOs= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.0/go.mod h1:4qzsZSzB/KiX2EzDjs9D7A8rI/WGJxZceVJIHqtJjIU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1 h1:1M0gSbyP6q06gl3384wpoKPaH9G16NPqZFieEhLboSU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1/go.mod h1:4qzsZSzB/KiX2EzDjs9D7A8rI/WGJxZceVJIHqtJjIU= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 840118932fb471ed8686f624cc1b8d72ea352d83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:01:59 +0800 Subject: [PATCH 558/888] build(deps): update module golang.org/x/crypto to v0.36.0 (#740) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 45110c7ed..fa15c1a50 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.35.0 + golang.org/x/crypto v0.36.0 golang.org/x/text v0.23.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 @@ -99,7 +99,7 @@ require ( golang.org/x/mod v0.22.0 // indirect golang.org/x/net v0.35.0 // indirect golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.30.0 // indirect + golang.org/x/sys v0.31.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect diff --git a/go.sum b/go.sum index 8ef04d2fb..39cbe58a8 100644 --- a/go.sum +++ b/go.sum @@ -244,8 +244,8 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= @@ -272,8 +272,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= From 3331d144e4e8f2cb316fb77a62a65f0cf9881165 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:02:10 +0800 Subject: [PATCH 559/888] build(deps): update module google.golang.org/grpc to v1.71.0 (#742) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 30 ++++++++++++++++-------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index fa15c1a50..1d35891e2 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.36.0 golang.org/x/text v0.23.0 - google.golang.org/grpc v1.70.0 + google.golang.org/grpc v1.71.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 @@ -102,7 +102,7 @@ require ( golang.org/x/sys v0.31.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 39cbe58a8..94cf0368f 100644 --- a/go.sum +++ b/go.sum @@ -217,16 +217,18 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= -go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= -go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= -go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= -go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= -go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= +go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= +go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= +go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= +go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= +go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= +go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= +go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= +go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= @@ -298,10 +300,10 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o= -google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ= -google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= +google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= +google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= From 7bd4c7a9d7cc8752d422bbb4dcea35a02f58a813 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Mar 2025 00:49:26 +0800 Subject: [PATCH 560/888] build(deps): update module github.com/bytedance/sonic to v1.13.1 (#744) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 1d35891e2..ade6e20d3 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.62 github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1 - github.com/bytedance/sonic v1.12.10 + github.com/bytedance/sonic v1.13.1 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 @@ -65,7 +65,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bytedance/sonic/loader v0.2.2 // indirect + github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect diff --git a/go.sum b/go.sum index 94cf0368f..464abd819 100644 --- a/go.sum +++ b/go.sum @@ -35,11 +35,11 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.12.10 h1:uVCQr6oS5669E9ZVW0HyksTLfNS7Q/9hV6IVS4nEMsI= -github.com/bytedance/sonic v1.12.10/go.mod h1:uVvFidNmlt9+wa31S1urfwwthTWteBgG0hWuoKAXTx8= +github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= +github.com/bytedance/sonic v1.13.1/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.2 h1:jxAJuN9fOot/cyz5Q6dUuMJF5OqQ6+5GfA8FjjQ0R4o= -github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= +github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= From a8cd9640cfb97aca0c1022cb2a6caf4d11336b3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 19:03:10 +0800 Subject: [PATCH 561/888] build(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 (#745) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ade6e20d3..4d16f2ec5 100644 --- a/go.mod +++ b/go.mod @@ -97,7 +97,7 @@ require ( go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.35.0 // indirect + golang.org/x/net v0.36.0 // indirect golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/time v0.8.0 // indirect diff --git a/go.sum b/go.sum index 464abd819..0bf3efd40 100644 --- a/go.sum +++ b/go.sum @@ -258,8 +258,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= +golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= +golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 9a4e5e53b5a22b660fabb22c2668dcf3eab6b079 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 13 Mar 2025 19:57:10 +0800 Subject: [PATCH 562/888] build: upgrade go to 1.24.1 (#747) --- .github/actions/setup-go/action.yaml | 33 --------------------------- .github/workflows/build.yaml | 6 ++--- .github/workflows/lint.yaml | 7 ++---- .github/workflows/release-docker.yaml | 7 +++--- .github/workflows/security.yaml | 9 ++------ .github/workflows/test.yaml | 7 ++---- .golangci.yaml | 2 +- go.mod | 6 +++-- go.sum | 8 +++++++ 9 files changed, 24 insertions(+), 61 deletions(-) delete mode 100644 .github/actions/setup-go/action.yaml diff --git a/.github/actions/setup-go/action.yaml b/.github/actions/setup-go/action.yaml deleted file mode 100644 index 2ebe59673..000000000 --- a/.github/actions/setup-go/action.yaml +++ /dev/null @@ -1,33 +0,0 @@ -inputs: - env: - description: "env" - required: false - default: "build" - -name: "Setup Golang" -description: "setup golang env" -runs: - using: "composite" - steps: - - id: parse-gomod - uses: Arthur1/parse-gomod-action@v0.1.0 - - - name: Install Go - uses: actions/setup-go@v5 - with: - go-version: ${{ steps.parse-gomod.outputs.toolchain-go-version || steps.parse-gomod.outputs.go }} - cache: false - - - name: Go Build Cache (${{ inputs.env }}) - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg - key: go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}-${{ inputs.env }} - restore-keys: | - go-cache-123-${{ hashFiles('**/go.mod') }}-${{ hashFiles('**/go.sum') }}- - go-cache-123-${{ hashFiles('**/go.mod') }}- - - - run: go get ./... - shell: bash diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 04a12ac2c..4cf4dc294 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,17 +34,15 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-go + - uses: trim21/actions/setup-go@master with: - env: build + cache-namespace: build - name: Install Task uses: arduino/setup-task@v2 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - - run: go get ./... - - run: task build name: Build Binary diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 3065493b7..505085af3 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -22,18 +22,15 @@ on: - ".golangci.yaml" - ".github/workflows/lint.yaml" -env: - GOTOOLCHAIN: "local" - jobs: lint: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-go + - uses: trim21/actions/setup-go@master with: - env: lint + cache-namespace: lint - name: Run linters uses: golangci/golangci-lint-action@v6 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index a4d3f91b0..7045ed91a 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -10,9 +10,6 @@ on: permissions: packages: write -env: - GOTOOLCHAIN: "local" - jobs: docker: name: "docker" @@ -24,7 +21,9 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-go + - uses: trim21/actions/setup-go@master + with: + cache-namespace: build - run: echo "SHA=${GITHUB_REF##*/}" >> $GITHUB_ENV if: "${{ startsWith(github.ref, 'refs/tags/') }}" diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index e6b545f9c..7ff5cf596 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -21,17 +21,12 @@ on: schedule: - cron: "15 3 * * 4" -env: - GOTOOLCHAIN: "local" - jobs: vulnerability-scan: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - - uses: ./.github/actions/setup-go - - - run: go install golang.org/x/vuln/cmd/govulncheck@latest + - uses: trim21/actions/setup-go@master - - run: govulncheck ./... + - run: go run golang.org/x/vuln/cmd/govulncheck ./... diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4d04ee023..c494775c7 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -22,9 +22,6 @@ on: - "**.go" - "**.go.json" -env: - GOTOOLCHAIN: "local" - jobs: test: runs-on: ubuntu-24.04 @@ -36,9 +33,9 @@ jobs: with: submodules: recursive - - uses: ./.github/actions/setup-go + - uses: trim21/actions/setup-go@master with: - env: test + cache-namespace: test - name: Install Task uses: arduino/setup-task@v2 diff --git a/.golangci.yaml b/.golangci.yaml index a2b186804..140da930b 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -260,7 +260,7 @@ linters: # - staticcheck - stylecheck - tagliatelle - - usetesting + # - usetesting - testableexamples - testpackage - thelper diff --git a/go.mod b/go.mod index 4d16f2ec5..b29db3a24 100644 --- a/go.mod +++ b/go.mod @@ -1,8 +1,8 @@ module github.com/bangumi/server -go 1.23.0 +go 1.24.1 -toolchain go1.23.7 +tool golang.org/x/vuln/cmd/govulncheck require ( github.com/avast/retry-go/v4 v4.6.1 @@ -100,8 +100,10 @@ require ( golang.org/x/net v0.36.0 // indirect golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect + golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.29.0 // indirect + golang.org/x/vuln v1.1.4 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index 0bf3efd40..62999978c 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,12 @@ github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= +github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= @@ -276,6 +280,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 h1:FemxDzfMUcK2f3YY4H+05K9CDzbSVr2+q/JKN45pey0= +golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -299,6 +305,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/vuln v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I= +golang.org/x/vuln v1.1.4/go.mod h1:F+45wmU18ym/ca5PLTPLsSzr2KppzswxPP603ldA67s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= From 69b6f530eea1920af5e881f784f8e27cdbae93cc Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 13 Mar 2025 19:58:35 +0800 Subject: [PATCH 563/888] ci: improve caching --- .github/workflows/security.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 7ff5cf596..0ea046730 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -28,5 +28,7 @@ jobs: - uses: actions/checkout@v4 - uses: trim21/actions/setup-go@master + with: + cache-namespace: sec - run: go run golang.org/x/vuln/cmd/govulncheck ./... From 1a313d3842bebb7eca633aa2013b626ecea043ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 20:00:19 +0800 Subject: [PATCH 564/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.78.2 (#748) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index b29db3a24..778417f89 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.62 - github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 github.com/bytedance/sonic v1.13.1 github.com/davecgh/go-spew v1.1.1 github.com/elliotchance/phpserialize v1.4.0 @@ -60,7 +60,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect diff --git a/go.sum b/go.sum index 62999978c..ac7834533 100644 --- a/go.sum +++ b/go.sum @@ -21,14 +21,14 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcu github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2 h1:t/gZFyrijKuSU0elA5kRngP/oU3mc0I+Dvp8HwRE4c0= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.6.2/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 h1:lguz0bmOoGzozP9XfRJR1QIayEYo+2vP/No3OfLF0pU= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1 h1:1M0gSbyP6q06gl3384wpoKPaH9G16NPqZFieEhLboSU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.1/go.mod h1:4qzsZSzB/KiX2EzDjs9D7A8rI/WGJxZceVJIHqtJjIU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 h1:jIiopHEV22b4yQP2q36Y0OmwLbsxNWdWwfZRR5QRRO4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From f50fd9bb3856caa8d5771215b17fb10df21c3451 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 13 Mar 2025 21:42:38 +0800 Subject: [PATCH 565/888] Update renovate.json --- .github/renovate.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 18744eb4c..3003fcfd3 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -3,12 +3,9 @@ "extends": [ "local>Trim21/renovate-config", "local>Trim21/renovate-config:go", + "local>Trim21/renovate-config:app", "local>Trim21/renovate-config:monthly" ], - "separateMinorPatch": false, - "separateMajorMinor": true, - "separateMultipleMajor": true, - "postUpdateOptions": ["gomodTidy"], "dockerfile": { "fileMatch": [".*dockerfile$"], "enabled": true @@ -24,15 +21,6 @@ "matchPackageNames": ["mysql"], "enabled": false }, - { - "matchManagers": ["gomod"], - "semanticCommitType": "build" - }, - { - "groupName": "gomod-redis", - "matchManagers": ["gomod"], - "matchPackageNames": ["github.com/go-redis/redismock/**", "github.com/redis/go-redis/**"] - }, { "groupName": "npm", "matchManagers": ["npm"], From 8fc7906c7f4cd9c45c47f94732625f1b97adce70 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 14 Mar 2025 00:35:04 +0800 Subject: [PATCH 566/888] chore: manage tool version with go1.24 new tool directive (#749) --- .github/workflows/test.yaml | 7 ++- .mockery.yaml | 1 + Taskfile.yaml | 15 ------ etc/mock.task.yaml | 15 +----- go.mod | 42 +++++++++++++-- go.sum | 77 +++++++++++++++++++++++++--- internal/mocks/AuthRepo.go | 2 +- internal/mocks/AuthService.go | 2 +- internal/mocks/CharacterRepo.go | 2 +- internal/mocks/CollectionRepo.go | 2 +- internal/mocks/EpisodeRepo.go | 2 +- internal/mocks/IndexRepo.go | 2 +- internal/mocks/NotificationRepo.go | 2 +- internal/mocks/PersonRepo.go | 2 +- internal/mocks/PersonService.go | 2 +- internal/mocks/PrivateMessageRepo.go | 2 +- internal/mocks/RedisCache.go | 2 +- internal/mocks/RevisionRepo.go | 2 +- internal/mocks/SearchClient.go | 6 +-- internal/mocks/SessionManager.go | 2 +- internal/mocks/SessionRepo.go | 2 +- internal/mocks/SubjectCachedRepo.go | 2 +- internal/mocks/SubjectRepo.go | 2 +- internal/mocks/TagRepo.go | 2 +- internal/mocks/TimeLineService.go | 2 +- internal/mocks/UserRepo.go | 2 +- 26 files changed, 138 insertions(+), 63 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c494775c7..6cf123da3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -42,12 +42,17 @@ jobs: with: repo-token: "${{ secrets.GITHUB_TOKEN }}" + - run: go install gotest.tools/gotestsum + - run: go get -t ./... + - run: bash $HOME/dev-env/wait_mysql_ready.sh - name: Run tests - run: task coverage + run: gotestsum -- -timeout 10s -tags test -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.out ./... env: GORACE: halt_on_error=1 + TEST_MYSQL: "1" + TEST_REDIS: "1" MYSQL_HOST: 127.0.0.1 MYSQL_PORT: "3306" MYSQL_USER: user diff --git a/.mockery.yaml b/.mockery.yaml index c49f758d3..c4b7fa457 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -1 +1,2 @@ with-expecter: True +issue-845-fix: True diff --git a/Taskfile.yaml b/Taskfile.yaml index c27514bbe..6a5c4c71d 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -15,8 +15,6 @@ tasks: install: cmds: - - go install google.golang.org/protobuf/cmd/protoc-gen-go - - go install google.golang.org/grpc/cmd/protoc-gen-go-grpc - echo "please install buf by yourself https://docs.buf.build/installation" build: @@ -46,16 +44,11 @@ tasks: web: desc: Run Web Server - aliases: - - serve - - server cmds: - go run main.go --config config.yaml web consumer: desc: Run Kafka Consumer - aliases: - - canal cmds: - go run main.go canal --config config.yaml @@ -90,14 +83,6 @@ tasks: TEST_MYSQL: "1" TEST_REDIS: "1" - coverage: - desc: Run tests with coverage report, used in CI. - cmds: - - go test -timeout 10s -tags test -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.out ./... - env: - TEST_MYSQL: "1" - TEST_REDIS: "1" - mod: desc: "go mod tidy" cmds: diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index 47292fda1..fc55227e0 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -26,21 +26,8 @@ tasks: - task: NotificationRepo base-mock: - deps: - - "install:mockery" cmds: - - './.bin/mockery{{exeExt}} --dir {{.SRC_DIR}} --filename "{{.MOCK_STRUCT|default .INTERFACE}}.go" --name "{{.INTERFACE | default "Manager"}}" --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter' - - install:mockery: - desc: Installs mockery - vars: - MOCKERY_VERSION: v2.43.0 - env: - GOBIN: "{{.BIN}}" - status: - - go version -m {{.BIN}}/mockery{{exeExt}} | grep "github.com/vektra/mockery" | grep "version={{.MOCKERY_VERSION}}" - cmds: - - go install github.com/vektra/mockery/v2@{{.MOCKERY_VERSION}} + - 'go run github.com/vektra/mockery/v2 --dir {{.SRC_DIR}} --filename "{{.MOCK_STRUCT|default .INTERFACE}}.go" --name "{{.INTERFACE | default "Manager"}}" --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter' session-repo: sources: diff --git a/go.mod b/go.mod index 778417f89..53712cd4e 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,13 @@ module github.com/bangumi/server go 1.24.1 -tool golang.org/x/vuln/cmd/govulncheck +tool ( + github.com/vektra/mockery/v2 + golang.org/x/vuln/cmd/govulncheck + google.golang.org/grpc/cmd/protoc-gen-go-grpc + google.golang.org/protobuf/cmd/protoc-gen-go + gotest.tools/gotestsum +) require ( github.com/avast/retry-go/v4 v4.6.1 @@ -10,7 +16,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.62 github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 github.com/bytedance/sonic v1.13.1 - github.com/davecgh/go-spew v1.1.1 + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -65,12 +71,22 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bitfield/gotestdox v0.2.2 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chigopher/pathlib v0.19.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect + github.com/dnephin/pflag v1.0.7 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/huandu/xstrings v1.4.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jinzhu/copier v0.4.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect @@ -79,33 +95,49 @@ require ( github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect + github.com/magiconair/properties v1.8.9 // indirect github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rs/zerolog v1.33.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/viper v1.19.0 // indirect github.com/stretchr/objx v0.5.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect + github.com/vektra/mockery/v2 v2.53.2 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/mod v0.22.0 // indirect + golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect + golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.36.0 // indirect golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 // indirect + golang.org/x/term v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.29.0 // indirect + golang.org/x/tools v0.30.0 // indirect golang.org/x/vuln v1.1.4 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect + gotest.tools/gotestsum v1.12.1 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index ac7834533..3f512e24c 100644 --- a/go.sum +++ b/go.sum @@ -33,6 +33,8 @@ github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bitfield/gotestdox v0.2.2 h1:x6RcPAbBbErKLnapz1QeAlf3ospg8efBsedU93CDsnE= +github.com/bitfield/gotestdox v0.2.2/go.mod h1:D+gwtS0urjBrzguAkTM2wodsTQYFHdpx8eqRJ3N+9pY= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= @@ -42,17 +44,27 @@ github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCN github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= +github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= +github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -73,6 +85,7 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= @@ -87,8 +100,16 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -103,6 +124,8 @@ github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= +github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= +github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -135,10 +158,15 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= @@ -152,17 +180,23 @@ github.com/meilisearch/meilisearch-go v0.31.0 h1:yZRhY1qJqdH8h6GFZALGtkDLyj8f9v5 github.com/meilisearch/meilisearch-go v0.31.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= @@ -175,17 +209,32 @@ github.com/redis/rueidis v1.0.55 h1:PrRv6eETcanBgYVNdwxn6RyUaPfxN6H+b5jUA4mfpkw= github.com/redis/rueidis v1.0.55/go.mod h1:cr7ILwt1AqyMRfjWlA9Orubj6gp1xzn1DPyhmrhv/x0= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -198,6 +247,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= github.com/trim21/go-phpserialize v0.1.0 h1:4wLvVYkP6Ya07M+2YweFdx4WOrydZzVyxKRDGK/L5KM= @@ -212,6 +263,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/vektra/mockery/v2 v2.53.2 h1:4G/4fl9x722Yb8hLqH1YU3XZNRJFwl5KUMvpkmAyuC8= +github.com/vektra/mockery/v2 v2.53.2/go.mod h1:UJT+mgXhCcOCHXTnM5cJHCZL+d76BYB+EbY1sFztEB8= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -252,10 +305,12 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs= +golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= -golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= +golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -274,9 +329,11 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= @@ -287,6 +344,8 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= +golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -303,8 +362,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= -golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= +golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/vuln v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I= golang.org/x/vuln v1.1.4/go.mod h1:F+45wmU18ym/ca5PLTPLsSzr2KppzswxPP603ldA67s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -319,6 +378,8 @@ google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojt gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= @@ -348,6 +409,10 @@ gorm.io/plugin/dbresolver v1.5.3 h1:wFwINGZZmttuu9h7XpvbDHd8Lf9bb8GNzp/NpAMV2wU= gorm.io/plugin/dbresolver v1.5.3/go.mod h1:TSrVhaUg2DZAWP3PrHlDlITEJmNOkL0tFTjvTEsQ4XE= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= +gotest.tools/gotestsum v1.12.1 h1:dvcxFBTFR1QsQmrCQa4k/vDXow9altdYz4CjdW+XeBE= +gotest.tools/gotestsum v1.12.1/go.mod h1:mwDmLbx9DIvr09dnAoGgQPLaSXszNpXpWo2bsQge5BE= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index 7a7b466f4..d9911caad 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index 111428cc1..51d40740a 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/CharacterRepo.go b/internal/mocks/CharacterRepo.go index 1dc516312..abe29c820 100644 --- a/internal/mocks/CharacterRepo.go +++ b/internal/mocks/CharacterRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go index 3fbafd138..4c510aa71 100644 --- a/internal/mocks/CollectionRepo.go +++ b/internal/mocks/CollectionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/EpisodeRepo.go b/internal/mocks/EpisodeRepo.go index 795ba61f6..b40df9895 100644 --- a/internal/mocks/EpisodeRepo.go +++ b/internal/mocks/EpisodeRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index 27f77ebdd..22162afeb 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/NotificationRepo.go b/internal/mocks/NotificationRepo.go index b19fcf703..03c88d280 100644 --- a/internal/mocks/NotificationRepo.go +++ b/internal/mocks/NotificationRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/PersonRepo.go b/internal/mocks/PersonRepo.go index fe738d916..b36f74ed5 100644 --- a/internal/mocks/PersonRepo.go +++ b/internal/mocks/PersonRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/PersonService.go b/internal/mocks/PersonService.go index cbea81c8b..8f31cfb2a 100644 --- a/internal/mocks/PersonService.go +++ b/internal/mocks/PersonService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/PrivateMessageRepo.go b/internal/mocks/PrivateMessageRepo.go index 284a70320..f49548f5f 100644 --- a/internal/mocks/PrivateMessageRepo.go +++ b/internal/mocks/PrivateMessageRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/RedisCache.go b/internal/mocks/RedisCache.go index 6a08e0216..056103af3 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/RedisCache.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/RevisionRepo.go b/internal/mocks/RevisionRepo.go index 30b9b51a5..2e4c2eeec 100644 --- a/internal/mocks/RevisionRepo.go +++ b/internal/mocks/RevisionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index 41241d903..b63ea51d4 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks @@ -24,7 +24,7 @@ func (_m *SearchClient) EXPECT() *SearchClient_Expecter { return &SearchClient_Expecter{mock: &_m.Mock} } -// Close provides a mock function with given fields: +// Close provides a mock function with no fields func (_m *SearchClient) Close() { _m.Called() } @@ -52,7 +52,7 @@ func (_c *SearchClient_Close_Call) Return() *SearchClient_Close_Call { } func (_c *SearchClient_Close_Call) RunAndReturn(run func()) *SearchClient_Close_Call { - _c.Call.Return(run) + _c.Run(run) return _c } diff --git a/internal/mocks/SessionManager.go b/internal/mocks/SessionManager.go index 05ea3bfc5..460926370 100644 --- a/internal/mocks/SessionManager.go +++ b/internal/mocks/SessionManager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/SessionRepo.go b/internal/mocks/SessionRepo.go index 298ad1dec..a41f7e546 100644 --- a/internal/mocks/SessionRepo.go +++ b/internal/mocks/SessionRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index 48c1ce036..c46c30418 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index 8ec7b2338..ce253471c 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/TagRepo.go b/internal/mocks/TagRepo.go index 2aec09a0e..c6918381d 100644 --- a/internal/mocks/TagRepo.go +++ b/internal/mocks/TagRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index 27b750cc2..0488e0298 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index cea8aa675..f713aeb29 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.0. DO NOT EDIT. +// Code generated by mockery v2.53.2. DO NOT EDIT. package mocks From ebd03e705ec0c36428ea02a6e658b32b5d0ad55b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 14 Mar 2025 01:21:11 +0800 Subject: [PATCH 567/888] ci: install gotestsum from gh release (#750) --- .github/workflows/test.yaml | 9 ++++++++- go.mod | 6 ------ go.sum | 10 ---------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 6cf123da3..5d14da6f8 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -42,7 +42,14 @@ jobs: with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - - run: go install gotest.tools/gotestsum + - name: Install gotestsum + uses: jaxxstorm/action-install-gh-release@v1.10.0 + with: + repo: gotestyourself/gotestsum + tag: v1.12.1 + platform: linux + arch: amd64 + - run: go get -t ./... - run: bash $HOME/dev-env/wait_mysql_ready.sh diff --git a/go.mod b/go.mod index 53712cd4e..962e6a531 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ tool ( golang.org/x/vuln/cmd/govulncheck google.golang.org/grpc/cmd/protoc-gen-go-grpc google.golang.org/protobuf/cmd/protoc-gen-go - gotest.tools/gotestsum ) require ( @@ -71,17 +70,13 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bitfield/gotestdox v0.2.2 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/dnephin/pflag v1.0.7 // indirect - github.com/fatih/color v1.18.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect - github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect @@ -138,6 +133,5 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect - gotest.tools/gotestsum v1.12.1 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index 3f512e24c..c703ea365 100644 --- a/go.sum +++ b/go.sum @@ -33,8 +33,6 @@ github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bitfield/gotestdox v0.2.2 h1:x6RcPAbBbErKLnapz1QeAlf3ospg8efBsedU93CDsnE= -github.com/bitfield/gotestdox v0.2.2/go.mod h1:D+gwtS0urjBrzguAkTM2wodsTQYFHdpx8eqRJ3N+9pY= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= @@ -55,8 +53,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= -github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= @@ -100,8 +96,6 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= -github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -409,10 +403,6 @@ gorm.io/plugin/dbresolver v1.5.3 h1:wFwINGZZmttuu9h7XpvbDHd8Lf9bb8GNzp/NpAMV2wU= gorm.io/plugin/dbresolver v1.5.3/go.mod h1:TSrVhaUg2DZAWP3PrHlDlITEJmNOkL0tFTjvTEsQ4XE= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= -gotest.tools/gotestsum v1.12.1 h1:dvcxFBTFR1QsQmrCQa4k/vDXow9altdYz4CjdW+XeBE= -gotest.tools/gotestsum v1.12.1/go.mod h1:mwDmLbx9DIvr09dnAoGgQPLaSXszNpXpWo2bsQge5BE= -gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= -gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= From c04244e483557ebd1b4adf769d00afef79830a71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Mar 2025 01:36:19 +0800 Subject: [PATCH 568/888] ci: update jaxxstorm/action-install-gh-release action to v1.14.0 (#751) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5d14da6f8..3da13ebce 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@v1.10.0 + uses: jaxxstorm/action-install-gh-release@v1.14.0 with: repo: gotestyourself/gotestsum tag: v1.12.1 From 7db260ccf7cee39790291e36b2024c2348512ab1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 04:51:39 +0800 Subject: [PATCH 569/888] ci: add github.token to binary installer --- .github/workflows/test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 3da13ebce..0f544443f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -49,6 +49,8 @@ jobs: tag: v1.12.1 platform: linux arch: amd64 + env: + GITHUB_TOKEN: "${{ github.token }}" - run: go get -t ./... From 00f15ec9bbdbb20becc3d4f136f491ace5748903 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 05:42:51 +0800 Subject: [PATCH 570/888] refactor: use new kafka timeline writter (#752) --- cmd/web/cmd.go | 12 +- generated/proto/go/api/v1/timeline.pb.go | 875 ------------------ generated/proto/go/api/v1/timeline_grpc.pb.go | 239 ----- go.mod | 7 +- go.sum | 24 - internal/pkg/tools/tool.go | 22 - internal/timeline/grpc.go | 147 --- internal/timeline/kafka.go | 141 +++ internal/timeline/noop.go | 47 - internal/timeline/type.go | 79 ++ 10 files changed, 232 insertions(+), 1361 deletions(-) delete mode 100644 generated/proto/go/api/v1/timeline.pb.go delete mode 100644 generated/proto/go/api/v1/timeline_grpc.pb.go delete mode 100644 internal/pkg/tools/tool.go delete mode 100644 internal/timeline/grpc.go create mode 100644 internal/timeline/kafka.go delete mode 100644 internal/timeline/noop.go create mode 100644 internal/timeline/type.go diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 739a44e01..bb2c8a869 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -19,6 +19,7 @@ import ( "github.com/go-resty/resty/v2" "github.com/labstack/echo/v4" + "github.com/segmentio/kafka-go" "github.com/spf13/cobra" "github.com/trim21/errgo" "go.uber.org/fx" @@ -84,7 +85,7 @@ func start() error { user.NewMysqlRepo, index.NewMysqlRepo, auth.NewMysqlRepo, episode.NewMysqlRepo, revision.NewMysqlRepo, infra.NewMysqlRepo, - timeline.NewMysqlRepo, pm.NewMysqlRepo, notification.NewMysqlRepo, + timeline.NewSrv, pm.NewMysqlRepo, notification.NewMysqlRepo, dam.New, subject.NewMysqlRepo, subject.NewCachedRepo, character.NewMysqlRepo, person.NewMysqlRepo, @@ -94,6 +95,15 @@ func start() error { auth.NewService, person.NewService, search.New, ), + fx.Provide( + func(cfg config.AppConfig) *kafka.Writer { + logger.Info("new kafka stream broker") + return kafka.NewWriter(kafka.WriterConfig{ + Brokers: []string{cfg.Canal.KafkaBroker}, + }) + }, + ), + ctrl.Module, web.Module, diff --git a/generated/proto/go/api/v1/timeline.pb.go b/generated/proto/go/api/v1/timeline.pb.go deleted file mode 100644 index de176aca5..000000000 --- a/generated/proto/go/api/v1/timeline.pb.go +++ /dev/null @@ -1,875 +0,0 @@ -// grpc server to create timeline - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.34.2 -// protoc (unknown) -// source: api/v1/timeline.proto - -package api - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type HelloRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` -} - -func (x *HelloRequest) Reset() { - *x = HelloRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HelloRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HelloRequest) ProtoMessage() {} - -func (x *HelloRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use HelloRequest.ProtoReflect.Descriptor instead. -func (*HelloRequest) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{0} -} - -func (x *HelloRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -type HelloResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` -} - -func (x *HelloResponse) Reset() { - *x = HelloResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *HelloResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*HelloResponse) ProtoMessage() {} - -func (x *HelloResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use HelloResponse.ProtoReflect.Descriptor instead. -func (*HelloResponse) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{1} -} - -func (x *HelloResponse) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -type SubjectCollectResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` -} - -func (x *SubjectCollectResponse) Reset() { - *x = SubjectCollectResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubjectCollectResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubjectCollectResponse) ProtoMessage() {} - -func (x *SubjectCollectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubjectCollectResponse.ProtoReflect.Descriptor instead. -func (*SubjectCollectResponse) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{2} -} - -func (x *SubjectCollectResponse) GetOk() bool { - if x != nil { - return x.Ok - } - return false -} - -type SubjectProgressResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` -} - -func (x *SubjectProgressResponse) Reset() { - *x = SubjectProgressResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubjectProgressResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubjectProgressResponse) ProtoMessage() {} - -func (x *SubjectProgressResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubjectProgressResponse.ProtoReflect.Descriptor instead. -func (*SubjectProgressResponse) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{3} -} - -func (x *SubjectProgressResponse) GetOk() bool { - if x != nil { - return x.Ok - } - return false -} - -type EpisodeCollectResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` -} - -func (x *EpisodeCollectResponse) Reset() { - *x = EpisodeCollectResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EpisodeCollectResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EpisodeCollectResponse) ProtoMessage() {} - -func (x *EpisodeCollectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EpisodeCollectResponse.ProtoReflect.Descriptor instead. -func (*EpisodeCollectResponse) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{4} -} - -func (x *EpisodeCollectResponse) GetOk() bool { - if x != nil { - return x.Ok - } - return false -} - -type Subject struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Type uint32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"` - VolsTotal uint32 `protobuf:"varint,7,opt,name=vols_total,json=volsTotal,proto3" json:"vols_total,omitempty"` - EpsTotal uint32 `protobuf:"varint,8,opt,name=eps_total,json=epsTotal,proto3" json:"eps_total,omitempty"` -} - -func (x *Subject) Reset() { - *x = Subject{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Subject) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Subject) ProtoMessage() {} - -func (x *Subject) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Subject.ProtoReflect.Descriptor instead. -func (*Subject) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{5} -} - -func (x *Subject) GetId() uint32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *Subject) GetType() uint32 { - if x != nil { - return x.Type - } - return 0 -} - -func (x *Subject) GetVolsTotal() uint32 { - if x != nil { - return x.VolsTotal - } - return 0 -} - -func (x *Subject) GetEpsTotal() uint32 { - if x != nil { - return x.EpsTotal - } - return 0 -} - -type Episode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` -} - -func (x *Episode) Reset() { - *x = Episode{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Episode) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Episode) ProtoMessage() {} - -func (x *Episode) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Episode.ProtoReflect.Descriptor instead. -func (*Episode) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{6} -} - -func (x *Episode) GetId() uint32 { - if x != nil { - return x.Id - } - return 0 -} - -// The request message containing the user's name. -type SubjectCollectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Subject *Subject `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - Collection uint32 `protobuf:"varint,3,opt,name=collection,proto3" json:"collection,omitempty"` - Comment string `protobuf:"bytes,4,opt,name=comment,proto3" json:"comment,omitempty"` - Rate uint32 `protobuf:"varint,5,opt,name=rate,proto3" json:"rate,omitempty"` - CollectionId uint64 `protobuf:"varint,6,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` -} - -func (x *SubjectCollectRequest) Reset() { - *x = SubjectCollectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubjectCollectRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubjectCollectRequest) ProtoMessage() {} - -func (x *SubjectCollectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubjectCollectRequest.ProtoReflect.Descriptor instead. -func (*SubjectCollectRequest) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{7} -} - -func (x *SubjectCollectRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *SubjectCollectRequest) GetSubject() *Subject { - if x != nil { - return x.Subject - } - return nil -} - -func (x *SubjectCollectRequest) GetCollection() uint32 { - if x != nil { - return x.Collection - } - return 0 -} - -func (x *SubjectCollectRequest) GetComment() string { - if x != nil { - return x.Comment - } - return "" -} - -func (x *SubjectCollectRequest) GetRate() uint32 { - if x != nil { - return x.Rate - } - return 0 -} - -func (x *SubjectCollectRequest) GetCollectionId() uint64 { - if x != nil { - return x.CollectionId - } - return 0 -} - -// 标记剧集为看过 -type EpisodeCollectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Last *Episode `protobuf:"bytes,2,opt,name=last,proto3" json:"last,omitempty"` - Subject *Subject `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"` -} - -func (x *EpisodeCollectRequest) Reset() { - *x = EpisodeCollectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EpisodeCollectRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EpisodeCollectRequest) ProtoMessage() {} - -func (x *EpisodeCollectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use EpisodeCollectRequest.ProtoReflect.Descriptor instead. -func (*EpisodeCollectRequest) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{8} -} - -func (x *EpisodeCollectRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *EpisodeCollectRequest) GetLast() *Episode { - if x != nil { - return x.Last - } - return nil -} - -func (x *EpisodeCollectRequest) GetSubject() *Subject { - if x != nil { - return x.Subject - } - return nil -} - -type SubjectProgressRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId uint64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Subject *Subject `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - EpsUpdate uint32 `protobuf:"varint,3,opt,name=eps_update,json=epsUpdate,proto3" json:"eps_update,omitempty"` - VolsUpdate uint32 `protobuf:"varint,4,opt,name=vols_update,json=volsUpdate,proto3" json:"vols_update,omitempty"` -} - -func (x *SubjectProgressRequest) Reset() { - *x = SubjectProgressRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_api_v1_timeline_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubjectProgressRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubjectProgressRequest) ProtoMessage() {} - -func (x *SubjectProgressRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_timeline_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SubjectProgressRequest.ProtoReflect.Descriptor instead. -func (*SubjectProgressRequest) Descriptor() ([]byte, []int) { - return file_api_v1_timeline_proto_rawDescGZIP(), []int{9} -} - -func (x *SubjectProgressRequest) GetUserId() uint64 { - if x != nil { - return x.UserId - } - return 0 -} - -func (x *SubjectProgressRequest) GetSubject() *Subject { - if x != nil { - return x.Subject - } - return nil -} - -func (x *SubjectProgressRequest) GetEpsUpdate() uint32 { - if x != nil { - return x.EpsUpdate - } - return 0 -} - -func (x *SubjectProgressRequest) GetVolsUpdate() uint32 { - if x != nil { - return x.VolsUpdate - } - return 0 -} - -var File_api_v1_timeline_proto protoreflect.FileDescriptor - -var file_api_v1_timeline_proto_rawDesc = []byte{ - 0x0a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x22, - 0x22, 0x0a, 0x0c, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x28, - 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x29, 0x0a, 0x17, 0x53, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x02, 0x6f, 0x6b, 0x22, 0x28, 0x0a, 0x16, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x6f, 0x0a, - 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, - 0x70, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x65, 0x70, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x07, 0x22, 0x1f, - 0x0a, 0x07, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x06, 0x22, - 0xce, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x22, 0x80, 0x01, 0x0a, 0x15, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, - 0x64, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x32, 0xc5, 0x02, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x12, - 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, - 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0e, 0x45, 0x70, 0x69, 0x73, 0x6f, - 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x70, 0x69, 0x73, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x61, 0x6e, 0x67, 0x75, 0x6d, 0x69, - 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var ( - file_api_v1_timeline_proto_rawDescOnce sync.Once - file_api_v1_timeline_proto_rawDescData = file_api_v1_timeline_proto_rawDesc -) - -func file_api_v1_timeline_proto_rawDescGZIP() []byte { - file_api_v1_timeline_proto_rawDescOnce.Do(func() { - file_api_v1_timeline_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_v1_timeline_proto_rawDescData) - }) - return file_api_v1_timeline_proto_rawDescData -} - -var file_api_v1_timeline_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_api_v1_timeline_proto_goTypes = []any{ - (*HelloRequest)(nil), // 0: api.v1.HelloRequest - (*HelloResponse)(nil), // 1: api.v1.HelloResponse - (*SubjectCollectResponse)(nil), // 2: api.v1.SubjectCollectResponse - (*SubjectProgressResponse)(nil), // 3: api.v1.SubjectProgressResponse - (*EpisodeCollectResponse)(nil), // 4: api.v1.EpisodeCollectResponse - (*Subject)(nil), // 5: api.v1.Subject - (*Episode)(nil), // 6: api.v1.Episode - (*SubjectCollectRequest)(nil), // 7: api.v1.SubjectCollectRequest - (*EpisodeCollectRequest)(nil), // 8: api.v1.EpisodeCollectRequest - (*SubjectProgressRequest)(nil), // 9: api.v1.SubjectProgressRequest -} -var file_api_v1_timeline_proto_depIdxs = []int32{ - 5, // 0: api.v1.SubjectCollectRequest.subject:type_name -> api.v1.Subject - 6, // 1: api.v1.EpisodeCollectRequest.last:type_name -> api.v1.Episode - 5, // 2: api.v1.EpisodeCollectRequest.subject:type_name -> api.v1.Subject - 5, // 3: api.v1.SubjectProgressRequest.subject:type_name -> api.v1.Subject - 0, // 4: api.v1.TimeLineService.Hello:input_type -> api.v1.HelloRequest - 7, // 5: api.v1.TimeLineService.SubjectCollect:input_type -> api.v1.SubjectCollectRequest - 9, // 6: api.v1.TimeLineService.SubjectProgress:input_type -> api.v1.SubjectProgressRequest - 8, // 7: api.v1.TimeLineService.EpisodeCollect:input_type -> api.v1.EpisodeCollectRequest - 1, // 8: api.v1.TimeLineService.Hello:output_type -> api.v1.HelloResponse - 2, // 9: api.v1.TimeLineService.SubjectCollect:output_type -> api.v1.SubjectCollectResponse - 3, // 10: api.v1.TimeLineService.SubjectProgress:output_type -> api.v1.SubjectProgressResponse - 4, // 11: api.v1.TimeLineService.EpisodeCollect:output_type -> api.v1.EpisodeCollectResponse - 8, // [8:12] is the sub-list for method output_type - 4, // [4:8] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name -} - -func init() { file_api_v1_timeline_proto_init() } -func file_api_v1_timeline_proto_init() { - if File_api_v1_timeline_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_api_v1_timeline_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*HelloRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*HelloResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*SubjectCollectResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*SubjectProgressResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*EpisodeCollectResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*Subject); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*Episode); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*SubjectCollectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*EpisodeCollectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_api_v1_timeline_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*SubjectProgressRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_api_v1_timeline_proto_rawDesc, - NumEnums: 0, - NumMessages: 10, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_api_v1_timeline_proto_goTypes, - DependencyIndexes: file_api_v1_timeline_proto_depIdxs, - MessageInfos: file_api_v1_timeline_proto_msgTypes, - }.Build() - File_api_v1_timeline_proto = out.File - file_api_v1_timeline_proto_rawDesc = nil - file_api_v1_timeline_proto_goTypes = nil - file_api_v1_timeline_proto_depIdxs = nil -} diff --git a/generated/proto/go/api/v1/timeline_grpc.pb.go b/generated/proto/go/api/v1/timeline_grpc.pb.go deleted file mode 100644 index 1ad4df8cd..000000000 --- a/generated/proto/go/api/v1/timeline_grpc.pb.go +++ /dev/null @@ -1,239 +0,0 @@ -// grpc server to create timeline - -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc (unknown) -// source: api/v1/timeline.proto - -package api - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - TimeLineService_Hello_FullMethodName = "/api.v1.TimeLineService/Hello" - TimeLineService_SubjectCollect_FullMethodName = "/api.v1.TimeLineService/SubjectCollect" - TimeLineService_SubjectProgress_FullMethodName = "/api.v1.TimeLineService/SubjectProgress" - TimeLineService_EpisodeCollect_FullMethodName = "/api.v1.TimeLineService/EpisodeCollect" -) - -// TimeLineServiceClient is the client API for TimeLineService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type TimeLineServiceClient interface { - // Debug function - Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) - SubjectCollect(ctx context.Context, in *SubjectCollectRequest, opts ...grpc.CallOption) (*SubjectCollectResponse, error) - SubjectProgress(ctx context.Context, in *SubjectProgressRequest, opts ...grpc.CallOption) (*SubjectProgressResponse, error) - EpisodeCollect(ctx context.Context, in *EpisodeCollectRequest, opts ...grpc.CallOption) (*EpisodeCollectResponse, error) -} - -type timeLineServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewTimeLineServiceClient(cc grpc.ClientConnInterface) TimeLineServiceClient { - return &timeLineServiceClient{cc} -} - -func (c *timeLineServiceClient) Hello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(HelloResponse) - err := c.cc.Invoke(ctx, TimeLineService_Hello_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeLineServiceClient) SubjectCollect(ctx context.Context, in *SubjectCollectRequest, opts ...grpc.CallOption) (*SubjectCollectResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(SubjectCollectResponse) - err := c.cc.Invoke(ctx, TimeLineService_SubjectCollect_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeLineServiceClient) SubjectProgress(ctx context.Context, in *SubjectProgressRequest, opts ...grpc.CallOption) (*SubjectProgressResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(SubjectProgressResponse) - err := c.cc.Invoke(ctx, TimeLineService_SubjectProgress_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *timeLineServiceClient) EpisodeCollect(ctx context.Context, in *EpisodeCollectRequest, opts ...grpc.CallOption) (*EpisodeCollectResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(EpisodeCollectResponse) - err := c.cc.Invoke(ctx, TimeLineService_EpisodeCollect_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// TimeLineServiceServer is the server API for TimeLineService service. -// All implementations must embed UnimplementedTimeLineServiceServer -// for forward compatibility. -type TimeLineServiceServer interface { - // Debug function - Hello(context.Context, *HelloRequest) (*HelloResponse, error) - SubjectCollect(context.Context, *SubjectCollectRequest) (*SubjectCollectResponse, error) - SubjectProgress(context.Context, *SubjectProgressRequest) (*SubjectProgressResponse, error) - EpisodeCollect(context.Context, *EpisodeCollectRequest) (*EpisodeCollectResponse, error) - mustEmbedUnimplementedTimeLineServiceServer() -} - -// UnimplementedTimeLineServiceServer must be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedTimeLineServiceServer struct{} - -func (UnimplementedTimeLineServiceServer) Hello(context.Context, *HelloRequest) (*HelloResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") -} -func (UnimplementedTimeLineServiceServer) SubjectCollect(context.Context, *SubjectCollectRequest) (*SubjectCollectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubjectCollect not implemented") -} -func (UnimplementedTimeLineServiceServer) SubjectProgress(context.Context, *SubjectProgressRequest) (*SubjectProgressResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SubjectProgress not implemented") -} -func (UnimplementedTimeLineServiceServer) EpisodeCollect(context.Context, *EpisodeCollectRequest) (*EpisodeCollectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method EpisodeCollect not implemented") -} -func (UnimplementedTimeLineServiceServer) mustEmbedUnimplementedTimeLineServiceServer() {} -func (UnimplementedTimeLineServiceServer) testEmbeddedByValue() {} - -// UnsafeTimeLineServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to TimeLineServiceServer will -// result in compilation errors. -type UnsafeTimeLineServiceServer interface { - mustEmbedUnimplementedTimeLineServiceServer() -} - -func RegisterTimeLineServiceServer(s grpc.ServiceRegistrar, srv TimeLineServiceServer) { - // If the following call pancis, it indicates UnimplementedTimeLineServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&TimeLineService_ServiceDesc, srv) -} - -func _TimeLineService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HelloRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeLineServiceServer).Hello(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeLineService_Hello_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeLineServiceServer).Hello(ctx, req.(*HelloRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeLineService_SubjectCollect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubjectCollectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeLineServiceServer).SubjectCollect(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeLineService_SubjectCollect_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeLineServiceServer).SubjectCollect(ctx, req.(*SubjectCollectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeLineService_SubjectProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SubjectProgressRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeLineServiceServer).SubjectProgress(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeLineService_SubjectProgress_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeLineServiceServer).SubjectProgress(ctx, req.(*SubjectProgressRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _TimeLineService_EpisodeCollect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(EpisodeCollectRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(TimeLineServiceServer).EpisodeCollect(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: TimeLineService_EpisodeCollect_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TimeLineServiceServer).EpisodeCollect(ctx, req.(*EpisodeCollectRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// TimeLineService_ServiceDesc is the grpc.ServiceDesc for TimeLineService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var TimeLineService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "api.v1.TimeLineService", - HandlerType: (*TimeLineServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Hello", - Handler: _TimeLineService_Hello_Handler, - }, - { - MethodName: "SubjectCollect", - Handler: _TimeLineService_SubjectCollect_Handler, - }, - { - MethodName: "SubjectProgress", - Handler: _TimeLineService_SubjectProgress_Handler, - }, - { - MethodName: "EpisodeCollect", - Handler: _TimeLineService_EpisodeCollect_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "api/v1/timeline.proto", -} diff --git a/go.mod b/go.mod index 962e6a531..2bbeae732 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,6 @@ go 1.24.1 tool ( github.com/vektra/mockery/v2 golang.org/x/vuln/cmd/govulncheck - google.golang.org/grpc/cmd/protoc-gen-go-grpc - google.golang.org/protobuf/cmd/protoc-gen-go ) require ( @@ -45,9 +43,6 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/crypto v0.36.0 golang.org/x/text v0.23.0 - google.golang.org/grpc v1.71.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 - google.golang.org/protobuf v1.36.5 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 @@ -129,7 +124,7 @@ require ( golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.30.0 // indirect golang.org/x/vuln v1.1.4 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index c703ea365..55bc98f99 100644 --- a/go.sum +++ b/go.sum @@ -63,10 +63,6 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/ github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -88,8 +84,6 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= @@ -268,18 +262,6 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= -go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= -go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= -go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= @@ -361,12 +343,6 @@ golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY golang.org/x/vuln v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I= golang.org/x/vuln v1.1.4/go.mod h1:F+45wmU18ym/ca5PLTPLsSzr2KppzswxPP603ldA67s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= -google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/pkg/tools/tool.go b/internal/pkg/tools/tool.go deleted file mode 100644 index 719532aff..000000000 --- a/internal/pkg/tools/tool.go +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -//go:build tools - -package tools - -import ( - _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" - _ "google.golang.org/protobuf/cmd/protoc-gen-go" -) diff --git a/internal/timeline/grpc.go b/internal/timeline/grpc.go deleted file mode 100644 index b86f94e45..000000000 --- a/internal/timeline/grpc.go +++ /dev/null @@ -1,147 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package timeline - -import ( - "context" - "fmt" - "time" - - "github.com/trim21/errgo" - "go.uber.org/zap" - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" - - "github.com/bangumi/server/config" - "github.com/bangumi/server/dal/query" - pb "github.com/bangumi/server/generated/proto/go/api/v1" - "github.com/bangumi/server/internal/auth" - "github.com/bangumi/server/internal/collections/domain/collection" - "github.com/bangumi/server/internal/episode" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/logger" -) - -const defaultTimeout = time.Second * 30 - -func NewMysqlRepo(q *query.Query, log *zap.Logger, cfg config.AppConfig) (Service, error) { - rpc, err := newGrpcClient(cfg) - if err != nil { - return nil, err - } - - return grpcClient{q: q, log: log.Named("timeline.grpcClient"), rpc: rpc}, nil -} - -type grpcClient struct { - q *query.Query - log *zap.Logger - rpc pb.TimeLineServiceClient -} - -func (m grpcClient) ChangeSubjectProgress(ctx context.Context, u model.UserID, sbj model.Subject, - epsUpdate uint32, volsUpdate uint32) error { - ctx, canal := context.WithTimeout(ctx, defaultTimeout) - defer canal() - - _, err := m.rpc.SubjectProgress(ctx, &pb.SubjectProgressRequest{ - UserId: uint64(u), - Subject: &pb.Subject{ - Id: sbj.ID, - VolsTotal: sbj.Volumes, - EpsTotal: sbj.Eps, - }, - EpsUpdate: epsUpdate, - VolsUpdate: volsUpdate, - }) - - return errgo.Wrap(err, "grpc") -} - -func (m grpcClient) ChangeSubjectCollection( - ctx context.Context, - u model.UserID, - sbj model.Subject, - collect collection.SubjectCollection, - collectID uint64, - comment string, - rate uint8, -) error { - ctx, canal := context.WithTimeout(ctx, defaultTimeout) - defer canal() - - _, err := m.rpc.SubjectCollect(ctx, &pb.SubjectCollectRequest{ - UserId: uint64(u), - Subject: &pb.Subject{ - Id: sbj.ID, - Type: uint32(sbj.TypeID), - VolsTotal: sbj.Volumes, - EpsTotal: sbj.Eps, - }, - Collection: uint32(collect), - CollectionId: collectID, - Comment: comment, - Rate: uint32(rate), - }) - - if err != nil { - return errgo.Wrap(err, "grpc: timeline.SubjectCollect") - } - - return nil -} - -func (m grpcClient) ChangeEpisodeStatus( - ctx context.Context, - u auth.Auth, - sbj model.Subject, - episode episode.Episode, -) error { - ctx, canal := context.WithTimeout(ctx, defaultTimeout) - defer canal() - - _, err := m.rpc.EpisodeCollect(ctx, &pb.EpisodeCollectRequest{ - UserId: uint64(u.ID), - Last: &pb.Episode{ - Id: episode.ID, - }, - Subject: &pb.Subject{ - Id: sbj.ID, - VolsTotal: sbj.Volumes, - EpsTotal: sbj.Eps, - }, - }) - - return errgo.Wrap(err, "grpc") -} - -func newGrpcClient(cfg config.AppConfig) (pb.TimeLineServiceClient, error) { - if cfg.SrvTimelineDomain == "" || cfg.SrvTimelinePort == 0 { - logger.Info("no srv_timeline_domain and srv_timeline_port, using nope timeline service") - return noopClient{}, nil - } - - conn, err := grpc.NewClient( - fmt.Sprintf("dns:///%s:%d", cfg.SrvTimelineDomain, cfg.SrvTimelinePort), - grpc.WithTransportCredentials(insecure.NewCredentials()), - ) - if err != nil { - return nil, errgo.Wrap(err, "grpc dail") - } - - c := pb.NewTimeLineServiceClient(conn) - - return c, nil -} diff --git a/internal/timeline/kafka.go b/internal/timeline/kafka.go new file mode 100644 index 000000000..b12e33123 --- /dev/null +++ b/internal/timeline/kafka.go @@ -0,0 +1,141 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package timeline + +import ( + "context" + "encoding/json" + "fmt" + "time" + + "github.com/samber/lo" + "github.com/segmentio/kafka-go" + "github.com/trim21/errgo" + + "github.com/bangumi/server/internal/auth" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/episode" + "github.com/bangumi/server/internal/model" +) + +const timelineSourceAPI = 5 +const timelineTopic = "timeline" +const defaultTimeout = time.Second * 5 + +func NewSrv(kafka *kafka.Writer) (Service, error) { + return kafkaClient{kafka: kafka}, nil +} + +type kafkaClient struct { + kafka *kafka.Writer +} + +func (m kafkaClient) ChangeSubjectProgress(ctx context.Context, u model.UserID, sbj model.Subject, + epsUpdate uint32, volsUpdate uint32) error { + ctx, canal := context.WithTimeout(ctx, defaultTimeout) + defer canal() + + return m.writeMessage(ctx, u, timelineValue{ + Op: "progressSubject", + Message: progressSubject{ + UID: u, + CreatedAt: time.Now().Unix(), + Source: timelineSourceAPI, + Subject: tlSubjectCollect{ + ID: int(sbj.ID), + Type: sbj.TypeID, + Eps: int(sbj.Eps), + Volumes: int(sbj.Volumes), + }, + Collect: tlCollect{ + EpsUpdate: &epsUpdate, + VolsUpdate: &volsUpdate, + }, + }, + }) +} + +func (m kafkaClient) ChangeSubjectCollection( + ctx context.Context, + u model.UserID, + sbj model.Subject, + collect collection.SubjectCollection, + collectID uint64, + comment string, + rate uint8, +) error { + ctx, canal := context.WithTimeout(ctx, defaultTimeout) + defer canal() + + return m.writeMessage(ctx, u, timelineValue{ + Op: "subject", + Message: subject{ + UID: u, + CreatedAt: time.Now().Unix(), + Source: timelineSourceAPI, + Subject: tlSubject{ + ID: sbj.ID, + Type: sbj.TypeID, + }, + Collect: tlCollectRating{ + ID: collectID, + Type: collect, + Rate: rate, + Comment: comment, + }, + }, + }) +} + +func (m kafkaClient) ChangeEpisodeStatus( + ctx context.Context, + u auth.Auth, + sbj model.Subject, + episode episode.Episode, +) error { + ctx, canal := context.WithTimeout(ctx, defaultTimeout) + defer canal() + + return m.writeMessage( + ctx, + u.ID, + timelineValue{ + Op: "progressEpisode", + Message: progressEpisode{ + UID: u.ID, + Subject: tlSubject{ + ID: sbj.ID, + Type: sbj.TypeID, + }, + Episode: tlEpisode{ + ID: episode.ID, + Status: int(episode.Sort), + }, + CreatedAt: time.Now().Unix(), + Source: timelineSourceAPI, + }, + }, + ) +} + +func (m kafkaClient) writeMessage(ctx context.Context, uid model.UserID, value timelineValue) error { + err := m.kafka.WriteMessages(ctx, kafka.Message{ + Topic: timelineTopic, + Key: []byte(fmt.Sprintf("%d", uid)), + Value: lo.Must(json.Marshal(value)), + }) + + return errgo.Wrap(err, "grpc") +} diff --git a/internal/timeline/noop.go b/internal/timeline/noop.go deleted file mode 100644 index 80810cacc..000000000 --- a/internal/timeline/noop.go +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package timeline - -import ( - "context" - - "google.golang.org/grpc" - - pb "github.com/bangumi/server/generated/proto/go/api/v1" -) - -var _ pb.TimeLineServiceClient = noopClient{} - -type noopClient struct { -} - -func (n noopClient) Hello(_ context.Context, _ *pb.HelloRequest, _ ...grpc.CallOption) (*pb.HelloResponse, error) { - return &pb.HelloResponse{}, nil -} - -func (n noopClient) SubjectCollect(_ context.Context, _ *pb.SubjectCollectRequest, - _ ...grpc.CallOption) (*pb.SubjectCollectResponse, error) { - return &pb.SubjectCollectResponse{Ok: true}, nil -} - -func (n noopClient) SubjectProgress(_ context.Context, _ *pb.SubjectProgressRequest, - _ ...grpc.CallOption) (*pb.SubjectProgressResponse, error) { - return &pb.SubjectProgressResponse{Ok: true}, nil -} - -func (n noopClient) EpisodeCollect(_ context.Context, _ *pb.EpisodeCollectRequest, - _ ...grpc.CallOption) (*pb.EpisodeCollectResponse, error) { - return &pb.EpisodeCollectResponse{Ok: true}, nil -} diff --git a/internal/timeline/type.go b/internal/timeline/type.go new file mode 100644 index 000000000..0c53f7ba8 --- /dev/null +++ b/internal/timeline/type.go @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +//nolint:tagliatelle +package timeline + +import ( + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" +) + +type timelineValue struct { + Op string `json:"op"` + Message any `json:"message"` +} + +type tlEpisode struct { + ID model.EpisodeID `json:"id"` + Status int `json:"status"` +} + +type tlSubjectCollect struct { + ID int `json:"id"` + Type model.SubjectType `json:"type"` + Eps int `json:"eps"` + Volumes int `json:"volumes"` +} + +type tlCollect struct { + EpsUpdate *uint32 `json:"epsUpdate,omitempty"` + VolsUpdate *uint32 `json:"volsUpdate,omitempty"` +} + +type progressSubject struct { + UID model.UserID `json:"uid"` + Subject tlSubjectCollect `json:"subject"` + Collect tlCollect `json:"collect"` + CreatedAt int64 `json:"createdAt"` + Source uint8 `json:"source"` +} + +type tlCollectRating struct { + ID uint64 `json:"id"` + Type collection.SubjectCollection `json:"type"` + Rate uint8 `json:"rate"` + Comment string `json:"comment"` +} + +type tlSubject struct { + ID model.SubjectID `json:"id"` + Type model.SubjectType `json:"type"` +} + +type subject struct { + UID model.UserID `json:"uid"` + Subject tlSubject `json:"subject"` + Collect tlCollectRating `json:"collect"` + CreatedAt int64 `json:"createdAt"` + Source uint8 `json:"source"` +} + +type progressEpisode struct { + UID model.UserID `json:"uid"` + Subject tlSubject `json:"subject"` + Episode tlEpisode `json:"episode"` + CreatedAt int64 `json:"createdAt"` + Source uint8 `json:"source"` +} From 6d5d0fa5c6fb644d14e09adb6699fced851bdbca Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 05:59:21 +0800 Subject: [PATCH 571/888] chore: remove proto submodule --- .gitmodules | 4 +--- proto | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) delete mode 160000 proto diff --git a/.gitmodules b/.gitmodules index 96e397aaf..13cb7d9ce 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,4 @@ [submodule "pkg/wiki/testdata/wiki-syntax-spec"] path = pkg/wiki/testdata/wiki-syntax-spec url = https://github.com/bangumi/wiki-syntax-spec.git -[submodule "proto"] - path = proto - url = https://github.com/bangumi/proto.git + branch = master diff --git a/proto b/proto deleted file mode 160000 index 6d8eab9cf..000000000 --- a/proto +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6d8eab9cfca66c7cc67ac5f08d88d438c56e0565 From f5fcbc5695d4bc2ebc6814f4425793c772605dee Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 06:00:54 +0800 Subject: [PATCH 572/888] chore: remove buf --- Taskfile.yaml | 5 ----- buf.gen.yaml | 9 --------- buf.work.yaml | 3 --- readme.md | 11 +---------- 4 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 buf.gen.yaml delete mode 100644 buf.work.yaml diff --git a/Taskfile.yaml b/Taskfile.yaml index 6a5c4c71d..7525b8b76 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -13,10 +13,6 @@ tasks: cmds: - task --list - install: - cmds: - - echo "please install buf by yourself https://docs.buf.build/installation" - build: desc: Build Web Server Binary sources: @@ -91,7 +87,6 @@ tasks: gen: desc: Generate all generated GO files cmds: - - cmd: buf generate - task: gorm - task: mock diff --git a/buf.gen.yaml b/buf.gen.yaml deleted file mode 100644 index 1a5232878..000000000 --- a/buf.gen.yaml +++ /dev/null @@ -1,9 +0,0 @@ -version: v1 - -plugins: - - plugin: go - out: generated/proto/go - opt: paths=source_relative - - plugin: go-grpc - out: generated/proto/go - opt: paths=source_relative diff --git a/buf.work.yaml b/buf.work.yaml deleted file mode 100644 index 1878b341b..000000000 --- a/buf.work.yaml +++ /dev/null @@ -1,3 +0,0 @@ -version: v1 -directories: - - proto diff --git a/readme.md b/readme.md index cc8ad863e..dcd29779c 100644 --- a/readme.md +++ b/readme.md @@ -8,8 +8,6 @@ ## Optional Requirements: -- [buf](https://buf.build/) 基于 ProtoBuffer 生成 grpc 相关文件。 -- [mockery](https://github.com/vektra/mockery) 生成 mock - nodejs: 用于生成 openapi 文件。 ## Init @@ -32,19 +30,12 @@ task - `MYSQL_PASS` 默认 `password` - `REDIS_URI` 默认 `redis://127.0.0.1:6379/0` - `HTTP_PORT` 默认 `3000` - -#### 微服务相关 - -- `ETCD_ADDR` etcd, 用于微服务的服务发现,留空(默认)的情况下各个微服务会使用 noop mock。example:`http://127.0.0.1:2379` -- `ETCD_NAMESPACE` etcd 服务注册的 key 前缀。大多数情况下不需要设置。 - -https://github.com/bangumi/service-timeline +- `KAFKA_BROKER` kafka broker 地址。 搜索功能相关的环境变量 - `MEILISEARCH_URL` meilisearch 地址,默认为空。不设置的话不会初始化搜索客户端。 - `MEILISEARCH_KEY` meilisearch key。 -- `KAFKA_BROKER` kafka broker 地址,启动 canal 需要 kafka。 你也可以把配置放在 `.env` 文件中,`go-task` 会自动加载 `.env` 文件中的环境变量。 From a6497c9ba638f8676e60aaad62d3f102c419b1c9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 06:07:53 +0800 Subject: [PATCH 573/888] chore: use yarn instead of npm --- .github/workflows/lint-review.yaml | 6 +- .github/workflows/release-openapi.yaml | 4 +- .github/workflows/test-openapi.yaml | 6 +- .gitignore | 1 - Taskfile.yaml | 4 +- openapi/readme.md | 4 +- package-lock.json | 783 ------------------------- package.json | 3 +- yarn.lock | 282 +++++++++ 9 files changed, 298 insertions(+), 795 deletions(-) delete mode 100644 package-lock.json create mode 100644 yarn.lock diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index b0252c81e..cea106f22 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -20,15 +20,17 @@ jobs: - name: Install Node LTS uses: actions/setup-node@v4 + with: + cache: yarn - name: Install Go uses: actions/setup-go@v5 with: go-version-file: "go.mod" - - run: npm ci + - run: yarn install --frozen-lockfile - - run: npm run format + - run: yarn run format - run: gofmt -w -s . diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index aa78ef435..727ef17c4 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -18,8 +18,8 @@ jobs: with: node-version: 20 - - run: npm ci - - run: npm run build + - run: yarn install --frozen-lockfile + - run: yarn run build - uses: actions/checkout@v4 with: diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 7eb0242c7..2d2f4df78 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -32,7 +32,7 @@ jobs: - uses: actions/setup-node@v4 with: node-version: "lts/*" - cache: "npm" + cache: "yarn" - - run: npm ci - - run: npm test + - run: yarn install --frozen-lockfile + - run: yarn run test diff --git a/.gitignore b/.gitignore index 9cf86daa0..1f4c60e82 100644 --- a/.gitignore +++ b/.gitignore @@ -20,7 +20,6 @@ tmp/ node_modules/ pnpm-lock.yaml -yarn.lock .task/ config.yaml diff --git a/Taskfile.yaml b/Taskfile.yaml index 7525b8b76..d24a0f9e8 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -51,12 +51,12 @@ tasks: openapi-test: desc: Test OpenAPI Schema cmds: - - npm run test + - yarn run test openapi: desc: Build OpenAPI Schema cmds: - - npm run build + - yarn run build bench: desc: Run benchmark diff --git a/openapi/readme.md b/openapi/readme.md index cddf04938..48bcf1748 100644 --- a/openapi/readme.md +++ b/openapi/readme.md @@ -6,5 +6,7 @@ 你需要 [nodejs](https://nodejs.org/) 来测试 openapi 定义: ```bash -npm test +yarn install --frozen-lockfile + +yarn run test ``` diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 726b13447..000000000 --- a/package-lock.json +++ /dev/null @@ -1,783 +0,0 @@ -{ - "name": "chii", - "version": "0.34.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "chii", - "version": "0.34.0", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.9.3", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21" - }, - "devDependencies": { - "colors": "^1.4.0", - "oas-validator": "^5.0.8", - "prettier": "^3.5.3" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.9.3", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", - "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", - "dev": true - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "dev": true, - "dependencies": { - "http2-client": "^1.2.5" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "dev": true, - "dependencies": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - }, - "bin": { - "resolve": "resolve.js" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - }, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", - "dev": true, - "funding": { - "url": "https://github.com/Mermade/oas-kit?sponsor=1" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "dependencies": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "node_modules/should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "dependencies": { - "should-type": "^1.4.0" - } - }, - "node_modules/should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "node_modules/should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", - "dev": true - }, - "node_modules/should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "dependencies": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "node_modules/should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@apidevtools/json-schema-ref-parser": { - "version": "11.9.3", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", - "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - } - }, - "@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "http2-client": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", - "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node-fetch-h2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", - "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", - "dev": true, - "requires": { - "http2-client": "^1.2.5" - } - }, - "oas-kit-common": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", - "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.7" - } - }, - "oas-linter": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", - "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", - "dev": true, - "requires": { - "@exodus/schemasafe": "^1.0.0-rc.2", - "should": "^13.2.1", - "yaml": "^1.10.0" - } - }, - "oas-resolver": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", - "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", - "dev": true, - "requires": { - "node-fetch-h2": "^2.3.0", - "oas-kit-common": "^1.0.8", - "reftools": "^1.1.9", - "yaml": "^1.10.0", - "yargs": "^17.0.1" - } - }, - "oas-schema-walker": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", - "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", - "dev": true - }, - "oas-validator": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", - "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "oas-kit-common": "^1.0.8", - "oas-linter": "^3.2.2", - "oas-resolver": "^2.5.6", - "oas-schema-walker": "^1.1.5", - "reftools": "^1.1.9", - "should": "^13.2.1", - "yaml": "^1.10.0" - } - }, - "prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true - }, - "reftools": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", - "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", - "dev": true, - "requires": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } - }, - "should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", - "dev": true, - "requires": { - "should-type": "^1.4.0" - } - }, - "should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", - "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", - "dev": true - }, - "should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", - "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" - } - }, - "should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } -} diff --git a/package.json b/package.json index 44cdb0b70..b3b45f9d9 100644 --- a/package.json +++ b/package.json @@ -31,5 +31,6 @@ "delay": 2000, "exec": "godotenv go run main.go --config config.yaml", "ext": "go,json,html" - } + }, + "packageManager": "yarn@1.22.22" } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..ae47fd10b --- /dev/null +++ b/yarn.lock @@ -0,0 +1,282 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apidevtools/json-schema-ref-parser@^11.9.3": + version "11.9.3" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7" + integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + +"@exodus/schemasafe@^1.0.0-rc.2": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +http2-client@^1.2.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" + integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +node-fetch-h2@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac" + integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg== + dependencies: + http2-client "^1.2.5" + +oas-kit-common@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535" + integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ== + dependencies: + fast-safe-stringify "^2.0.7" + +oas-linter@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" + integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== + dependencies: + "@exodus/schemasafe" "^1.0.0-rc.2" + should "^13.2.1" + yaml "^1.10.0" + +oas-resolver@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" + integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== + dependencies: + node-fetch-h2 "^2.3.0" + oas-kit-common "^1.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + +oas-schema-walker@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" + integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== + +oas-validator@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" + integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== + dependencies: + call-me-maybe "^1.0.1" + oas-kit-common "^1.0.8" + oas-linter "^3.2.2" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + reftools "^1.1.9" + should "^13.2.1" + yaml "^1.10.0" + +prettier@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + +reftools@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" + integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== + +should-util@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" + integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== + +should@^13.2.1: + version "13.2.3" + resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" + integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" From 40f2eec2316a6a6ec9ba26643bddbcaa88eb21b1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 06:10:52 +0800 Subject: [PATCH 574/888] chore: remove microservice Signed-off-by: Trim21 --- readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/readme.md b/readme.md index dcd29779c..d0722baf0 100644 --- a/readme.md +++ b/readme.md @@ -81,10 +81,6 @@ redis 和 mysql 都在此 docker-compose 内 Date: Sat, 15 Mar 2025 06:34:38 +0800 Subject: [PATCH 575/888] Update test.yaml (#753) --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0f544443f..ec7f7727a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -26,7 +26,7 @@ jobs: test: runs-on: ubuntu-24.04 steps: - - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env + - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - uses: actions/checkout@v4 From 4be52ab5de609fa1447cfee3023ef7e3c84c559b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 07:12:15 +0800 Subject: [PATCH 576/888] chore: fix kafka error message --- internal/timeline/kafka.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/timeline/kafka.go b/internal/timeline/kafka.go index b12e33123..46049beab 100644 --- a/internal/timeline/kafka.go +++ b/internal/timeline/kafka.go @@ -133,9 +133,9 @@ func (m kafkaClient) ChangeEpisodeStatus( func (m kafkaClient) writeMessage(ctx context.Context, uid model.UserID, value timelineValue) error { err := m.kafka.WriteMessages(ctx, kafka.Message{ Topic: timelineTopic, - Key: []byte(fmt.Sprintf("%d", uid)), + Key: fmt.Appendf(nil, "%d", uid), Value: lo.Must(json.Marshal(value)), }) - return errgo.Wrap(err, "grpc") + return errgo.Wrap(err, "kafka") } From ca75b2ad035b0a62ae984905a9dfef28d70db4e3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 08:36:31 +0800 Subject: [PATCH 577/888] Update test.yaml (#754) --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ec7f7727a..edfbba782 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -57,7 +57,7 @@ jobs: - run: bash $HOME/dev-env/wait_mysql_ready.sh - name: Run tests - run: gotestsum -- -timeout 10s -tags test -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.out ./... + run: gotestsum --format-hide-empty-pkg -- -timeout 10s -tags test -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.out ./... env: GORACE: halt_on_error=1 TEST_MYSQL: "1" From ca0f9b311e8e66196a9f6c8aec41367851141288 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 09:04:46 +0800 Subject: [PATCH 578/888] build(deps): lock file maintenance (#755) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 564 +++++++++++++++++++++++++++--------------------------- 1 file changed, 282 insertions(+), 282 deletions(-) diff --git a/yarn.lock b/yarn.lock index ae47fd10b..01926f02d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,282 +1,282 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apidevtools/json-schema-ref-parser@^11.9.3": - version "11.9.3" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7" - integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ== - dependencies: - "@jsdevtools/ono" "^7.1.3" - "@types/json-schema" "^7.0.15" - js-yaml "^4.1.0" - -"@exodus/schemasafe@^1.0.0-rc.2": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" - integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== - -"@jsdevtools/ono@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" - integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== - -"@types/json-schema@^7.0.15": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -fast-safe-stringify@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -http2-client@^1.2.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" - integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -node-fetch-h2@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac" - integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg== - dependencies: - http2-client "^1.2.5" - -oas-kit-common@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535" - integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ== - dependencies: - fast-safe-stringify "^2.0.7" - -oas-linter@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" - integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== - dependencies: - "@exodus/schemasafe" "^1.0.0-rc.2" - should "^13.2.1" - yaml "^1.10.0" - -oas-resolver@^2.5.6: - version "2.5.6" - resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" - integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== - dependencies: - node-fetch-h2 "^2.3.0" - oas-kit-common "^1.0.8" - reftools "^1.1.9" - yaml "^1.10.0" - yargs "^17.0.1" - -oas-schema-walker@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" - integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== - -oas-validator@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" - integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== - dependencies: - call-me-maybe "^1.0.1" - oas-kit-common "^1.0.8" - oas-linter "^3.2.2" - oas-resolver "^2.5.6" - oas-schema-walker "^1.1.5" - reftools "^1.1.9" - should "^13.2.1" - yaml "^1.10.0" - -prettier@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" - integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== - -reftools@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" - integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -should-equal@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" - integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== - dependencies: - should-type "^1.4.0" - -should-format@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" - integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== - dependencies: - should-type "^1.3.0" - should-type-adaptors "^1.0.1" - -should-type-adaptors@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" - integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== - dependencies: - should-type "^1.3.0" - should-util "^1.0.0" - -should-type@^1.3.0, should-type@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" - integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== - -should-util@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" - integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== - -should@^13.2.1: - version "13.2.3" - resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" - integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== - dependencies: - should-equal "^2.0.0" - should-format "^3.0.3" - should-type "^1.4.0" - should-type-adaptors "^1.0.1" - should-util "^1.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.0.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apidevtools/json-schema-ref-parser@^11.9.3": + version "11.9.3" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7" + integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + +"@exodus/schemasafe@^1.0.0-rc.2": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +http2-client@^1.2.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" + integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +node-fetch-h2@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac" + integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg== + dependencies: + http2-client "^1.2.5" + +oas-kit-common@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535" + integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ== + dependencies: + fast-safe-stringify "^2.0.7" + +oas-linter@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" + integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== + dependencies: + "@exodus/schemasafe" "^1.0.0-rc.2" + should "^13.2.1" + yaml "^1.10.0" + +oas-resolver@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" + integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== + dependencies: + node-fetch-h2 "^2.3.0" + oas-kit-common "^1.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + +oas-schema-walker@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" + integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== + +oas-validator@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" + integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== + dependencies: + call-me-maybe "^1.0.1" + oas-kit-common "^1.0.8" + oas-linter "^3.2.2" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + reftools "^1.1.9" + should "^13.2.1" + yaml "^1.10.0" + +prettier@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + +reftools@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" + integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== + +should-util@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" + integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== + +should@^13.2.1: + version "13.2.3" + resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" + integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" From f2bc55bb37eab0216acb7602969fabcceb420cbf Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 21:43:29 +0800 Subject: [PATCH 579/888] chore: do not lock version of govulncheck --- .github/workflows/security.yaml | 4 +++- go.mod | 7 +------ go.sum | 8 -------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 0ea046730..527bcffb0 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -31,4 +31,6 @@ jobs: with: cache-namespace: sec - - run: go run golang.org/x/vuln/cmd/govulncheck ./... + - run: go install golang.org/x/vuln/cmd/govulncheck@latest + + - run: govulncheck ./... diff --git a/go.mod b/go.mod index 2bbeae732..c328f42ca 100644 --- a/go.mod +++ b/go.mod @@ -2,10 +2,7 @@ module github.com/bangumi/server go 1.24.1 -tool ( - github.com/vektra/mockery/v2 - golang.org/x/vuln/cmd/govulncheck -) +tool github.com/vektra/mockery/v2 require ( github.com/avast/retry-go/v4 v4.6.1 @@ -119,11 +116,9 @@ require ( golang.org/x/net v0.36.0 // indirect golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect - golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 // indirect golang.org/x/term v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.30.0 // indirect - golang.org/x/vuln v1.1.4 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect diff --git a/go.sum b/go.sum index 55bc98f99..06213dc16 100644 --- a/go.sum +++ b/go.sum @@ -84,12 +84,8 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= -github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -313,8 +309,6 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7 h1:FemxDzfMUcK2f3YY4H+05K9CDzbSVr2+q/JKN45pey0= -golang.org/x/telemetry v0.0.0-20240522233618-39ace7a40ae7/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -340,8 +334,6 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= -golang.org/x/vuln v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I= -golang.org/x/vuln v1.1.4/go.mod h1:F+45wmU18ym/ca5PLTPLsSzr2KppzswxPP603ldA67s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= From bcd289052f58bc7521b7380a4ddd728c3d45680b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 22:20:11 +0800 Subject: [PATCH 580/888] fix: write episode progress timeline (#756) --- ctrl/update_episode_progress.go | 12 ++++++++++-- internal/mocks/TimeLineService.go | 21 +++++++++++---------- internal/pkg/test/web.go | 3 ++- internal/timeline/domain.go | 1 + internal/timeline/kafka.go | 3 ++- internal/timeline/type.go | 4 ++-- 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/ctrl/update_episode_progress.go b/ctrl/update_episode_progress.go index dbf2b7a59..e160e5e66 100644 --- a/ctrl/update_episode_progress.go +++ b/ctrl/update_episode_progress.go @@ -90,7 +90,11 @@ func (ctl Ctrl) UpdateEpisodesCollection( return err } - err = ctl.timeline.ChangeEpisodeStatus(ctx, u, s, e) + if t == 0 { + return nil + } + + err = ctl.timeline.ChangeEpisodeStatus(ctx, u, s, e, t) return errgo.Wrap(err, "timeline.ChangeEpisodeStatus") } @@ -125,7 +129,11 @@ func (ctl Ctrl) UpdateEpisodeCollection( return err } - err = ctl.timeline.ChangeEpisodeStatus(ctx, u, s, e) + if t == 0 { + return nil + } + + err = ctl.timeline.ChangeEpisodeStatus(ctx, u, s, e, t) return errgo.Wrap(err, "timeline.ChangeEpisodeStatus") } diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index 0488e0298..5faaffbc1 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -28,17 +28,17 @@ func (_m *TimeLineService) EXPECT() *TimeLineService_Expecter { return &TimeLineService_Expecter{mock: &_m.Mock} } -// ChangeEpisodeStatus provides a mock function with given fields: ctx, u, sbj, _a3 -func (_m *TimeLineService) ChangeEpisodeStatus(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode) error { - ret := _m.Called(ctx, u, sbj, _a3) +// ChangeEpisodeStatus provides a mock function with given fields: ctx, u, sbj, _a3, t +func (_m *TimeLineService) ChangeEpisodeStatus(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode, t collection.EpisodeCollection) error { + ret := _m.Called(ctx, u, sbj, _a3, t) if len(ret) == 0 { panic("no return value specified for ChangeEpisodeStatus") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, auth.Auth, model.Subject, episode.Episode) error); ok { - r0 = rf(ctx, u, sbj, _a3) + if rf, ok := ret.Get(0).(func(context.Context, auth.Auth, model.Subject, episode.Episode, collection.EpisodeCollection) error); ok { + r0 = rf(ctx, u, sbj, _a3, t) } else { r0 = ret.Error(0) } @@ -56,13 +56,14 @@ type TimeLineService_ChangeEpisodeStatus_Call struct { // - u auth.Auth // - sbj model.Subject // - _a3 episode.Episode -func (_e *TimeLineService_Expecter) ChangeEpisodeStatus(ctx interface{}, u interface{}, sbj interface{}, _a3 interface{}) *TimeLineService_ChangeEpisodeStatus_Call { - return &TimeLineService_ChangeEpisodeStatus_Call{Call: _e.mock.On("ChangeEpisodeStatus", ctx, u, sbj, _a3)} +// - t collection.EpisodeCollection +func (_e *TimeLineService_Expecter) ChangeEpisodeStatus(ctx interface{}, u interface{}, sbj interface{}, _a3 interface{}, t interface{}) *TimeLineService_ChangeEpisodeStatus_Call { + return &TimeLineService_ChangeEpisodeStatus_Call{Call: _e.mock.On("ChangeEpisodeStatus", ctx, u, sbj, _a3, t)} } -func (_c *TimeLineService_ChangeEpisodeStatus_Call) Run(run func(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode)) *TimeLineService_ChangeEpisodeStatus_Call { +func (_c *TimeLineService_ChangeEpisodeStatus_Call) Run(run func(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode, t collection.EpisodeCollection)) *TimeLineService_ChangeEpisodeStatus_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(auth.Auth), args[2].(model.Subject), args[3].(episode.Episode)) + run(args[0].(context.Context), args[1].(auth.Auth), args[2].(model.Subject), args[3].(episode.Episode), args[4].(collection.EpisodeCollection)) }) return _c } @@ -72,7 +73,7 @@ func (_c *TimeLineService_ChangeEpisodeStatus_Call) Return(_a0 error) *TimeLineS return _c } -func (_c *TimeLineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(context.Context, auth.Auth, model.Subject, episode.Episode) error) *TimeLineService_ChangeEpisodeStatus_Call { +func (_c *TimeLineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(context.Context, auth.Auth, model.Subject, episode.Episode, collection.EpisodeCollection) error) *TimeLineService_ChangeEpisodeStatus_Call { _c.Call.Return(run) return _c } diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 79cca3023..bdfa35ced 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -288,7 +288,8 @@ func MockTimeLineSrv(m timeline.Service) fx.Option { mocker.EXPECT().ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) - mocker.EXPECT().ChangeEpisodeStatus(mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) + mocker.EXPECT(). + ChangeEpisodeStatus(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) mocker.EXPECT().ChangeSubjectProgress(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) diff --git a/internal/timeline/domain.go b/internal/timeline/domain.go index 00f3a460e..cf46a1af7 100644 --- a/internal/timeline/domain.go +++ b/internal/timeline/domain.go @@ -39,6 +39,7 @@ type Service interface { u auth.Auth, sbj model.Subject, episode episode.Episode, + t collection.EpisodeCollection, ) error ChangeSubjectProgress( diff --git a/internal/timeline/kafka.go b/internal/timeline/kafka.go index 46049beab..58b545635 100644 --- a/internal/timeline/kafka.go +++ b/internal/timeline/kafka.go @@ -104,6 +104,7 @@ func (m kafkaClient) ChangeEpisodeStatus( u auth.Auth, sbj model.Subject, episode episode.Episode, + t collection.EpisodeCollection, ) error { ctx, canal := context.WithTimeout(ctx, defaultTimeout) defer canal() @@ -121,7 +122,7 @@ func (m kafkaClient) ChangeEpisodeStatus( }, Episode: tlEpisode{ ID: episode.ID, - Status: int(episode.Sort), + Status: t, }, CreatedAt: time.Now().Unix(), Source: timelineSourceAPI, diff --git a/internal/timeline/type.go b/internal/timeline/type.go index 0c53f7ba8..96cdc4c61 100644 --- a/internal/timeline/type.go +++ b/internal/timeline/type.go @@ -26,8 +26,8 @@ type timelineValue struct { } type tlEpisode struct { - ID model.EpisodeID `json:"id"` - Status int `json:"status"` + ID model.EpisodeID `json:"id"` + Status collection.EpisodeCollection `json:"status"` } type tlSubjectCollect struct { From e6f43c5eb123d3e22196095f573ce4ecb2ae7754 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 22:39:54 +0800 Subject: [PATCH 581/888] refactor: remove dead code (#757) --- cmd/web/cmd.go | 4 +- ctrl/create_private_message.go | 107 ---- ctrl/ctrl.go | 28 +- etc/mock.task.yaml | 28 - internal/mocks/PrivateMessageRepo.go | 492 ------------------ internal/notification/domain.go | 25 - internal/notification/model.go | 84 --- internal/notification/mysql_repository.go | 57 -- .../notification/mysql_repository_test.go | 45 -- internal/pkg/test/web.go | 54 +- internal/pm/domain.go | 69 --- internal/pm/error.go | 25 - internal/pm/model.go | 54 -- internal/pm/mysql_repository.go | 492 ------------------ internal/pm/mysql_repository_test.go | 263 ---------- web/handler/fx.go | 4 - web/handler/notification/count.go | 33 -- web/handler/notification/notification.go | 44 -- web/handler/notification/notification_test.go | 58 --- web/handler/pm/count_types.go | 37 -- web/handler/pm/create.go | 75 --- web/handler/pm/delete.go | 55 -- web/handler/pm/list.go | 81 --- web/handler/pm/list_recent_contact.go | 44 -- web/handler/pm/list_related.go | 58 --- web/handler/pm/mark_read.go | 47 -- web/handler/pm/pm.go | 48 -- web/handler/pm/pm_test.go | 215 -------- web/req/query_parse.go | 15 - web/res/pm.go | 71 --- web/routes.go | 31 -- 31 files changed, 30 insertions(+), 2713 deletions(-) delete mode 100644 ctrl/create_private_message.go delete mode 100644 internal/mocks/PrivateMessageRepo.go delete mode 100644 internal/notification/domain.go delete mode 100644 internal/notification/model.go delete mode 100644 internal/notification/mysql_repository.go delete mode 100644 internal/notification/mysql_repository_test.go delete mode 100644 internal/pm/domain.go delete mode 100644 internal/pm/error.go delete mode 100644 internal/pm/model.go delete mode 100644 internal/pm/mysql_repository.go delete mode 100644 internal/pm/mysql_repository_test.go delete mode 100644 web/handler/notification/count.go delete mode 100644 web/handler/notification/notification.go delete mode 100644 web/handler/notification/notification_test.go delete mode 100644 web/handler/pm/count_types.go delete mode 100644 web/handler/pm/create.go delete mode 100644 web/handler/pm/delete.go delete mode 100644 web/handler/pm/list.go delete mode 100644 web/handler/pm/list_recent_contact.go delete mode 100644 web/handler/pm/list_related.go delete mode 100644 web/handler/pm/mark_read.go delete mode 100644 web/handler/pm/pm.go delete mode 100644 web/handler/pm/pm_test.go delete mode 100644 web/res/pm.go diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index bb2c8a869..de0059f51 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -32,13 +32,11 @@ import ( "github.com/bangumi/server/internal/collections/infra" "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/index" - "github.com/bangumi/server/internal/notification" "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/driver" "github.com/bangumi/server/internal/pkg/logger" - "github.com/bangumi/server/internal/pm" "github.com/bangumi/server/internal/revision" "github.com/bangumi/server/internal/search" "github.com/bangumi/server/internal/subject" @@ -85,7 +83,7 @@ func start() error { user.NewMysqlRepo, index.NewMysqlRepo, auth.NewMysqlRepo, episode.NewMysqlRepo, revision.NewMysqlRepo, infra.NewMysqlRepo, - timeline.NewSrv, pm.NewMysqlRepo, notification.NewMysqlRepo, + timeline.NewSrv, dam.New, subject.NewMysqlRepo, subject.NewCachedRepo, character.NewMysqlRepo, person.NewMysqlRepo, diff --git a/ctrl/create_private_message.go b/ctrl/create_private_message.go deleted file mode 100644 index e5862f918..000000000 --- a/ctrl/create_private_message.go +++ /dev/null @@ -1,107 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package ctrl - -import ( - "context" - "errors" - - "github.com/samber/lo" - "github.com/trim21/errgo" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/internal/user" -) - -var ErrPmBlocked = errors.New("have been blocked") -var ErrPmNotAllReceiversExist = errors.New("some receivers not exist") -var ErrPmReceiverReject = errors.New("some receivers reject private message") -var ErrPmNotAFriend = errors.New("not a friend to some receivers") - -func (ctl Ctrl) checkNeedFriendshipReceivers( - ctx context.Context, - senderID model.UserID, - receiverIDs []model.UserID, - fieldsMap map[model.UserID]user.Fields) error { - checkFriendshipList := slice.MapFilter(receiverIDs, func(id model.UserID) (model.UserID, bool) { - if fields, ok := fieldsMap[id]; ok { - if fields.Privacy.ReceivePrivateMessage == user.ReceiveFilterFriends { - return id, true - } - } - return 0, false - }) - if len(checkFriendshipList) != 0 { - ok, checkErr := ctl.user.CheckIsFriendToOthers(ctx, senderID, checkFriendshipList...) - if checkErr != nil { - return errgo.Wrap(checkErr, "dal") - } - if !ok { - return ErrPmNotAFriend - } - } - return nil -} - -func (ctl Ctrl) checkReceivers(ctx context.Context, - senderID model.UserID, - receiverIDs []model.UserID) error { - receivers, err := ctl.user.GetByIDs(ctx, receiverIDs) - if err != nil { - return errgo.Wrap(err, "dal") - } - if len(receivers) != len(receiverIDs) { - return ErrPmNotAllReceiversExist - } - fieldsMap, err := ctl.user.GetFieldsByIDs(ctx, receiverIDs) - if err != nil { - return errgo.Wrap(err, "dal") - } - for _, id := range receiverIDs { - if fields, ok := fieldsMap[id]; ok { - if lo.Contains(fields.BlockList, senderID) { - return ErrPmBlocked - } - - if fields.Privacy.ReceivePrivateMessage == user.ReceiveFilterNone { - return ErrPmReceiverReject - } - } - } - - err = ctl.checkNeedFriendshipReceivers(ctx, senderID, receiverIDs, fieldsMap) - return err -} - -func (ctl Ctrl) CreatePrivateMessage( - ctx context.Context, - senderID model.UserID, - receiverIDs []model.UserID, - relatedIDFilter pm.IDFilter, - title string, - content string) ([]pm.PrivateMessage, error) { - emptyList := make([]pm.PrivateMessage, 0) - err := ctl.checkReceivers(ctx, senderID, receiverIDs) - if err != nil { - return emptyList, errgo.Wrap(err, "dal") - } - res, err := ctl.privateMessage.Create(ctx, senderID, receiverIDs, relatedIDFilter, title, content) - if err != nil { - return emptyList, errgo.Wrap(err, "dal") - } - return res, nil -} diff --git a/ctrl/ctrl.go b/ctrl/ctrl.go index 89bea9e52..0d310c89d 100644 --- a/ctrl/ctrl.go +++ b/ctrl/ctrl.go @@ -22,7 +22,6 @@ import ( "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/pkg/dam" - "github.com/bangumi/server/internal/pm" "github.com/bangumi/server/internal/subject" "github.com/bangumi/server/internal/timeline" "github.com/bangumi/server/internal/user" @@ -38,7 +37,6 @@ func New( user user.Repo, tx dal.Transaction, dam dam.Dam, - privateMessage pm.Repo, log *zap.Logger, ) Ctrl { return Ctrl{ @@ -48,13 +46,12 @@ func New( tx: tx, dam: dam, - subjectCached: subjectCached, - user: user, - episode: episode, - subject: subject, - collection: collection, - timeline: timeline, - privateMessage: privateMessage, + subjectCached: subjectCached, + user: user, + episode: episode, + subject: subject, + collection: collection, + timeline: timeline, } } @@ -65,11 +62,10 @@ type Ctrl struct { tx dal.Transaction dam dam.Dam - subjectCached subject.CachedRepo - user user.Repo - episode episode.Repo - subject subject.Repo - collection collections.Repo - timeline timeline.Service - privateMessage pm.Repo + subjectCached subject.CachedRepo + user user.Repo + episode episode.Repo + subject subject.Repo + collection collections.Repo + timeline timeline.Service } diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml index fc55227e0..c13048951 100644 --- a/etc/mock.task.yaml +++ b/etc/mock.task.yaml @@ -22,8 +22,6 @@ tasks: - task: CollectionRepo - task: TimeLineService - task: SearchClient - - task: PrivateMessageRepo - - task: NotificationRepo base-mock: cmds: @@ -261,29 +259,3 @@ tasks: SRC_DIR: ./internal/search INTERFACE: Client MOCK_STRUCT: SearchClient - - PrivateMessageRepo: - sources: - - internal/pm/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/PrivateMessageRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/pm - INTERFACE: Repo - MOCK_STRUCT: PrivateMessageRepo - - NotificationRepo: - sources: - - internal/notification/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/NotificationRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/notification - INTERFACE: Repo - MOCK_STRUCT: NotificationRepo diff --git a/internal/mocks/PrivateMessageRepo.go b/internal/mocks/PrivateMessageRepo.go deleted file mode 100644 index f49548f5f..000000000 --- a/internal/mocks/PrivateMessageRepo.go +++ /dev/null @@ -1,492 +0,0 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. - -package mocks - -import ( - context "context" - - pm "github.com/bangumi/server/internal/pm" - mock "github.com/stretchr/testify/mock" -) - -// PrivateMessageRepo is an autogenerated mock type for the Repo type -type PrivateMessageRepo struct { - mock.Mock -} - -type PrivateMessageRepo_Expecter struct { - mock *mock.Mock -} - -func (_m *PrivateMessageRepo) EXPECT() *PrivateMessageRepo_Expecter { - return &PrivateMessageRepo_Expecter{mock: &_m.Mock} -} - -// CountByFolder provides a mock function with given fields: ctx, userID, folder -func (_m *PrivateMessageRepo) CountByFolder(ctx context.Context, userID uint32, folder pm.FolderType) (int64, error) { - ret := _m.Called(ctx, userID, folder) - - if len(ret) == 0 { - panic("no return value specified for CountByFolder") - } - - var r0 int64 - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType) (int64, error)); ok { - return rf(ctx, userID, folder) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType) int64); ok { - r0 = rf(ctx, userID, folder) - } else { - r0 = ret.Get(0).(int64) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, pm.FolderType) error); ok { - r1 = rf(ctx, userID, folder) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_CountByFolder_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountByFolder' -type PrivateMessageRepo_CountByFolder_Call struct { - *mock.Call -} - -// CountByFolder is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - folder pm.FolderType -func (_e *PrivateMessageRepo_Expecter) CountByFolder(ctx interface{}, userID interface{}, folder interface{}) *PrivateMessageRepo_CountByFolder_Call { - return &PrivateMessageRepo_CountByFolder_Call{Call: _e.mock.On("CountByFolder", ctx, userID, folder)} -} - -func (_c *PrivateMessageRepo_CountByFolder_Call) Run(run func(ctx context.Context, userID uint32, folder pm.FolderType)) *PrivateMessageRepo_CountByFolder_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(pm.FolderType)) - }) - return _c -} - -func (_c *PrivateMessageRepo_CountByFolder_Call) Return(_a0 int64, _a1 error) *PrivateMessageRepo_CountByFolder_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_CountByFolder_Call) RunAndReturn(run func(context.Context, uint32, pm.FolderType) (int64, error)) *PrivateMessageRepo_CountByFolder_Call { - _c.Call.Return(run) - return _c -} - -// CountTypes provides a mock function with given fields: ctx, userID -func (_m *PrivateMessageRepo) CountTypes(ctx context.Context, userID uint32) (pm.PrivateMessageTypeCounts, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for CountTypes") - } - - var r0 pm.PrivateMessageTypeCounts - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (pm.PrivateMessageTypeCounts, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) pm.PrivateMessageTypeCounts); ok { - r0 = rf(ctx, userID) - } else { - r0 = ret.Get(0).(pm.PrivateMessageTypeCounts) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_CountTypes_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountTypes' -type PrivateMessageRepo_CountTypes_Call struct { - *mock.Call -} - -// CountTypes is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *PrivateMessageRepo_Expecter) CountTypes(ctx interface{}, userID interface{}) *PrivateMessageRepo_CountTypes_Call { - return &PrivateMessageRepo_CountTypes_Call{Call: _e.mock.On("CountTypes", ctx, userID)} -} - -func (_c *PrivateMessageRepo_CountTypes_Call) Run(run func(ctx context.Context, userID uint32)) *PrivateMessageRepo_CountTypes_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *PrivateMessageRepo_CountTypes_Call) Return(_a0 pm.PrivateMessageTypeCounts, _a1 error) *PrivateMessageRepo_CountTypes_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_CountTypes_Call) RunAndReturn(run func(context.Context, uint32) (pm.PrivateMessageTypeCounts, error)) *PrivateMessageRepo_CountTypes_Call { - _c.Call.Return(run) - return _c -} - -// Create provides a mock function with given fields: ctx, senderID, receiverIDs, relatedIDFilter, title, content -func (_m *PrivateMessageRepo) Create(ctx context.Context, senderID uint32, receiverIDs []uint32, relatedIDFilter pm.IDFilter, title string, content string) ([]pm.PrivateMessage, error) { - ret := _m.Called(ctx, senderID, receiverIDs, relatedIDFilter, title, content) - - if len(ret) == 0 { - panic("no return value specified for Create") - } - - var r0 []pm.PrivateMessage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32, pm.IDFilter, string, string) ([]pm.PrivateMessage, error)); ok { - return rf(ctx, senderID, receiverIDs, relatedIDFilter, title, content) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32, pm.IDFilter, string, string) []pm.PrivateMessage); ok { - r0 = rf(ctx, senderID, receiverIDs, relatedIDFilter, title, content) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]pm.PrivateMessage) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, []uint32, pm.IDFilter, string, string) error); ok { - r1 = rf(ctx, senderID, receiverIDs, relatedIDFilter, title, content) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_Create_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Create' -type PrivateMessageRepo_Create_Call struct { - *mock.Call -} - -// Create is a helper method to define mock.On call -// - ctx context.Context -// - senderID uint32 -// - receiverIDs []uint32 -// - relatedIDFilter pm.IDFilter -// - title string -// - content string -func (_e *PrivateMessageRepo_Expecter) Create(ctx interface{}, senderID interface{}, receiverIDs interface{}, relatedIDFilter interface{}, title interface{}, content interface{}) *PrivateMessageRepo_Create_Call { - return &PrivateMessageRepo_Create_Call{Call: _e.mock.On("Create", ctx, senderID, receiverIDs, relatedIDFilter, title, content)} -} - -func (_c *PrivateMessageRepo_Create_Call) Run(run func(ctx context.Context, senderID uint32, receiverIDs []uint32, relatedIDFilter pm.IDFilter, title string, content string)) *PrivateMessageRepo_Create_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].([]uint32), args[3].(pm.IDFilter), args[4].(string), args[5].(string)) - }) - return _c -} - -func (_c *PrivateMessageRepo_Create_Call) Return(_a0 []pm.PrivateMessage, _a1 error) *PrivateMessageRepo_Create_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_Create_Call) RunAndReturn(run func(context.Context, uint32, []uint32, pm.IDFilter, string, string) ([]pm.PrivateMessage, error)) *PrivateMessageRepo_Create_Call { - _c.Call.Return(run) - return _c -} - -// Delete provides a mock function with given fields: ctx, userID, ids -func (_m *PrivateMessageRepo) Delete(ctx context.Context, userID uint32, ids []uint32) error { - ret := _m.Called(ctx, userID, ids) - - if len(ret) == 0 { - panic("no return value specified for Delete") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) error); ok { - r0 = rf(ctx, userID, ids) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// PrivateMessageRepo_Delete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Delete' -type PrivateMessageRepo_Delete_Call struct { - *mock.Call -} - -// Delete is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - ids []uint32 -func (_e *PrivateMessageRepo_Expecter) Delete(ctx interface{}, userID interface{}, ids interface{}) *PrivateMessageRepo_Delete_Call { - return &PrivateMessageRepo_Delete_Call{Call: _e.mock.On("Delete", ctx, userID, ids)} -} - -func (_c *PrivateMessageRepo_Delete_Call) Run(run func(ctx context.Context, userID uint32, ids []uint32)) *PrivateMessageRepo_Delete_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].([]uint32)) - }) - return _c -} - -func (_c *PrivateMessageRepo_Delete_Call) Return(_a0 error) *PrivateMessageRepo_Delete_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *PrivateMessageRepo_Delete_Call) RunAndReturn(run func(context.Context, uint32, []uint32) error) *PrivateMessageRepo_Delete_Call { - _c.Call.Return(run) - return _c -} - -// List provides a mock function with given fields: ctx, userID, folder, offset, limit -func (_m *PrivateMessageRepo) List(ctx context.Context, userID uint32, folder pm.FolderType, offset int, limit int) ([]pm.PrivateMessageListItem, error) { - ret := _m.Called(ctx, userID, folder, offset, limit) - - if len(ret) == 0 { - panic("no return value specified for List") - } - - var r0 []pm.PrivateMessageListItem - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType, int, int) ([]pm.PrivateMessageListItem, error)); ok { - return rf(ctx, userID, folder, offset, limit) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, pm.FolderType, int, int) []pm.PrivateMessageListItem); ok { - r0 = rf(ctx, userID, folder, offset, limit) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]pm.PrivateMessageListItem) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, pm.FolderType, int, int) error); ok { - r1 = rf(ctx, userID, folder, offset, limit) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_List_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'List' -type PrivateMessageRepo_List_Call struct { - *mock.Call -} - -// List is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - folder pm.FolderType -// - offset int -// - limit int -func (_e *PrivateMessageRepo_Expecter) List(ctx interface{}, userID interface{}, folder interface{}, offset interface{}, limit interface{}) *PrivateMessageRepo_List_Call { - return &PrivateMessageRepo_List_Call{Call: _e.mock.On("List", ctx, userID, folder, offset, limit)} -} - -func (_c *PrivateMessageRepo_List_Call) Run(run func(ctx context.Context, userID uint32, folder pm.FolderType, offset int, limit int)) *PrivateMessageRepo_List_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(pm.FolderType), args[3].(int), args[4].(int)) - }) - return _c -} - -func (_c *PrivateMessageRepo_List_Call) Return(_a0 []pm.PrivateMessageListItem, _a1 error) *PrivateMessageRepo_List_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_List_Call) RunAndReturn(run func(context.Context, uint32, pm.FolderType, int, int) ([]pm.PrivateMessageListItem, error)) *PrivateMessageRepo_List_Call { - _c.Call.Return(run) - return _c -} - -// ListRecentContact provides a mock function with given fields: ctx, userID -func (_m *PrivateMessageRepo) ListRecentContact(ctx context.Context, userID uint32) ([]uint32, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for ListRecentContact") - } - - var r0 []uint32 - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]uint32, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []uint32); ok { - r0 = rf(ctx, userID) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]uint32) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_ListRecentContact_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListRecentContact' -type PrivateMessageRepo_ListRecentContact_Call struct { - *mock.Call -} - -// ListRecentContact is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *PrivateMessageRepo_Expecter) ListRecentContact(ctx interface{}, userID interface{}) *PrivateMessageRepo_ListRecentContact_Call { - return &PrivateMessageRepo_ListRecentContact_Call{Call: _e.mock.On("ListRecentContact", ctx, userID)} -} - -func (_c *PrivateMessageRepo_ListRecentContact_Call) Run(run func(ctx context.Context, userID uint32)) *PrivateMessageRepo_ListRecentContact_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *PrivateMessageRepo_ListRecentContact_Call) Return(_a0 []uint32, _a1 error) *PrivateMessageRepo_ListRecentContact_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_ListRecentContact_Call) RunAndReturn(run func(context.Context, uint32) ([]uint32, error)) *PrivateMessageRepo_ListRecentContact_Call { - _c.Call.Return(run) - return _c -} - -// ListRelated provides a mock function with given fields: ctx, userID, id -func (_m *PrivateMessageRepo) ListRelated(ctx context.Context, userID uint32, id uint32) ([]pm.PrivateMessage, error) { - ret := _m.Called(ctx, userID, id) - - if len(ret) == 0 { - panic("no return value specified for ListRelated") - } - - var r0 []pm.PrivateMessage - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) ([]pm.PrivateMessage, error)); ok { - return rf(ctx, userID, id) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) []pm.PrivateMessage); ok { - r0 = rf(ctx, userID, id) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]pm.PrivateMessage) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32) error); ok { - r1 = rf(ctx, userID, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PrivateMessageRepo_ListRelated_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListRelated' -type PrivateMessageRepo_ListRelated_Call struct { - *mock.Call -} - -// ListRelated is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - id uint32 -func (_e *PrivateMessageRepo_Expecter) ListRelated(ctx interface{}, userID interface{}, id interface{}) *PrivateMessageRepo_ListRelated_Call { - return &PrivateMessageRepo_ListRelated_Call{Call: _e.mock.On("ListRelated", ctx, userID, id)} -} - -func (_c *PrivateMessageRepo_ListRelated_Call) Run(run func(ctx context.Context, userID uint32, id uint32)) *PrivateMessageRepo_ListRelated_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) - }) - return _c -} - -func (_c *PrivateMessageRepo_ListRelated_Call) Return(_a0 []pm.PrivateMessage, _a1 error) *PrivateMessageRepo_ListRelated_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PrivateMessageRepo_ListRelated_Call) RunAndReturn(run func(context.Context, uint32, uint32) ([]pm.PrivateMessage, error)) *PrivateMessageRepo_ListRelated_Call { - _c.Call.Return(run) - return _c -} - -// MarkRead provides a mock function with given fields: ctx, userID, relatedID -func (_m *PrivateMessageRepo) MarkRead(ctx context.Context, userID uint32, relatedID uint32) error { - ret := _m.Called(ctx, userID, relatedID) - - if len(ret) == 0 { - panic("no return value specified for MarkRead") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { - r0 = rf(ctx, userID, relatedID) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// PrivateMessageRepo_MarkRead_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MarkRead' -type PrivateMessageRepo_MarkRead_Call struct { - *mock.Call -} - -// MarkRead is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - relatedID uint32 -func (_e *PrivateMessageRepo_Expecter) MarkRead(ctx interface{}, userID interface{}, relatedID interface{}) *PrivateMessageRepo_MarkRead_Call { - return &PrivateMessageRepo_MarkRead_Call{Call: _e.mock.On("MarkRead", ctx, userID, relatedID)} -} - -func (_c *PrivateMessageRepo_MarkRead_Call) Run(run func(ctx context.Context, userID uint32, relatedID uint32)) *PrivateMessageRepo_MarkRead_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) - }) - return _c -} - -func (_c *PrivateMessageRepo_MarkRead_Call) Return(_a0 error) *PrivateMessageRepo_MarkRead_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *PrivateMessageRepo_MarkRead_Call) RunAndReturn(run func(context.Context, uint32, uint32) error) *PrivateMessageRepo_MarkRead_Call { - _c.Call.Return(run) - return _c -} - -// NewPrivateMessageRepo creates a new instance of PrivateMessageRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewPrivateMessageRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *PrivateMessageRepo { - mock := &PrivateMessageRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/notification/domain.go b/internal/notification/domain.go deleted file mode 100644 index 86d895e83..000000000 --- a/internal/notification/domain.go +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification - -import ( - "context" - - "github.com/bangumi/server/internal/model" -) - -type Repo interface { - Count(ctx context.Context, userID model.UserID) (int64, error) -} diff --git a/internal/notification/model.go b/internal/notification/model.go deleted file mode 100644 index 71dfcfa2a..000000000 --- a/internal/notification/model.go +++ /dev/null @@ -1,84 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification - -import ( - "time" - - "github.com/bangumi/server/internal/model" -) - -type Field struct { - Title string - ID model.NotificationFieldID - RelatedID uint32 // 关联的主体事项的id,条目讨论,日志的 - RelatedType uint8 // 关联的主体事项的分类 -} - -type Notification struct { - CreatedTime time.Time - ID model.NotificationID - ReceiverID model.UserID - SenderID model.UserID - FieldID model.NotificationFieldID - RelatedID uint32 // 触发通知的实际事项id,如回复的 - Type Type - Status Status -} - -type Type uint8 - -const ( - TypeGroupTopicReply Type = 1 // 发起的小组话题有新回复 - TypeReplyToGroupTopicReply Type = 2 // 在小组话题收到回复 - TypeSubjectTopicReply Type = 3 // 发起的条目讨论有新回复 - TypeReplyToSubjectTopicReply Type = 4 // 在条目讨论收到回复 - TypeCharacterMessage Type = 5 // 关注的角色讨论有新回复 - TypeReplyToCharacterMessage Type = 6 // 在角色讨论收到回复 - TypeBlogMessage Type = 7 // 日志留言 - TypeReplyToBlogMessage Type = 8 // 日志留言的回复 - TypeEpisodeTopicReply Type = 9 // 章节讨论有新回复 - TypeReplyToEpisodeTopic Type = 10 // 在章节讨论收到回复 - TypeIndexMessage Type = 11 // 目录有新留言 - TypeReplyToIndexMessage Type = 12 // 目录留言收到回复 - TypeReplyToPersonMessage Type = 13 // 人物留言收到回复 - TypeFriendRequest Type = 14 // 收到好友申请 - TypePassFriendRequest Type = 15 // 好友申请通过 - TypeDoujinClubTopicReply Type = 17 // 同人社团讨论有新回复 - TypeReplyToDoujinClubTopicReply Type = 18 // 在同人社团讨论收到回复 - TypeReplyToDoujinSubjectTopicReply Type = 19 // 同人作品讨论有新回复 - TypeDoujinEventTopicReply Type = 20 // 同人展会讨论有新回复 - TypeReplyToDoujinEventTopicReply Type = 21 // 在同人展会讨论收到回复 - TypeTsukkomiReply Type = 22 // 吐槽有新回复 - TypeGroupTopicMention Type = 23 // 在小组讨论中被提及 - TypeSubjectTopicMention Type = 24 // 在条目讨论中被提及 - TypeCharacterMessageMention Type = 25 // 在角色留言中被提及 - TypePersonMessageMention Type = 26 // 在人物留言中被提及 - TypeIndexMessageMention Type = 27 // 在目录留言中被提及 - TypeTsukkomiMention Type = 28 // 在吐槽中被提及 - TypeBlogMessageMention Type = 29 // 在日志留言中被提及 - TypeEpisodeTopicMention Type = 30 // 在章节讨论中被提及 - TypeDoujinClubMessageMention Type = 31 // 在同人社团留言中被提及 - TypeDoujinClubTopicMention Type = 32 // 在同人社团讨论中被提及 - TypeDoujinSubjectMessageMention Type = 33 // 在同人作品留言中被提及 - TypeDoujinEventTopicMention Type = 34 // 在同人展会讨论中被提及 -) - -type Status uint8 - -const ( - StatusRead Status = 0 - StatusUnread Status = 1 -) diff --git a/internal/notification/mysql_repository.go b/internal/notification/mysql_repository.go deleted file mode 100644 index d326a8a11..000000000 --- a/internal/notification/mysql_repository.go +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification - -import ( - "context" - - "github.com/trim21/errgo" - "go.uber.org/zap" - - "github.com/bangumi/server/dal/query" - "github.com/bangumi/server/internal/model" -) - -type mysqlRepo struct { - q *query.Query - log *zap.Logger -} - -func NewMysqlRepo(q *query.Query, log *zap.Logger) (Repo, error) { - return mysqlRepo{q: q, log: log.Named("notification.mysqlRepo")}, nil -} - -func (r mysqlRepo) count(ctx context.Context, userID model.UserID) (int64, error) { //nolint:golint,unused - count, err := r.q.Notification.WithContext(ctx).Where( - r.q.Notification.ReceiverID.Eq(userID), - r.q.Notification.Status.Eq(uint8(StatusUnread)), - ).Count() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return 0, errgo.Wrap(err, "dal") - } - return count, nil -} - -func (r mysqlRepo) Count(ctx context.Context, userID model.UserID) (int64, error) { - member, err := r.q.Member.WithContext(ctx).Where( - r.q.Member.ID.Eq(userID), - ).Select(r.q.Member.ID, r.q.Member.NewNotify).Take() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return 0, errgo.Wrap(err, "dal") - } - return int64(member.NewNotify), nil -} diff --git a/internal/notification/mysql_repository_test.go b/internal/notification/mysql_repository_test.go deleted file mode 100644 index 9295b846b..000000000 --- a/internal/notification/mysql_repository_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification_test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/require" - "go.uber.org/zap" - - "github.com/bangumi/server/dal/query" - "github.com/bangumi/server/internal/notification" - "github.com/bangumi/server/internal/pkg/test" -) - -func getRepo(t *testing.T) notification.Repo { - t.Helper() - repo, err := notification.NewMysqlRepo(query.Use(test.GetGorm(t)), zap.NewNop()) - require.NoError(t, err) - - return repo -} - -func TestCount(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - ctx := context.Background() - _, err := repo.Count(ctx, 1) - require.NoError(t, err) -} diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index bdfa35ced..1706461a5 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -34,12 +34,10 @@ import ( "github.com/bangumi/server/internal/index" "github.com/bangumi/server/internal/mocks" "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/notification" "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/logger" - "github.com/bangumi/server/internal/pm" "github.com/bangumi/server/internal/revision" "github.com/bangumi/server/internal/search" "github.com/bangumi/server/internal/subject" @@ -52,25 +50,23 @@ import ( ) type Mock struct { - SubjectRepo subject.Repo - SubjectCachedRepo subject.CachedRepo - PersonRepo person.Repo - CharacterRepo character.Repo - AuthRepo auth.Repo - TagRepo tag.Repo - AuthService auth.Service - EpisodeRepo episode.Repo - UserRepo user.Repo - IndexRepo index.Repo - RevisionRepo revision.Repo - CollectionRepo collections.Repo - TimeLineSrv timeline.Service - SessionManager session.Manager - Cache cache.RedisCache - PrivateMessageRepo pm.Repo - NotificationRepo notification.Repo - HTTPMock *httpmock.MockTransport - Dam *dam.Dam + SubjectRepo subject.Repo + SubjectCachedRepo subject.CachedRepo + PersonRepo person.Repo + CharacterRepo character.Repo + AuthRepo auth.Repo + TagRepo tag.Repo + AuthService auth.Service + EpisodeRepo episode.Repo + UserRepo user.Repo + IndexRepo index.Repo + RevisionRepo revision.Repo + CollectionRepo collections.Repo + TimeLineSrv timeline.Service + SessionManager session.Manager + Cache cache.RedisCache + HTTPMock *httpmock.MockTransport + Dam *dam.Dam } //nolint:funlen @@ -106,8 +102,6 @@ func GetWebApp(tb testing.TB, m Mock) *echo.Echo { MockUserRepo(m.UserRepo), MockIndexRepo(m.IndexRepo), MockRevisionRepo(m.RevisionRepo), - MockPrivateMessageRepo(m.PrivateMessageRepo), - MockNoticationRepo(m.NotificationRepo), MockSessionManager(m.SessionManager), MockTimeLineSrv(m.TimeLineSrv), MockTagRepo(m.TagRepo), @@ -161,20 +155,6 @@ func MockIndexRepo(repo index.Repo) fx.Option { return fx.Supply(fx.Annotate(repo, fx.As(new(index.Repo)))) } -func MockPrivateMessageRepo(repo pm.Repo) fx.Option { - if repo == nil { - repo = &mocks.PrivateMessageRepo{} - } - return fx.Supply(fx.Annotate(repo, fx.As(new(pm.Repo)))) -} - -func MockNoticationRepo(repo notification.Repo) fx.Option { - if repo == nil { - repo = &mocks.NotificationRepo{} - } - return fx.Supply(fx.Annotate(repo, fx.As(new(notification.Repo)))) -} - func MockSessionManager(repo session.Manager) fx.Option { if repo == nil { mocker := &mocks.SessionManager{} diff --git a/internal/pm/domain.go b/internal/pm/domain.go deleted file mode 100644 index 2b04984a1..000000000 --- a/internal/pm/domain.go +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "context" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/null" -) - -type Repo interface { - List( - ctx context.Context, - userID model.UserID, - folder FolderType, - offset int, - limit int, - ) ([]PrivateMessageListItem, error) - - CountByFolder( - ctx context.Context, - userID model.UserID, - folder FolderType, - ) (int64, error) - - ListRelated( - ctx context.Context, - userID model.UserID, - id model.PrivateMessageID, - ) ([]PrivateMessage, error) - - CountTypes(ctx context.Context, userID model.UserID) (PrivateMessageTypeCounts, error) - - MarkRead(ctx context.Context, userID model.UserID, relatedID model.PrivateMessageID) error - - ListRecentContact(ctx context.Context, userID model.UserID) ([]model.UserID, error) - - Create( - ctx context.Context, - senderID model.UserID, - receiverIDs []model.UserID, - relatedIDFilter IDFilter, - title string, - content string, - ) ([]PrivateMessage, error) - - Delete( - ctx context.Context, - userID model.UserID, - ids []model.PrivateMessageID, - ) error -} - -type IDFilter struct { - Type null.Null[model.PrivateMessageID] -} diff --git a/internal/pm/error.go b/internal/pm/error.go deleted file mode 100644 index 88e7fd7f3..000000000 --- a/internal/pm/error.go +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "errors" -) - -var ErrPmNotOwned = errors.New("not sent or received this private message") -var ErrPmDeleted = errors.New("private message deleted") -var ErrPmUserIrrelevant = errors.New("has user irrelevant message") -var ErrPmRelatedNotExists = errors.New("related private message not exists") -var ErrPmInvalidOperation = errors.New("invalid operation") diff --git a/internal/pm/model.go b/internal/pm/model.go deleted file mode 100644 index b0d210ae7..000000000 --- a/internal/pm/model.go +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "time" - - "github.com/bangumi/server/internal/model" -) - -type FolderType string - -const ( - FolderTypeInbox FolderType = "inbox" - FolderTypeOutbox FolderType = "outbox" -) - -type PrivateMessage struct { - CreatedTime time.Time - Title string - Content string - Folder FolderType - SenderID model.UserID - ReceiverID model.UserID - ID model.PrivateMessageID - MainMessageID model.PrivateMessageID // 如果当前是首条私信,则为当前私信的id,否则为0 - RelatedMessageID model.PrivateMessageID // 首条私信的id - New bool - DeletedBySender bool - DeletedByReceiver bool -} - -type PrivateMessageListItem struct { - Main PrivateMessage - Self PrivateMessage -} - -type PrivateMessageTypeCounts struct { - Unread int64 - Inbox int64 - Outbox int64 -} diff --git a/internal/pm/mysql_repository.go b/internal/pm/mysql_repository.go deleted file mode 100644 index 4e519a8e2..000000000 --- a/internal/pm/mysql_repository.go +++ /dev/null @@ -1,492 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "context" - "time" - - "github.com/samber/lo" - "github.com/trim21/errgo" - "go.uber.org/zap" - "gorm.io/gen" - - "github.com/bangumi/server/dal/dao" - "github.com/bangumi/server/dal/query" - "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pkg/null" -) - -const recentContactLimit = 15 - -type mysqlRepo struct { - q *query.Query - log *zap.Logger -} - -func NewMysqlRepo(q *query.Query, log *zap.Logger) (Repo, error) { - return mysqlRepo{q: q, log: log.Named("pm.mysqlRepo")}, nil -} - -func (r mysqlRepo) List( - ctx context.Context, - userID model.UserID, - folder FolderType, - offset int, - limit int, -) ([]PrivateMessageListItem, error) { - var conds []gen.Condition - do := r.q.PrivateMessage.WithContext(ctx) - if folder == FolderTypeInbox { - conds = []gen.Condition{ - r.q.PrivateMessage.ReceiverID.Eq(userID), - r.q.PrivateMessage.DeletedByReceiver.Is(false), - } - } else { - conds = []gen.Condition{ - r.q.PrivateMessage.SenderID.Eq(userID), - r.q.PrivateMessage.DeletedBySender.Is(false), - } - } - ret, err := do. - Where( - conds..., - ).Order(r.q.PrivateMessage.ID.Desc()).Offset(offset).Limit(limit).Find() - - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return make([]PrivateMessageListItem, 0), errgo.Wrap(err, "dal") - } - - mainIDs := lo.Uniq(slice.Map(ret, func(v *dao.PrivateMessage) model.PrivateMessageID { - return v.RelatedMessageID - })) - - mainMsgList, err := do.Where(r.q.PrivateMessage.ID.In(mainIDs...)).Find() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return make([]PrivateMessageListItem, 0), errgo.Wrap(err, "dal") - } - mainMsgs := slice.ToMap(mainMsgList, func(v *dao.PrivateMessage) model.PrivateMessageID { - return v.ID - }) - return slice.Map(ret, func(v *dao.PrivateMessage) PrivateMessageListItem { - return PrivateMessageListItem{ - Main: convertDaoToModel(mainMsgs[v.RelatedMessageID]), - Self: convertDaoToModel(v), - } - }), nil -} - -func countByFolder(ctx context.Context, - q *query.Query, - userID model.UserID, - folder FolderType) (int64, error) { - var conds []gen.Condition - do := q.PrivateMessage.WithContext(ctx) - if folder == FolderTypeInbox { - conds = []gen.Condition{ - q.PrivateMessage.ReceiverID.Eq(userID), - q.PrivateMessage.DeletedByReceiver.Is(false), - } - } else { - conds = []gen.Condition{ - q.PrivateMessage.SenderID.Eq(userID), - q.PrivateMessage.DeletedBySender.Is(false), - } - } - count, err := do.Where(conds...).Count() - if err != nil { - return 0, errgo.Wrap(err, "dal") - } - return count, nil -} - -func (r mysqlRepo) CountByFolder(ctx context.Context, - userID model.UserID, - folder FolderType) (int64, error) { - count, err := countByFolder(ctx, r.q, userID, folder) - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return 0, err - } - return count, nil -} - -func (r mysqlRepo) getMainMsg( - ctx context.Context, - id model.PrivateMessageID, -) (*dao.PrivateMessage, error) { - do := r.q.PrivateMessage.WithContext(ctx) - msg, err := do.Where(r.q.PrivateMessage.ID.Eq(id)).Take() - if err != nil { - return nil, errgo.Wrap(err, "dal") - } - if msg == nil { - return nil, gerr.ErrNotFound - } - if msg.MainMessageID == 0 { - if msg.RelatedMessageID == 0 { - return nil, gerr.ErrNotFound - } - return r.getMainMsg(ctx, msg.RelatedMessageID) - } - return msg, nil -} - -func (r mysqlRepo) ListRelated( - ctx context.Context, - userID model.UserID, - id model.PrivateMessageID, -) ([]PrivateMessage, error) { - do := r.q.PrivateMessage.WithContext(ctx) - firstMsg, err := r.getMainMsg(ctx, id) - var emptyMsgList = make([]PrivateMessage, 0) - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return emptyMsgList, errgo.Wrap(err, "dal") - } - if firstMsg.SenderID != userID && firstMsg.ReceiverID != userID { - return emptyMsgList, ErrPmNotOwned - } - if (firstMsg.SenderID == userID && firstMsg.DeletedBySender) || - (firstMsg.ReceiverID == userID && firstMsg.DeletedByReceiver) { - return emptyMsgList, ErrPmDeleted - } - res, err := do.Where( - r.q.PrivateMessage.RelatedMessageID.Eq(firstMsg.ID), - do.Where( - do. - Where( - r.q.PrivateMessage.SenderID.Eq(userID), - r.q.PrivateMessage.DeletedBySender.Is(false), - ), - ). - Or( - r.q.PrivateMessage.ReceiverID.Eq(userID), - r.q.PrivateMessage.DeletedByReceiver.Is(false), - ), - ). - Find() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return emptyMsgList, errgo.Wrap(err, "dal") - } - return slice.Map(res, convertDaoToModel), nil -} - -func (r mysqlRepo) CountTypes( - ctx context.Context, - userID model.UserID, -) (PrivateMessageTypeCounts, error) { - do := r.q.PrivateMessage.WithContext(ctx) - res := PrivateMessageTypeCounts{} - c1, err := r.CountByFolder(ctx, userID, FolderTypeOutbox) - if err != nil { - return res, err - } - c2, err := r.CountByFolder(ctx, userID, FolderTypeInbox) - if err != nil { - return res, err - } - c3, err := do.Where( - r.q.PrivateMessage.ReceiverID.Eq(userID), - r.q.PrivateMessage.DeletedBySender.Is(false), - r.q.PrivateMessage.New.Is(true)). - Count() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return res, errgo.Wrap(err, "dal") - } - res.Outbox = c1 - res.Inbox = c2 - res.Unread = c3 - return res, nil -} - -func (r mysqlRepo) ListRecentContact( - ctx context.Context, - userID model.UserID, -) ([]model.UserID, error) { - res, err := r.q.PrivateMessage. - WithContext(ctx). - Select(r.q.PrivateMessage.ReceiverID). - Where(r.q.PrivateMessage.SenderID.Eq(userID)). - Order(r.q.PrivateMessage.CreatedTime.Desc()). - Group(r.q.PrivateMessage.ReceiverID). - Limit(recentContactLimit). - Find() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return make([]model.UserID, 0), errgo.Wrap(err, "dal") - } - return slice.Map(res, func(v *dao.PrivateMessage) model.UserID { - return v.ReceiverID - }), nil -} - -func (r mysqlRepo) MarkRead(ctx context.Context, userID model.UserID, relatedID model.PrivateMessageID) error { - var affectedRows int64 - err := r.q.Transaction(func(tx *query.Query) error { - txCtx := tx.WithContext(ctx) - rows, err := txCtx.PrivateMessage. - Where( - tx.PrivateMessage.RelatedMessageID.Eq(relatedID), - tx.PrivateMessage.ReceiverID.Eq(userID), - tx.PrivateMessage.New.Is(true)). - Update(r.q.PrivateMessage.New, false) - if err != nil { - return errgo.Wrap(err, "dal") - } - affectedRows = rows.RowsAffected - if rows.RowsAffected != 0 { - count, err := countByFolder(ctx, tx, userID, FolderTypeInbox) - if err != nil { - return errgo.Wrap(err, "dal") - } - if count == 0 { - _, err = txCtx.Member.Where(tx.Member.ID.Eq(userID)).Update(tx.Member.Newpm, false) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - } - return nil - }) - - r.q.Member.WithContext(ctx) - - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return errgo.Wrap(err, "dal") - } - if affectedRows == 0 { - return ErrPmInvalidOperation - } - return nil -} - -func (r mysqlRepo) constructMsgs( - senderID model.UserID, - receiverIDs []model.UserID, - relatedIDFilter IDFilter, - title string, - content string, -) []*dao.PrivateMessage { - msgs := make([]*dao.PrivateMessage, len(receiverIDs)) - for i := range msgs { - msgs[i] = &dao.PrivateMessage{ - SenderID: senderID, - ReceiverID: receiverIDs[i], - Title: title, - Content: content, - New: true, - CreatedTime: uint32(time.Now().Unix()), - } - if relatedIDFilter.Type.Set { - msgs[i].RelatedMessageID = relatedIDFilter.Type.Value - } - } - return msgs -} - -func (r mysqlRepo) Create( - ctx context.Context, - senderID model.UserID, - receiverIDs []model.UserID, - relatedIDFilter IDFilter, - title string, - content string, -) ([]PrivateMessage, error) { - emptyList := make([]PrivateMessage, 0) - if relatedIDFilter.Type.Set { - if len(receiverIDs) > 1 { - return emptyList, ErrPmInvalidOperation - } - msg, err := r.getMainMsg(ctx, relatedIDFilter.Type.Value) - if (err != nil || msg.SenderID != senderID && msg.SenderID != receiverIDs[0]) || - (msg.ReceiverID != senderID && msg.ReceiverID != receiverIDs[0]) { - return emptyList, ErrPmRelatedNotExists - } - if msg.ID != relatedIDFilter.Type.Value { - relatedIDFilter = IDFilter{Type: null.New(msg.ID)} - } - } - msgs := r.constructMsgs(senderID, receiverIDs, relatedIDFilter, title, content) - res := emptyList - err := r.q.Transaction(func(tx *query.Query) error { - txCtx := tx.WithContext(ctx) - err := txCtx.PrivateMessage.Create(msgs...) - if err != nil { - return errgo.Wrap(err, "dal") - } - _, err = txCtx.Member.Where(tx.Member.ID.In(receiverIDs...)).Update(tx.Member.Newpm, true) - if err != nil { - return errgo.Wrap(err, "dal") - } - if !relatedIDFilter.Type.Set { - for i := range msgs { - msgs[i].MainMessageID = msgs[i].ID - msgs[i].RelatedMessageID = msgs[i].ID - } - err = txCtx.PrivateMessage.Save(msgs...) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - res = slice.Map(msgs, convertDaoToModel) - return nil - }) - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return res, errgo.Wrap(err, "dal") - } - return res, err -} - -func (r mysqlRepo) Delete( - ctx context.Context, - userID model.UserID, - ids []model.PrivateMessageID, -) error { - do := r.q.PrivateMessage.WithContext(ctx) - pms, err := do. - Where( - r.q.PrivateMessage.ID.In(ids...), - do.Where( - r.q.PrivateMessage.SenderID.Eq(userID)).Or(r.q.PrivateMessage.ReceiverID.Eq(userID)), - ).Find() - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return errgo.Wrap(err, "dal") - } - if len(pms) != len(ids) { - return ErrPmUserIrrelevant - } - err = r.q.Transaction(func(tx *query.Query) error { - err = handleReplyDeletes(ctx, tx, pms, userID) - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return err - } - err = handleMainDeletes(ctx, tx, pms, userID) - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return err - } - return nil - }) - - if err != nil { - r.log.Error("unexpected error", zap.Error(err)) - return errgo.Wrap(err, "dal") - } - - return nil -} - -func handleReplyDeletes(ctx context.Context, tx *query.Query, pms []*dao.PrivateMessage, userID model.UserID) error { - senderDeletes := slice.MapFilter(pms, func(v *dao.PrivateMessage) (uint32, bool) { - ok := !v.DeletedBySender && v.MainMessageID == 0 && v.SenderID == userID - if ok { - return v.ID, ok - } - return 0, false - }) - receiverDeletes := slice.MapFilter(pms, func(v *dao.PrivateMessage) (uint32, bool) { - ok := !v.DeletedByReceiver && v.MainMessageID == 0 && v.ReceiverID == userID - if ok { - return v.ID, ok - } - return 0, false - }) - txCtx := tx.WithContext(ctx) - if len(senderDeletes) != 0 { - _, err := txCtx.PrivateMessage.Where( - tx.PrivateMessage.ID.In(senderDeletes...), - ).Update(tx.PrivateMessage.DeletedBySender, true) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - if len(receiverDeletes) != 0 { - _, err := txCtx.PrivateMessage.Where( - tx.PrivateMessage.ID.In(receiverDeletes...), - ).Update(tx.PrivateMessage.DeletedByReceiver, true) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - return nil -} - -func handleMainDeletes(ctx context.Context, tx *query.Query, pms []*dao.PrivateMessage, userID model.UserID) error { - senderDeletes := slice.MapFilter(pms, func(v *dao.PrivateMessage) (uint32, bool) { - ok := v.MainMessageID != 0 && v.SenderID == userID - if ok { - return v.ID, ok - } - return 0, false - }) - receiverDeletes := slice.MapFilter(pms, func(v *dao.PrivateMessage) (uint32, bool) { - ok := v.MainMessageID != 0 && v.ReceiverID == userID - if ok { - return v.ID, ok - } - return 0, false - }) - txCtx := tx.WithContext(ctx) - if len(senderDeletes) != 0 { - _, err := txCtx.PrivateMessage.Where( - tx.PrivateMessage.RelatedMessageID.In(senderDeletes...), - tx.PrivateMessage.DeletedBySender.Is(false), - ).Update(tx.PrivateMessage.DeletedBySender, true) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - if len(receiverDeletes) != 0 { - _, err := txCtx.PrivateMessage.Where( - tx.PrivateMessage.RelatedMessageID.In(receiverDeletes...), - tx.PrivateMessage.DeletedByReceiver.Is(false), - ).Update(tx.PrivateMessage.DeletedByReceiver, true) - if err != nil { - return errgo.Wrap(err, "dal") - } - } - return nil -} - -func convertDaoToModel(d *dao.PrivateMessage) PrivateMessage { - if d == nil { - return PrivateMessage{} - } - return PrivateMessage{ - CreatedTime: time.Unix(int64(d.CreatedTime), 0), - Title: d.Title, - Content: d.Content, - Folder: FolderType(d.Folder), - SenderID: d.SenderID, - ReceiverID: d.ReceiverID, - ID: d.ID, - MainMessageID: d.MainMessageID, - RelatedMessageID: d.RelatedMessageID, - New: d.New, - DeletedBySender: d.DeletedBySender, - DeletedByReceiver: d.DeletedByReceiver, - } -} diff --git a/internal/pm/mysql_repository_test.go b/internal/pm/mysql_repository_test.go deleted file mode 100644 index 5b2483386..000000000 --- a/internal/pm/mysql_repository_test.go +++ /dev/null @@ -1,263 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm_test - -import ( - "context" - "testing" - - "github.com/stretchr/testify/require" - "go.uber.org/zap" - - "github.com/bangumi/server/dal/query" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/internal/pkg/test" - "github.com/bangumi/server/internal/pm" -) - -func getRepo(t *testing.T) pm.Repo { - t.Helper() - repo, err := pm.NewMysqlRepo(query.Use(test.GetGorm(t)), zap.NewNop()) - require.NoError(t, err) - - return repo -} - -func mapToID(msg pm.PrivateMessage) model.PrivateMessageID { - return msg.ID -} - -func mockMessage( - ctx context.Context, - t *testing.T, - repo pm.Repo, - relatedID *model.PrivateMessageID, - senderID model.UserID, - receiverID model.UserID, -) pm.PrivateMessage { - t.Helper() - m, err := repo.Create( - ctx, - senderID, - []model.UserID{receiverID}, - pm.IDFilter{Type: null.NewFromPtr(relatedID)}, - "title", - "content", - ) - require.NoError(t, err) - require.NotEmpty(t, m) - t.Cleanup(func() { - err = repo.Delete(ctx, senderID, slice.Map(m, mapToID)) - require.NoError(t, err) - err = repo.Delete(ctx, receiverID, slice.Map(m, mapToID)) - require.NoError(t, err) - }) - return m[0] -} - -func TestListInbox(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - - m := mockMessage(ctx, t, repo, nil, 1, 382951) - - list, err := repo.List(ctx, 382951, pm.FolderTypeInbox, 0, 10) - require.NoError(t, err) - require.NotEmpty(t, list) - require.LessOrEqual(t, m.ID, list[0].Self.ID) -} - -func TestListOutbox(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - - m := mockMessage(ctx, t, repo, nil, 1, 382951) - - list, err := repo.List(ctx, 1, pm.FolderTypeOutbox, 0, 10) - require.NoError(t, err) - require.NotEmpty(t, list) - require.LessOrEqual(t, m.ID, list[0].Self.ID) -} - -func TestListRelated(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - msg := mockMessage(ctx, t, repo, nil, 1, 382951) - - msg2 := mockMessage(ctx, t, repo, &msg.ID, 382951, 1) - - list, err := repo.ListRelated(ctx, 1, msg.ID) - require.NoError(t, err) - require.Len(t, list, 2) - require.Equal(t, msg2.ID, list[len(list)-1].ID) - - // 使用非首条信息作查询 - list, err = repo.ListRelated(ctx, 382951, msg2.ID) - require.NoError(t, err) - require.Len(t, list, 2) - require.Equal(t, msg.ID, list[0].ID) -} - -func TestCountTypes(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - ctx := context.Background() - prevCounts, err := repo.CountTypes(ctx, 5) - require.NoError(t, err) - prevCounts2, err := repo.CountTypes(ctx, 4) - require.NoError(t, err) - mockMessage(ctx, t, repo, nil, 5, 4) - counts, err := repo.CountTypes(ctx, 5) - require.NoError(t, err) - counts2, err := repo.CountTypes(ctx, 4) - require.NoError(t, err) - require.Less(t, prevCounts.Outbox, counts.Outbox) - require.Less(t, prevCounts2.Unread, counts2.Unread) - require.Less(t, prevCounts2.Inbox, counts2.Inbox) -} - -func TestListRecentContact(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - - mockMessage(ctx, t, repo, nil, 1, 382951) - - list, err := repo.ListRecentContact(ctx, 1) - require.NoError(t, err) - require.NotEmpty(t, list) - require.Contains(t, list, model.UserID(382951)) -} - -func TestMarkRead(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - msg := mockMessage(ctx, t, repo, nil, 1, 382951) - err := repo.MarkRead(ctx, 382951, msg.ID) - require.NoError(t, err) - msgs, err := repo.ListRelated(ctx, 1, msg.ID) - require.NoError(t, err) - require.Len(t, msgs, 1) - require.Equal(t, false, msgs[0].New) -} - -func TestCreate(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - - ctx := context.Background() - - mainMsgs, err := repo.Create( - ctx, - 1, - []model.UserID{382951, 2}, - pm.IDFilter{Type: null.NewFromPtr[model.PrivateMessageID](nil)}, - "私信", - "内容", - ) - require.NoError(t, err) - require.Len(t, mainMsgs, 2) - - msgs := mainMsgs - - // reply - replyMsgs, err := repo.Create(ctx, 382951, []model.UserID{1}, pm.IDFilter{ - Type: null.New(mainMsgs[0].ID), - }, "私信回复", "内容") - - require.NoError(t, err) - require.Len(t, replyMsgs, 1) - require.Equal(t, mainMsgs[0].ID, replyMsgs[0].RelatedMessageID) - - msgs = append(msgs, replyMsgs...) - - _, err = repo.Create(ctx, 382951, []model.UserID{2}, pm.IDFilter{ - Type: null.New(mainMsgs[1].ID), - }, "私信回复", "发给错误的人") - - require.Error(t, err) - - msgsNotMain, err := repo.Create(ctx, 1, []model.UserID{382951}, pm.IDFilter{ - Type: null.New(replyMsgs[0].ID), - }, "私信回复", "使用非首条信息的id作为related id") - - require.NoError(t, err) - require.Len(t, msgsNotMain, 1) - require.Equal(t, mainMsgs[0].ID, msgsNotMain[0].RelatedMessageID) - msgs = append(msgs, msgsNotMain...) - - t.Cleanup(func() { - for _, msg := range msgs { - err = repo.Delete(ctx, msg.SenderID, slice.Map([]pm.PrivateMessage{msg}, mapToID)) - require.NoError(t, err) - err = repo.Delete(ctx, msg.ReceiverID, slice.Map([]pm.PrivateMessage{msg}, mapToID)) - require.NoError(t, err) - } - }) -} - -func TestDelete(t *testing.T) { - test.RequireEnv(t, test.EnvMysql) - t.Parallel() - - repo := getRepo(t) - ctx := context.Background() - res, err := repo.Create( - ctx, - 1, - []model.UserID{382951}, - pm.IDFilter{Type: null.NewFromPtr[model.PrivateMessageID](nil)}, - "私信", - "内容", - ) - require.NoError(t, err) - require.Len(t, res, 1) - err = repo.Delete(ctx, 1, []model.PrivateMessageID{res[0].ID}) - require.NoError(t, err) - _, err = repo.ListRelated(ctx, 1, res[0].ID) - require.Error(t, err) - res, err = repo.ListRelated(ctx, 382951, res[0].ID) - require.NoError(t, err) - require.Len(t, res, 1) - t.Cleanup(func() { - err := repo.Delete(ctx, 382951, []model.PrivateMessageID{res[0].ID}) - require.NoError(t, err) - }) -} diff --git a/web/handler/fx.go b/web/handler/fx.go index c1256503a..44d20b6f9 100644 --- a/web/handler/fx.go +++ b/web/handler/fx.go @@ -20,9 +20,7 @@ import ( "github.com/bangumi/server/web/handler/character" "github.com/bangumi/server/web/handler/common" "github.com/bangumi/server/web/handler/index" - "github.com/bangumi/server/web/handler/notification" "github.com/bangumi/server/web/handler/person" - "github.com/bangumi/server/web/handler/pm" "github.com/bangumi/server/web/handler/subject" "github.com/bangumi/server/web/handler/user" ) @@ -36,7 +34,5 @@ var Module = fx.Module("handler", subject.New, character.New, index.New, - pm.New, - notification.New, ), ) diff --git a/web/handler/notification/count.go b/web/handler/notification/count.go deleted file mode 100644 index a73408762..000000000 --- a/web/handler/notification/count.go +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification - -import ( - "net/http" - - "github.com/labstack/echo/v4" - "github.com/trim21/errgo" - - "github.com/bangumi/server/web/accessor" -) - -func (h Notification) Count(c echo.Context) error { - auth := accessor.GetFromCtx(c) - count, err := h.notificationRepo.Count(c.Request().Context(), auth.ID) - if err != nil { - return errgo.Wrap(err, "failed to count notification") - } - return c.JSON(http.StatusOK, count) -} diff --git a/web/handler/notification/notification.go b/web/handler/notification/notification.go deleted file mode 100644 index 043f66c2e..000000000 --- a/web/handler/notification/notification.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification - -import ( - "go.uber.org/zap" - - "github.com/bangumi/server/ctrl" - "github.com/bangumi/server/internal/notification" - "github.com/bangumi/server/web/handler/common" -) - -type Notification struct { - ctrl ctrl.Ctrl - common.Common - notificationRepo notification.Repo - log *zap.Logger -} - -func New( - common common.Common, - notificationRepo notification.Repo, - ctrl ctrl.Ctrl, - log *zap.Logger, -) (Notification, error) { - return Notification{ - Common: common, - ctrl: ctrl, - notificationRepo: notificationRepo, - log: log.Named("handler.Notification"), - }, nil -} diff --git a/web/handler/notification/notification_test.go b/web/handler/notification/notification_test.go deleted file mode 100644 index c261926d9..000000000 --- a/web/handler/notification/notification_test.go +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package notification_test - -import ( - "encoding/json" - "net/http" - "testing" - - "github.com/labstack/echo/v4" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "github.com/trim21/htest" - - "github.com/bangumi/server/internal/auth" - "github.com/bangumi/server/internal/mocks" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/test" - "github.com/bangumi/server/web/session" -) - -func TestNotification_Count(t *testing.T) { - t.Parallel() - m := mocks.NewNotificationRepo(t) - m.EXPECT().Count( - mock.Anything, - model.UserID(1), - ).Return(0, nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "11").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{NotificationRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=11"). - Get("/p/notifications/count"). - ExpectCode(http.StatusOK) - - var v int - err := json.Unmarshal(resp.Body, &v) - require.NoError(t, err) -} diff --git a/web/handler/pm/count_types.go b/web/handler/pm/count_types.go deleted file mode 100644 index 6b8fba32e..000000000 --- a/web/handler/pm/count_types.go +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "net/http" - - "github.com/labstack/echo/v4" - - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) CountTypes(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - counts, err := h.pmRepo.CountTypes(c.Request().Context(), accessor.ID) - if err != nil { - return res.InternalError(c, err, "failed to count private message types") - } - return c.JSON(http.StatusOK, res.PrivateMessageTypeCounts{ - Unread: counts.Unread, - Inbox: counts.Inbox, - Outbox: counts.Outbox, - }) -} diff --git a/web/handler/pm/create.go b/web/handler/pm/create.go deleted file mode 100644 index b6d5261ea..000000000 --- a/web/handler/pm/create.go +++ /dev/null @@ -1,75 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "errors" - "net/http" - - "github.com/labstack/echo/v4" - "github.com/samber/lo" - - "github.com/bangumi/server/ctrl" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) Create(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - var r req.PrivateMessageCreate - if err := c.Echo().JSONSerializer.Deserialize(c, &r); err != nil { - return res.JSONError(c, err) - } - - if err := h.Common.V.Struct(r); err != nil { - return h.ValidationError(c, err) - } - receiverIDs := slice.Map(r.ReceiverIDs, func(v uint32) model.UserID { return v }) - - msgs, err := h.ctrl.CreatePrivateMessage( - c.Request().Context(), - accessor.ID, - receiverIDs, - pm.IDFilter{Type: null.NewFromPtr(r.RelatedID)}, - r.Title, - r.Content) - if err != nil { - switch { - case errors.Is(err, ctrl.ErrPmBlocked): - case errors.Is(err, ctrl.ErrPmNotAFriend): - case errors.Is(err, ctrl.ErrPmNotAllReceiversExist): - case errors.Is(err, ctrl.ErrPmReceiverReject): - case errors.Is(err, pm.ErrPmRelatedNotExists): - case errors.Is(err, pm.ErrPmInvalidOperation): - return res.BadRequest(err.Error()) - } - return res.InternalError(c, err, "failed to create private message(s)") - } - userIDs := make([]model.UserID, len(r.ReceiverIDs)+1) - copy(userIDs, receiverIDs) - userIDs[len(userIDs)-1] = accessor.ID - users, err := h.u.GetByIDs(c.Request().Context(), lo.Uniq(userIDs)) - if err != nil { - return res.InternalError(c, err, "failed to get users") - } - return c.JSON(http.StatusOK, slice.Map(msgs, func(v pm.PrivateMessage) res.PrivateMessage { - return res.ConvertModelPrivateMessage(v, users) - })) -} diff --git a/web/handler/pm/delete.go b/web/handler/pm/delete.go deleted file mode 100644 index 8c6c10944..000000000 --- a/web/handler/pm/delete.go +++ /dev/null @@ -1,55 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "errors" - "net/http" - - "github.com/labstack/echo/v4" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) Delete(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - var r req.PrivateMessageDelete - if err := c.Echo().JSONSerializer.Deserialize(c, &r); err != nil { - return res.JSONError(c, err) - } - - if err := h.Common.V.Struct(r); err != nil { - return h.ValidationError(c, err) - } - err := h.pmRepo. - Delete( - c.Request().Context(), - accessor.ID, - slice.Map(r.IDs, func(v uint32) model.PrivateMessageID { - return v - })) - if err != nil { - if errors.Is(err, pm.ErrPmUserIrrelevant) { - return res.BadRequest(err.Error()) - } - return res.InternalError(c, err, "failed to delete private message(s)") - } - return c.NoContent(http.StatusNoContent) -} diff --git a/web/handler/pm/list.go b/web/handler/pm/list.go deleted file mode 100644 index 3d81beac4..000000000 --- a/web/handler/pm/list.go +++ /dev/null @@ -1,81 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "net/http" - - "github.com/labstack/echo/v4" - "github.com/samber/lo" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) List(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - folder, err := req.ParsePrivateMessageFolder(c.QueryParam("folder")) - if err != nil { - return err - } - page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) - if err != nil { - return err - } - ctx := c.Request().Context() - count, err := h.pmRepo.CountByFolder(ctx, accessor.ID, folder) - if err != nil { - return res.InternalError(c, err, "failed to count private messages") - } - list, err := h.pmRepo.List(ctx, accessor.ID, folder, page.Offset, page.Limit) - if err != nil { - return res.InternalError(c, err, "failed to list private messages") - } - if len(list) == 0 { - return c.JSON(http.StatusOK, res.Paged{ - Data: make([]res.PrivateMessage, 0), - Total: count, - Limit: page.Limit, - Offset: page.Offset, - }) - } - userIDs := make([]model.UserID, len(list)+1) - for i := range list { - if folder == pm.FolderTypeInbox { - userIDs[i] = list[i].Self.SenderID - } else { - userIDs[i] = list[i].Self.ReceiverID - } - } - userIDs[len(userIDs)-1] = accessor.ID - userIDs = lo.Uniq(userIDs) - users, err := h.u.GetByIDs(c.Request().Context(), userIDs) - if err != nil { - return res.InternalError(c, err, "failed to get users") - } - data := slice.Map(list, func(v pm.PrivateMessageListItem) res.PrivateMessage { - return res.ConvertModelPrivateMessageListItem(v, users) - }) - return c.JSON(http.StatusOK, res.Paged{ - Data: data, - Total: count, - Limit: page.Limit, - Offset: page.Offset, - }) -} diff --git a/web/handler/pm/list_recent_contact.go b/web/handler/pm/list_recent_contact.go deleted file mode 100644 index 07f88db30..000000000 --- a/web/handler/pm/list_recent_contact.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "net/http" - - "github.com/labstack/echo/v4" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) ListRecentContact(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - contactIDs, err := h.pmRepo.ListRecentContact(c.Request().Context(), accessor.ID) - if err != nil { - return res.InternalError(c, err, "failed to list recent contact") - } - contacts, err := h.u.GetByIDs(c.Request().Context(), contactIDs) - if err != nil { - return res.InternalError(c, err, "failed to get contacts") - } - return c.JSON(http.StatusOK, slice.MapFilter(contactIDs, func(v model.UserID) (res.User, bool) { - if m, ok := contacts[v]; ok { - return res.ConvertModelUser(m), ok - } - return res.User{}, false - })) -} diff --git a/web/handler/pm/list_related.go b/web/handler/pm/list_related.go deleted file mode 100644 index 9e436fa2c..000000000 --- a/web/handler/pm/list_related.go +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "errors" - "net/http" - - "github.com/labstack/echo/v4" - - "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/generic/slice" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) ListRelated(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - relatedID, err := req.ParseID(c.Param("id")) - if err != nil { - return err - } - list, err := h.pmRepo.ListRelated(c.Request().Context(), accessor.ID, relatedID) - if err != nil { - switch { - case errors.Is(err, gerr.ErrNotFound): - return res.ErrNotFound - case errors.Is(err, pm.ErrPmDeleted): - case errors.Is(err, pm.ErrPmNotOwned): - return res.BadRequest(err.Error()) - } - return res.InternalError(c, err, "failed to list related private messages") - } - userIDs := []model.UserID{list[0].SenderID, list[0].ReceiverID} - users, err := h.u.GetByIDs(c.Request().Context(), userIDs) - if err != nil { - return res.InternalError(c, err, "failed to get users") - } - data := slice.Map(list, func(v pm.PrivateMessage) res.PrivateMessage { - return res.ConvertModelPrivateMessage(v, users) - }) - return c.JSON(http.StatusOK, data) -} diff --git a/web/handler/pm/mark_read.go b/web/handler/pm/mark_read.go deleted file mode 100644 index 0386ef4ca..000000000 --- a/web/handler/pm/mark_read.go +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "errors" - "net/http" - - "github.com/labstack/echo/v4" - - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/res" -) - -func (h PrivateMessage) MarkRead(c echo.Context) error { - accessor := accessor.GetFromCtx(c) - var r req.PrivateMessageMarkRead - if err := c.Echo().JSONSerializer.Deserialize(c, &r); err != nil { - return res.JSONError(c, err) - } - - if err := h.Common.V.Struct(r); err != nil { - return h.ValidationError(c, err) - } - err := h.pmRepo.MarkRead(c.Request().Context(), accessor.ID, r.ID) - if err != nil { - if errors.Is(err, pm.ErrPmInvalidOperation) { - return res.BadRequest(err.Error()) - } - return res.InternalError(c, err, "failed to mark private message(s) read") - } - return c.NoContent(http.StatusNoContent) -} diff --git a/web/handler/pm/pm.go b/web/handler/pm/pm.go deleted file mode 100644 index 9fbbe71ee..000000000 --- a/web/handler/pm/pm.go +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm - -import ( - "go.uber.org/zap" - - "github.com/bangumi/server/ctrl" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/internal/user" - "github.com/bangumi/server/web/handler/common" -) - -type PrivateMessage struct { - ctrl ctrl.Ctrl - common.Common - pmRepo pm.Repo - u user.Repo - log *zap.Logger -} - -func New( - common common.Common, - pmRepo pm.Repo, - ctrl ctrl.Ctrl, - user user.Repo, - log *zap.Logger, -) (PrivateMessage, error) { - return PrivateMessage{ - Common: common, - ctrl: ctrl, - u: user, - pmRepo: pmRepo, - log: log.Named("handler.PrivateMessage"), - }, nil -} diff --git a/web/handler/pm/pm_test.go b/web/handler/pm/pm_test.go deleted file mode 100644 index 3f725a101..000000000 --- a/web/handler/pm/pm_test.go +++ /dev/null @@ -1,215 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package pm_test - -import ( - "net/http" - "testing" - - "github.com/labstack/echo/v4" - "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - "github.com/trim21/htest" - - "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/internal/auth" - "github.com/bangumi/server/internal/mocks" - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/internal/pkg/test" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/web/req" - "github.com/bangumi/server/web/session" -) - -func TestPrivateMessage_List(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().CountByFolder(mock.Anything, model.UserID(1), pm.FolderTypeInbox).Return(1, nil) - m.EXPECT().List( - mock.Anything, - model.UserID(1), - pm.FolderTypeInbox, - 0, - 10, - ).Return([]pm.PrivateMessageListItem{ - { - Main: pm.PrivateMessage{}, - Self: pm.PrivateMessage{}, - }, - }, nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "11").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=11"). - Get("/p/pms/list?offset=0&limit=10&folder=inbox") - - require.Equal(t, http.StatusOK, resp.StatusCode) -} - -func TestPrivateMessage_ListRelated(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().ListRelated( - mock.Anything, - model.UserID(1), - model.PrivateMessageID(1), - ).Return([]pm.PrivateMessage{}, gerr.ErrNotFound) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "11").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=11"). - Get("/p/pms/related-msgs/1") - - require.Equal(t, http.StatusNotFound, resp.StatusCode) -} - -func TestPrivateMessage_ListRecentContact(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().ListRecentContact( - mock.Anything, - model.UserID(1), - ).Return([]model.UserID{}, nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "11").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=11"). - Get("/p/pms/contacts/recent") - - require.Equal(t, http.StatusOK, resp.StatusCode) -} - -func TestPrivateMessage_CountTypes(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().CountTypes( - mock.Anything, - model.UserID(1), - ).Return(pm.PrivateMessageTypeCounts{}, nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "111").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=111"). - Get("/p/pms/counts") - - require.Equal(t, http.StatusOK, resp.StatusCode) -} - -func TestPrivateMessage_MarkRead(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().MarkRead( - mock.Anything, - model.UserID(1), - model.PrivateMessageID(1), - ).Return(nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "11").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=11"). - BodyJSON(req.PrivateMessageMarkRead{ID: 1}). - Patch("/p/pms/read") - - require.Equal(t, http.StatusNoContent, resp.StatusCode) -} - -func TestPrivateMessage_Create(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().Create( - mock.Anything, - model.UserID(1), - []model.UserID{382951}, - pm.IDFilter{Type: null.NewFromPtr[model.PrivateMessageID](nil)}, - "测试标题", - "测试内容", - ).Return([]pm.PrivateMessage{}, nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "111").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=111"). - BodyJSON(req.PrivateMessageCreate{Title: "测试标题", Content: "测试内容", ReceiverIDs: []uint32{382951}}). - Post("/p/pms") - - require.Equal(t, http.StatusOK, resp.StatusCode) -} - -func TestPrivateMessage_Delete(t *testing.T) { - t.Parallel() - m := mocks.NewPrivateMessageRepo(t) - m.EXPECT().Delete( - mock.Anything, - model.UserID(1), - []model.PrivateMessageID{1}, - ).Return(nil) - - mockAuth := mocks.NewAuthService(t) - mockAuth.EXPECT().GetByID(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - - s := mocks.NewSessionManager(t) - s.EXPECT().Get(mock.Anything, "111").Return(session.Session{UserID: 1}, nil) - - app := test.GetWebApp(t, test.Mock{PrivateMessageRepo: m, AuthService: mockAuth, SessionManager: s}) - - resp := htest.New(t, app). - Header(echo.HeaderCookie, "chiiNextSessionID=111"). - BodyJSON(req.PrivateMessageDelete{IDs: []uint32{1}}). - Delete("/p/pms") - - require.Equal(t, http.StatusNoContent, resp.StatusCode) -} diff --git a/web/req/query_parse.go b/web/req/query_parse.go index 63a0fa085..7afac3334 100644 --- a/web/req/query_parse.go +++ b/web/req/query_parse.go @@ -21,7 +21,6 @@ import ( "github.com/bangumi/server/internal/episode" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/gstr" - "github.com/bangumi/server/internal/pm" "github.com/bangumi/server/pkg/vars" "github.com/bangumi/server/web/res" ) @@ -123,17 +122,3 @@ func ParseEpTypeOptional(s string) (*episode.Type, error) { return nil, res.BadRequest(strconv.Quote(s) + " is not valid episode type") } - -func ParsePrivateMessageFolder(s string) (pm.FolderType, error) { - v := pm.FolderType(s) - switch v { - case pm.FolderTypeInbox, - pm.FolderTypeOutbox: - return v, nil - } - return v, res.BadRequest( - "folder must be " + - string(pm.FolderTypeInbox) + - " or " + - string(pm.FolderTypeOutbox)) -} diff --git a/web/res/pm.go b/web/res/pm.go deleted file mode 100644 index 9fe196376..000000000 --- a/web/res/pm.go +++ /dev/null @@ -1,71 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package res - -import ( - "time" - - "github.com/samber/lo" - - "github.com/bangumi/server/internal/model" - "github.com/bangumi/server/internal/pm" - "github.com/bangumi/server/internal/user" -) - -type PrivateMessage struct { - CreatedAt time.Time `json:"created_at"` - RelatedMessage *PrivateMessage `json:"related_message,omitempty"` - Sender *User `json:"sender,omitempty"` - Receiver *User `json:"receiver,omitempty"` - Title string `json:"title"` - Content string `json:"content"` - ID uint32 `json:"id"` - New bool `json:"new"` -} - -type PrivateMessageTypeCounts struct { - Unread int64 `json:"unread"` - Inbox int64 `json:"inbox"` - Outbox int64 `json:"outbox"` -} - -func ConvertModelPrivateMessage(item pm.PrivateMessage, users map[model.UserID]user.User) PrivateMessage { - msg := PrivateMessage{ - CreatedAt: item.CreatedTime, - Title: item.Title, - Content: item.Content, - ID: item.ID, - New: item.New, - } - if users != nil { - if u, ok := users[item.SenderID]; ok { - msg.Sender = lo.ToPtr(ConvertModelUser(u)) - } - if u, ok := users[item.ReceiverID]; ok { - msg.Receiver = lo.ToPtr(ConvertModelUser(u)) - } - } - return msg -} - -func ConvertModelPrivateMessageListItem( - item pm.PrivateMessageListItem, - users map[model.UserID]user.User, -) PrivateMessage { - relatedMsg := ConvertModelPrivateMessage(item.Main, nil) - msg := ConvertModelPrivateMessage(item.Self, users) - msg.RelatedMessage = &relatedMsg - return msg -} diff --git a/web/routes.go b/web/routes.go index 2c3808fde..aac458e3c 100644 --- a/web/routes.go +++ b/web/routes.go @@ -15,8 +15,6 @@ package web import ( - "fmt" - "github.com/labstack/echo/v4" "github.com/bangumi/server/config" @@ -24,14 +22,10 @@ import ( "github.com/bangumi/server/web/handler/character" "github.com/bangumi/server/web/handler/common" "github.com/bangumi/server/web/handler/index" - "github.com/bangumi/server/web/handler/notification" "github.com/bangumi/server/web/handler/person" - "github.com/bangumi/server/web/handler/pm" "github.com/bangumi/server/web/handler/subject" "github.com/bangumi/server/web/handler/user" "github.com/bangumi/server/web/mw" - "github.com/bangumi/server/web/mw/origin" - "github.com/bangumi/server/web/mw/referer" "github.com/bangumi/server/web/mw/ua" "github.com/bangumi/server/web/req" ) @@ -47,8 +41,6 @@ func AddRouters( userHandler user.User, personHandler person.Person, characterHandler character.Character, - pmHandler pm.PrivateMessage, - notificationHandler notification.Notification, subjectHandler subject.Subject, indexHandler index.Handler, ) { @@ -130,29 +122,6 @@ func AddRouters( v0.GET("/revisions/episodes", h.ListEpisodeRevision) v0.Any("/*", globalNotFoundHandler) - var originMiddleware = origin.New(fmt.Sprintf("https://%s", c.WebDomain)) - var refererMiddleware = referer.New(fmt.Sprintf("https://%s/", c.WebDomain)) - - var CORSBlockMiddleware []echo.MiddlewareFunc - if c.WebDomain != "" { - CORSBlockMiddleware = []echo.MiddlewareFunc{originMiddleware, refererMiddleware} - } - - // frontend private api - private := app.Group("/p", append(CORSBlockMiddleware, common.MiddlewareSessionAuth)...) - - // TODO migrate this to bangumi/graphql - private.GET("/pms/list", pmHandler.List, mw.NeedLogin) - private.GET("/pms/related-msgs/:id", pmHandler.ListRelated, mw.NeedLogin) - private.GET("/pms/counts", pmHandler.CountTypes, mw.NeedLogin) - private.GET("/pms/contacts/recent", pmHandler.ListRecentContact, mw.NeedLogin) - private.PATCH("/pms/read", pmHandler.MarkRead) - private.POST("/pms", pmHandler.Create) - private.DELETE("/pms", pmHandler.Delete, req.JSON, mw.NeedLogin) - - private.GET("/notifications/count", notificationHandler.Count, mw.NeedLogin) - private.Any("/*", globalNotFoundHandler) - // default 404 Handler, all router should be added before this router app.Any("/*", globalNotFoundHandler) } From acd7007ebb33acad66884467f3beabb2be403f4f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 22:51:59 +0800 Subject: [PATCH 582/888] refactor: remove dead code (#758) --- internal/pkg/test/web.go | 15 ------- web/handler/common/common.go | 4 -- web/handler/common/session.go | 83 ----------------------------------- 3 files changed, 102 deletions(-) delete mode 100644 web/handler/common/session.go diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 1706461a5..44e3498fc 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -46,7 +46,6 @@ import ( "github.com/bangumi/server/internal/user" "github.com/bangumi/server/web" "github.com/bangumi/server/web/handler" - "github.com/bangumi/server/web/session" ) type Mock struct { @@ -63,7 +62,6 @@ type Mock struct { RevisionRepo revision.Repo CollectionRepo collections.Repo TimeLineSrv timeline.Service - SessionManager session.Manager Cache cache.RedisCache HTTPMock *httpmock.MockTransport Dam *dam.Dam @@ -102,7 +100,6 @@ func GetWebApp(tb testing.TB, m Mock) *echo.Echo { MockUserRepo(m.UserRepo), MockIndexRepo(m.IndexRepo), MockRevisionRepo(m.RevisionRepo), - MockSessionManager(m.SessionManager), MockTimeLineSrv(m.TimeLineSrv), MockTagRepo(m.TagRepo), @@ -155,18 +152,6 @@ func MockIndexRepo(repo index.Repo) fx.Option { return fx.Supply(fx.Annotate(repo, fx.As(new(index.Repo)))) } -func MockSessionManager(repo session.Manager) fx.Option { - if repo == nil { - mocker := &mocks.SessionManager{} - mocker.EXPECT().Create(mock.Anything, mock.Anything).Return("mocked random string", session.Session{}, nil) - mocker.EXPECT().Get(mock.Anything, mock.Anything).Return(session.Session{}, nil) - - repo = mocker - } - - return fx.Provide(func() session.Manager { return repo }) -} - func MockUserRepo(repo user.Repo) fx.Option { if repo == nil { return fx.Provide(AnyUserMock) diff --git a/web/handler/common/common.go b/web/handler/common/common.go index c8a448460..7a127d6db 100644 --- a/web/handler/common/common.go +++ b/web/handler/common/common.go @@ -21,13 +21,11 @@ import ( "github.com/bangumi/server/config" "github.com/bangumi/server/internal/auth" - "github.com/bangumi/server/web/session" ) func New( log *zap.Logger, auth auth.Service, - session session.Manager, config config.AppConfig, ) (Common, error) { validate, trans, err := getValidator() @@ -38,7 +36,6 @@ func New( log = log.Named("handler.Common") return Common{ Config: config, - session: session, auth: auth, log: log, skip1Log: log.WithOptions(zap.AddCallerSkip(1)), @@ -52,7 +49,6 @@ type Common struct { auth auth.Service skip1Log *zap.Logger log *zap.Logger - session session.Manager V *validator.Validate validatorTranslation ut.Translator } diff --git a/web/handler/common/session.go b/web/handler/common/session.go deleted file mode 100644 index aac0835fd..000000000 --- a/web/handler/common/session.go +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package common - -import ( - "errors" - "net/http" - - "github.com/labstack/echo/v4" - "github.com/trim21/errgo" - "go.uber.org/zap" - - "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/web/accessor" - "github.com/bangumi/server/web/cookie" - "github.com/bangumi/server/web/internal/ctxkey" - "github.com/bangumi/server/web/res" - "github.com/bangumi/server/web/session" - "github.com/bangumi/server/web/util" -) - -func (h Common) MiddlewareSessionAuth(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - var a = accessor.NewFromCtx(c) - defer a.Free() - - co, err := c.Cookie(session.CookieKey) - if err != nil { - return errgo.Wrap(err, "get cookie") - } - - if co.Value != "" { - s, err := h.getSession(c, co.Value) - if err != nil { - if errors.Is(err, session.ErrExpired) || errors.Is(err, gerr.ErrNotFound) { - cookie.Clear(c, session.CookieKey) - goto Next - } - - h.log.Error("failed to get session", zap.Error(err), a.Log()) - return c.JSON(http.StatusInternalServerError, - res.Error{ - Title: "internal server error", - Details: util.DetailWithErr(c, err), - Description: "failed to read session, please try clear your browser cookies and re-try", - }) - } - - auth, err := h.auth.GetByID(c.Request().Context(), s.UserID) - if err != nil { - return errgo.Wrap(err, "failed to user with permission") - } - - a.SetAuth(auth) - } - - Next: - c.Set(ctxkey.User, a) - - return next(c) - } -} - -func (h Common) getSession(c echo.Context, value string) (session.Session, error) { - s, err := h.session.Get(c.Request().Context(), value) - if err != nil { - return session.Session{}, errgo.Wrap(err, "sessionManager.get") - } - - return s, nil -} From 1a67e77aa70cda5aab0046f12c8c93d1fc545187 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 15 Mar 2025 23:12:46 +0800 Subject: [PATCH 583/888] refactor: remove dead code (#759) --- go.mod | 2 +- internal/auth/domain.go | 25 -- internal/auth/mysql_repository.go | 144 --------- internal/auth/mysql_repository_test.go | 90 +----- internal/auth/service.go | 122 +------- internal/auth/service_test.go | 15 - internal/mocks/AuthRepo.go | 300 ------------------ internal/mocks/AuthService.go | 413 ------------------------- 8 files changed, 8 insertions(+), 1103 deletions(-) diff --git a/go.mod b/go.mod index c328f42ca..fe90ca2b6 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,6 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.36.0 golang.org/x/text v0.23.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 @@ -111,6 +110,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect + golang.org/x/crypto v0.36.0 // indirect golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.36.0 // indirect diff --git a/internal/auth/domain.go b/internal/auth/domain.go index 78fed50ea..28f0c4860 100644 --- a/internal/auth/domain.go +++ b/internal/auth/domain.go @@ -28,35 +28,10 @@ type Repo interface { // GetByToken return an authorized user by a valid access token. GetByToken(ctx context.Context, token string) (UserInfo, error) GetPermission(ctx context.Context, groupID uint8) (Permission, error) - - CreateAccessToken( - ctx context.Context, userID model.UserID, name string, expiration time.Duration, - ) (token string, err error) - - ListAccessToken(ctx context.Context, userID model.UserID) ([]AccessToken, error) - DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) - - // GetByEmail return (Auth, HashedPassword, error) - GetByEmail(ctx context.Context, email string) (UserInfo, []byte, error) - GetTokenByID(ctx context.Context, id uint32) (AccessToken, error) } type Service interface { GetByToken(ctx context.Context, token string) (Auth, error) - GetByID(ctx context.Context, userID model.UserID) (Auth, error) - - ComparePassword(hashed []byte, password string) (bool, error) - - Login(ctx context.Context, email, password string) (Auth, bool, error) - - GetTokenByID(ctx context.Context, tokenID uint32) (AccessToken, error) - CreateAccessToken( - ctx context.Context, userID model.UserID, name string, expiration time.Duration, - ) (token string, err error) - ListAccessToken(ctx context.Context, userID model.UserID) ([]AccessToken, error) - DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) - - // GetPermission(ctx context.Context, id model.UserGroupID) (Permission, error) } type UserInfo struct { diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index 806743f75..25248fe8f 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -17,9 +17,7 @@ package auth import ( "context" "database/sql" - "encoding/json" "errors" - "strconv" "time" "github.com/jmoiron/sqlx" @@ -27,13 +25,9 @@ import ( "go.uber.org/zap" "gorm.io/gorm" - "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" "github.com/bangumi/server/domain/gerr" - "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/gstr" - "github.com/bangumi/server/internal/pkg/logger" - "github.com/bangumi/server/internal/pkg/random" "github.com/bangumi/server/internal/user" ) @@ -51,23 +45,6 @@ type mysqlRepo struct { log *zap.Logger } -func (m mysqlRepo) GetByEmail(ctx context.Context, email string) (UserInfo, []byte, error) { - u, err := m.q.Member.WithContext(ctx).Where(m.q.Member.Email.Eq(email)).Take() - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return UserInfo{}, nil, gerr.ErrNotFound - } - - return UserInfo{}, nil, errgo.Wrap(err, "gorm") - } - - return UserInfo{ - RegTime: time.Unix(u.Regdate, 0), - ID: u.ID, - GroupID: u.Groupid, - }, u.PasswordCrypt, nil -} - func (m mysqlRepo) GetByToken(ctx context.Context, token string) (UserInfo, error) { var access struct { UserID string `db:"user_id"` @@ -129,124 +106,3 @@ func (m mysqlRepo) GetPermission(ctx context.Context, groupID uint8) (Permission return p, nil } - -const defaultAccessTokenLength = 40 - -func (m mysqlRepo) CreateAccessToken( - ctx context.Context, id model.UserID, name string, expiration time.Duration, -) (string, error) { - token := random.Base62String(defaultAccessTokenLength) - var now = time.Now() - - var info = TokenInfo{ - Name: name, - CreatedAt: now, - } - - var expiredAt = now.Add(expiration) - if expiration < 0 { - expiredAt = time.Time{} - } - - infoByte, err := json.Marshal(info) - if err != nil { - // marshal simple struct should never fail - m.log.Fatal("marshal simple struct should never fail", - zap.Error(err), zap.String("name", name), zap.Time("now", now)) - panic("unexpected json encode error") - } - - err = m.q.AccessToken.WithContext(ctx).Create(&dao.AccessToken{ - Type: TokenTypeAccessToken, - AccessToken: token, - ClientID: "access token", - UserID: strconv.FormatUint(uint64(id), 10), - ExpiredAt: expiredAt, - Scope: nil, - Info: infoByte, - }) - if err != nil { - return "", errgo.Wrap(err, "dal") - } - - return token, nil -} - -type TokenInfo struct { - CreatedAt time.Time `json:"created_at"` - Name string `json:"name"` -} - -func (m mysqlRepo) ListAccessToken(ctx context.Context, userID model.UserID) ([]AccessToken, error) { - records, err := m.q.AccessToken.WithContext(ctx). - Where(m.q.AccessToken.UserID.Eq(strconv.FormatUint(uint64(userID), 10)), - m.q.AccessToken.ExpiredAt.Gte(time.Now())).Find() - if err != nil { - return nil, errgo.Wrap(err, "dal") - } - - var tokens = make([]AccessToken, len(records)) - for i, record := range records { - tokens[i] = convertAccessToken(record) - } - - return tokens, errgo.Wrap(err, "dal") -} - -const defaultOauthAccessExpiration = time.Hour * 168 - -func convertAccessToken(t *dao.AccessToken) AccessToken { - var createdAt time.Time - var name = "oauth token" - - switch t.Type { - case TokenTypeAccessToken: - if len(t.Info) > 0 { - var info TokenInfo - if err := json.Unmarshal(t.Info, &info); err != nil { - logger.Fatal("unexpected error when trying to unmarshal json data", - zap.Error(err), zap.ByteString("raw", t.Info)) - } - name = info.Name - createdAt = info.CreatedAt - } else { - name = "personal access token" - } - case TokenTypeOauthToken: - createdAt = t.ExpiredAt.Add(-defaultOauthAccessExpiration) - } - - v, err := strconv.ParseUint(t.UserID, 10, 32) - if err != nil { - logger.Fatal("parsing UserID", zap.String("raw", t.UserID), zap.Error(err)) - } - - return AccessToken{ - ExpiredAt: t.ExpiredAt, - CreatedAt: createdAt, - Name: name, - UserID: model.UserID(v), - ClientID: t.ClientID, - ID: t.ID, - } -} - -func (m mysqlRepo) DeleteAccessToken(ctx context.Context, id uint32) (bool, error) { - info, err := m.q.AccessToken.WithContext(ctx).Where(m.q.AccessToken.ID.Eq(id)).Delete() - - return info.RowsAffected > 0, errgo.Wrap(err, "dal.Delete") -} - -func (m mysqlRepo) GetTokenByID(ctx context.Context, id uint32) (AccessToken, error) { - record, err := m.q.AccessToken.WithContext(ctx).Where(m.q.AccessToken.ID.Eq(id)).Take() - if err != nil { - if errors.Is(err, gorm.ErrRecordNotFound) { - return AccessToken{}, gerr.ErrNotFound - } - - m.log.Error("unexpected error happened", zap.Error(err)) - return AccessToken{}, errgo.Wrap(err, "dal") - } - - return convertAccessToken(record), errgo.Wrap(err, "dal") -} diff --git a/internal/auth/mysql_repository_test.go b/internal/auth/mysql_repository_test.go index 0320de7ac..f954e7b2f 100644 --- a/internal/auth/mysql_repository_test.go +++ b/internal/auth/mysql_repository_test.go @@ -16,37 +16,33 @@ package auth_test import ( "context" - "strconv" "strings" "testing" - "time" "github.com/jmoiron/sqlx" "github.com/samber/lo" "github.com/stretchr/testify/require" "go.uber.org/zap" - "github.com/bangumi/server/dal/dao" "github.com/bangumi/server/dal/query" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/auth" - "github.com/bangumi/server/internal/pkg/gtime" "github.com/bangumi/server/internal/pkg/test" ) -func getRepo(t *testing.T) (auth.Repo, *query.Query) { +func getRepo(t *testing.T) auth.Repo { t.Helper() q := query.Use(test.GetGorm(t)) repo := auth.NewMysqlRepo(q, zap.NewNop(), sqlx.NewDb(lo.Must(q.DB().DB()), "mysql")) - return repo, q + return repo } func TestMysqlRepo_GetByToken_NotFound(t *testing.T) { test.RequireEnv(t, "mysql") t.Parallel() - repo, _ := getRepo(t) + repo := getRepo(t) _, err := repo.GetByToken(context.Background(), "not exist token") require.ErrorIs(t, err, gerr.ErrNotFound) @@ -56,7 +52,7 @@ func TestMysqlRepo_GetByToken(t *testing.T) { test.RequireEnv(t, "mysql") t.Parallel() - repo, _ := getRepo(t) + repo := getRepo(t) u, err := repo.GetByToken(context.Background(), "a_development_access_token") require.NoError(t, err) @@ -68,7 +64,7 @@ func TestMysqlRepo_GetByToken_case_sensitive(t *testing.T) { test.RequireEnv(t, "mysql") t.Parallel() - repo, _ := getRepo(t) + repo := getRepo(t) _, err := repo.GetByToken(context.Background(), strings.ToUpper("a_development_access_token")) require.ErrorIs(t, err, gerr.ErrNotFound) @@ -78,82 +74,8 @@ func TestMysqlRepo_GetByToken_expired(t *testing.T) { test.RequireEnv(t, "mysql") t.Parallel() - repo, _ := getRepo(t) + repo := getRepo(t) _, err := repo.GetByToken(context.Background(), "a_expired_token") require.ErrorIs(t, err, gerr.ErrNotFound) } - -func TestMysqlRepo_CreateAccessToken(t *testing.T) { - test.RequireEnv(t, "mysql") - t.Parallel() - - repo, q := getRepo(t) - t.Cleanup(func() { - _, err := q.AccessToken.WithContext(context.TODO()).Where(q.AccessToken.UserID.Eq("1")).Delete() - require.NoError(t, err) - }) - - token, err := repo.CreateAccessToken(context.Background(), 1, "token name", gtime.OneWeek) - require.NoError(t, err) - require.Len(t, token, 40) -} - -func TestMysqlRepo_DeleteAccessToken(t *testing.T) { - test.RequireEnv(t, "mysql") - t.Parallel() - - const id = 100 - repo, q := getRepo(t) - - cleanup := func() { - _, err := q.AccessToken.WithContext(context.TODO()).Where(q.AccessToken.ID.Eq(id)).Delete() - require.NoError(t, err) - } - t.Cleanup(cleanup) - - err := q.AccessToken.WithContext(context.Background()).Create(&dao.AccessToken{ - ID: id, - Type: auth.TokenTypeAccessToken, - AccessToken: t.Name(), - ClientID: "access token", - UserID: "2", - ExpiredAt: time.Now().Add(gtime.OneWeek), - Scope: nil, - Info: []byte{}, - }) - require.NoError(t, err) - - ok, err := repo.DeleteAccessToken(context.Background(), id) - require.NoError(t, err) - require.True(t, ok) -} - -func TestMysqlRepo_ListAccessToken(t *testing.T) { - test.RequireEnv(t, "mysql") - t.Parallel() - - repo, q := getRepo(t) - - test.RunAndCleanup(t, func() { - _, err := q.AccessToken.WithContext(context.TODO()).Where(q.AccessToken.UserID.Eq("3")).Delete() - require.NoError(t, err) - }) - - for i := 1; i < 5; i++ { - err := q.AccessToken.WithContext(context.Background()).Create(&dao.AccessToken{ - Type: auth.TokenTypeAccessToken, - AccessToken: t.Name() + strconv.Itoa(i), - ClientID: "access token", - UserID: "3", - ExpiredAt: time.Now().Add(gtime.OneWeek), - Scope: nil, - Info: []byte{}, - }) - require.NoError(t, err) - } - - tokens, err := repo.ListAccessToken(context.Background(), 3) - require.NoError(t, err) - require.Len(t, tokens, 4) -} diff --git a/internal/auth/service.go b/internal/auth/service.go index c07eb3333..7a1929694 100644 --- a/internal/auth/service.go +++ b/internal/auth/service.go @@ -15,19 +15,13 @@ package auth import ( - "context" - "crypto/md5" //nolint:gosec - "encoding/hex" - "errors" + "context" //nolint:gosec "time" "github.com/trim21/errgo" "go.uber.org/zap" - "golang.org/x/crypto/bcrypt" - "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/auth/internal/cachekey" - "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/user" ) @@ -53,77 +47,6 @@ type service struct { log *zap.Logger } -func (s service) GetByID(ctx context.Context, userID model.UserID) (Auth, error) { - var cacheKey = cachekey.User(userID) - - var a UserInfo - ok, err := s.cache.Get(ctx, cacheKey, &a) - if err != nil { - return Auth{}, errgo.Wrap(err, "cache.Get") - } - - if !ok { - var u user.User - u, err = s.user.GetByID(ctx, userID) - if err != nil { - return Auth{}, errgo.Wrap(err, "AuthRepo.GetByID") - } - - a = UserInfo{ - RegTime: u.RegistrationTime, - ID: u.ID, - GroupID: u.UserGroup, - } - - _ = s.cache.Set(ctx, cacheKey, a, time.Hour) - } - - permission, err := s.getPermission(ctx, a.GroupID) - if err != nil { - return Auth{}, err - } - - return Auth{ - Login: true, - RegTime: a.RegTime, - ID: a.ID, - GroupID: a.GroupID, - Permission: permission, - }, nil -} - -func (s service) Login(ctx context.Context, email, password string) (Auth, bool, error) { - var a, hashedPassword, err = s.repo.GetByEmail(ctx, email) - if err != nil { - if errors.Is(err, gerr.ErrNotFound) { - return Auth{}, false, nil - } - - return Auth{}, false, errgo.Wrap(err, "repo.GetByEmail") - } - - ok, err := s.ComparePassword(hashedPassword, password) - if err != nil { - s.log.Error("unexpected error when comparing password with bcrypt", zap.Error(err)) - return Auth{}, false, err - } - if !ok { - return Auth{}, false, nil - } - - p, err := s.getPermission(ctx, a.GroupID) - if err != nil { - return Auth{}, false, err - } - - return Auth{ - RegTime: a.RegTime, - ID: a.ID, - GroupID: a.GroupID, - Permission: p, - }, true, nil -} - func (s service) GetByToken(ctx context.Context, token string) (Auth, error) { var a UserInfo var cacheKey = cachekey.Auth(token) @@ -156,27 +79,6 @@ func (s service) GetByToken(ctx context.Context, token string) (Auth, error) { }, nil } -func (s service) ComparePassword(hashed []byte, password string) (bool, error) { - p := preProcessPassword(password) - - if err := bcrypt.CompareHashAndPassword(hashed, p); err != nil { - if errors.Is(err, bcrypt.ErrMismatchedHashAndPassword) { - return false, nil - } - - return false, errgo.Wrap(err, "bcrypt.CompareHashAndPassword") - } - - return true, nil -} - -func preProcessPassword(s string) []byte { - // don't know why old code base use md5 to hash password first - p := md5.Sum([]byte(s)) //nolint:gosec - - return []byte(hex.EncodeToString(p[:])) -} - func (s service) getPermission(ctx context.Context, id user.GroupID) (Permission, error) { p, ok := s.permCache.Get(ctx, id) @@ -193,25 +95,3 @@ func (s service) getPermission(ctx context.Context, id user.GroupID) (Permission return p, nil } - -func (s service) CreateAccessToken( - ctx context.Context, userID model.UserID, name string, expiration time.Duration, -) (string, error) { - token, err := s.repo.CreateAccessToken(ctx, userID, name, expiration) - return token, errgo.Wrap(err, "repo.CreateAccessToken") -} - -func (s service) ListAccessToken(ctx context.Context, userID model.UserID) ([]AccessToken, error) { - tokens, err := s.repo.ListAccessToken(ctx, userID) - return tokens, errgo.Wrap(err, "repo.ListAccessToken") -} - -func (s service) DeleteAccessToken(ctx context.Context, id uint32) (bool, error) { - result, err := s.repo.DeleteAccessToken(ctx, id) - return result, errgo.Wrap(err, "repo.DeleteAccessToken") -} - -func (s service) GetTokenByID(ctx context.Context, id uint32) (AccessToken, error) { - result, err := s.repo.GetTokenByID(ctx, id) - return result, errgo.Wrap(err, "repo.GetTokenByID") -} diff --git a/internal/auth/service_test.go b/internal/auth/service_test.go index 3ba320bfe..fdd69e47e 100644 --- a/internal/auth/service_test.go +++ b/internal/auth/service_test.go @@ -29,21 +29,6 @@ import ( "github.com/bangumi/server/internal/user" ) -func getService() auth.Service { - return auth.NewService(nil, nil, zap.NewNop(), cache.NewNoop()) -} - -func TestService_ComparePassword(t *testing.T) { - t.Parallel() - s := getService() - var hashed = []byte("$2a$12$GA5Pr9GhsyLJcSPoTpYBY.JqTzYZb2nfgSeZ1EK38bfgk/Rykkvuq") - var input = "lovemeplease" - - eq, err := s.ComparePassword(hashed, input) - require.NoError(t, err) - require.True(t, eq) -} - func TestService_GetByToken(t *testing.T) { t.Parallel() diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index d9911caad..342d624b4 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -8,8 +8,6 @@ import ( auth "github.com/bangumi/server/internal/auth" mock "github.com/stretchr/testify/mock" - - time "time" ) // AuthRepo is an autogenerated mock type for the Repo type @@ -25,188 +23,6 @@ func (_m *AuthRepo) EXPECT() *AuthRepo_Expecter { return &AuthRepo_Expecter{mock: &_m.Mock} } -// CreateAccessToken provides a mock function with given fields: ctx, userID, name, expiration -func (_m *AuthRepo) CreateAccessToken(ctx context.Context, userID uint32, name string, expiration time.Duration) (string, error) { - ret := _m.Called(ctx, userID, name, expiration) - - if len(ret) == 0 { - panic("no return value specified for CreateAccessToken") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) (string, error)); ok { - return rf(ctx, userID, name, expiration) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) string); ok { - r0 = rf(ctx, userID, name, expiration) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, string, time.Duration) error); ok { - r1 = rf(ctx, userID, name, expiration) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthRepo_CreateAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateAccessToken' -type AuthRepo_CreateAccessToken_Call struct { - *mock.Call -} - -// CreateAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - name string -// - expiration time.Duration -func (_e *AuthRepo_Expecter) CreateAccessToken(ctx interface{}, userID interface{}, name interface{}, expiration interface{}) *AuthRepo_CreateAccessToken_Call { - return &AuthRepo_CreateAccessToken_Call{Call: _e.mock.On("CreateAccessToken", ctx, userID, name, expiration)} -} - -func (_c *AuthRepo_CreateAccessToken_Call) Run(run func(ctx context.Context, userID uint32, name string, expiration time.Duration)) *AuthRepo_CreateAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(string), args[3].(time.Duration)) - }) - return _c -} - -func (_c *AuthRepo_CreateAccessToken_Call) Return(token string, err error) *AuthRepo_CreateAccessToken_Call { - _c.Call.Return(token, err) - return _c -} - -func (_c *AuthRepo_CreateAccessToken_Call) RunAndReturn(run func(context.Context, uint32, string, time.Duration) (string, error)) *AuthRepo_CreateAccessToken_Call { - _c.Call.Return(run) - return _c -} - -// DeleteAccessToken provides a mock function with given fields: ctx, tokenID -func (_m *AuthRepo) DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) { - ret := _m.Called(ctx, tokenID) - - if len(ret) == 0 { - panic("no return value specified for DeleteAccessToken") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (bool, error)); ok { - return rf(ctx, tokenID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) bool); ok { - r0 = rf(ctx, tokenID) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, tokenID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthRepo_DeleteAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteAccessToken' -type AuthRepo_DeleteAccessToken_Call struct { - *mock.Call -} - -// DeleteAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - tokenID uint32 -func (_e *AuthRepo_Expecter) DeleteAccessToken(ctx interface{}, tokenID interface{}) *AuthRepo_DeleteAccessToken_Call { - return &AuthRepo_DeleteAccessToken_Call{Call: _e.mock.On("DeleteAccessToken", ctx, tokenID)} -} - -func (_c *AuthRepo_DeleteAccessToken_Call) Run(run func(ctx context.Context, tokenID uint32)) *AuthRepo_DeleteAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthRepo_DeleteAccessToken_Call) Return(_a0 bool, _a1 error) *AuthRepo_DeleteAccessToken_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthRepo_DeleteAccessToken_Call) RunAndReturn(run func(context.Context, uint32) (bool, error)) *AuthRepo_DeleteAccessToken_Call { - _c.Call.Return(run) - return _c -} - -// GetByEmail provides a mock function with given fields: ctx, email -func (_m *AuthRepo) GetByEmail(ctx context.Context, email string) (auth.UserInfo, []byte, error) { - ret := _m.Called(ctx, email) - - if len(ret) == 0 { - panic("no return value specified for GetByEmail") - } - - var r0 auth.UserInfo - var r1 []byte - var r2 error - if rf, ok := ret.Get(0).(func(context.Context, string) (auth.UserInfo, []byte, error)); ok { - return rf(ctx, email) - } - if rf, ok := ret.Get(0).(func(context.Context, string) auth.UserInfo); ok { - r0 = rf(ctx, email) - } else { - r0 = ret.Get(0).(auth.UserInfo) - } - - if rf, ok := ret.Get(1).(func(context.Context, string) []byte); ok { - r1 = rf(ctx, email) - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).([]byte) - } - } - - if rf, ok := ret.Get(2).(func(context.Context, string) error); ok { - r2 = rf(ctx, email) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// AuthRepo_GetByEmail_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetByEmail' -type AuthRepo_GetByEmail_Call struct { - *mock.Call -} - -// GetByEmail is a helper method to define mock.On call -// - ctx context.Context -// - email string -func (_e *AuthRepo_Expecter) GetByEmail(ctx interface{}, email interface{}) *AuthRepo_GetByEmail_Call { - return &AuthRepo_GetByEmail_Call{Call: _e.mock.On("GetByEmail", ctx, email)} -} - -func (_c *AuthRepo_GetByEmail_Call) Run(run func(ctx context.Context, email string)) *AuthRepo_GetByEmail_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) - }) - return _c -} - -func (_c *AuthRepo_GetByEmail_Call) Return(_a0 auth.UserInfo, _a1 []byte, _a2 error) *AuthRepo_GetByEmail_Call { - _c.Call.Return(_a0, _a1, _a2) - return _c -} - -func (_c *AuthRepo_GetByEmail_Call) RunAndReturn(run func(context.Context, string) (auth.UserInfo, []byte, error)) *AuthRepo_GetByEmail_Call { - _c.Call.Return(run) - return _c -} - // GetByToken provides a mock function with given fields: ctx, token func (_m *AuthRepo) GetByToken(ctx context.Context, token string) (auth.UserInfo, error) { ret := _m.Called(ctx, token) @@ -321,122 +137,6 @@ func (_c *AuthRepo_GetPermission_Call) RunAndReturn(run func(context.Context, ui return _c } -// GetTokenByID provides a mock function with given fields: ctx, id -func (_m *AuthRepo) GetTokenByID(ctx context.Context, id uint32) (auth.AccessToken, error) { - ret := _m.Called(ctx, id) - - if len(ret) == 0 { - panic("no return value specified for GetTokenByID") - } - - var r0 auth.AccessToken - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.AccessToken, error)); ok { - return rf(ctx, id) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) auth.AccessToken); ok { - r0 = rf(ctx, id) - } else { - r0 = ret.Get(0).(auth.AccessToken) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthRepo_GetTokenByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTokenByID' -type AuthRepo_GetTokenByID_Call struct { - *mock.Call -} - -// GetTokenByID is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -func (_e *AuthRepo_Expecter) GetTokenByID(ctx interface{}, id interface{}) *AuthRepo_GetTokenByID_Call { - return &AuthRepo_GetTokenByID_Call{Call: _e.mock.On("GetTokenByID", ctx, id)} -} - -func (_c *AuthRepo_GetTokenByID_Call) Run(run func(ctx context.Context, id uint32)) *AuthRepo_GetTokenByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthRepo_GetTokenByID_Call) Return(_a0 auth.AccessToken, _a1 error) *AuthRepo_GetTokenByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthRepo_GetTokenByID_Call) RunAndReturn(run func(context.Context, uint32) (auth.AccessToken, error)) *AuthRepo_GetTokenByID_Call { - _c.Call.Return(run) - return _c -} - -// ListAccessToken provides a mock function with given fields: ctx, userID -func (_m *AuthRepo) ListAccessToken(ctx context.Context, userID uint32) ([]auth.AccessToken, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for ListAccessToken") - } - - var r0 []auth.AccessToken - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]auth.AccessToken, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []auth.AccessToken); ok { - r0 = rf(ctx, userID) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]auth.AccessToken) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthRepo_ListAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListAccessToken' -type AuthRepo_ListAccessToken_Call struct { - *mock.Call -} - -// ListAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *AuthRepo_Expecter) ListAccessToken(ctx interface{}, userID interface{}) *AuthRepo_ListAccessToken_Call { - return &AuthRepo_ListAccessToken_Call{Call: _e.mock.On("ListAccessToken", ctx, userID)} -} - -func (_c *AuthRepo_ListAccessToken_Call) Run(run func(ctx context.Context, userID uint32)) *AuthRepo_ListAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthRepo_ListAccessToken_Call) Return(_a0 []auth.AccessToken, _a1 error) *AuthRepo_ListAccessToken_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthRepo_ListAccessToken_Call) RunAndReturn(run func(context.Context, uint32) ([]auth.AccessToken, error)) *AuthRepo_ListAccessToken_Call { - _c.Call.Return(run) - return _c -} - // NewAuthRepo creates a new instance of AuthRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. func NewAuthRepo(t interface { diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index 51d40740a..e60567cbc 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -8,8 +8,6 @@ import ( auth "github.com/bangumi/server/internal/auth" mock "github.com/stretchr/testify/mock" - - time "time" ) // AuthService is an autogenerated mock type for the Service type @@ -25,236 +23,6 @@ func (_m *AuthService) EXPECT() *AuthService_Expecter { return &AuthService_Expecter{mock: &_m.Mock} } -// ComparePassword provides a mock function with given fields: hashed, password -func (_m *AuthService) ComparePassword(hashed []byte, password string) (bool, error) { - ret := _m.Called(hashed, password) - - if len(ret) == 0 { - panic("no return value specified for ComparePassword") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func([]byte, string) (bool, error)); ok { - return rf(hashed, password) - } - if rf, ok := ret.Get(0).(func([]byte, string) bool); ok { - r0 = rf(hashed, password) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func([]byte, string) error); ok { - r1 = rf(hashed, password) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_ComparePassword_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ComparePassword' -type AuthService_ComparePassword_Call struct { - *mock.Call -} - -// ComparePassword is a helper method to define mock.On call -// - hashed []byte -// - password string -func (_e *AuthService_Expecter) ComparePassword(hashed interface{}, password interface{}) *AuthService_ComparePassword_Call { - return &AuthService_ComparePassword_Call{Call: _e.mock.On("ComparePassword", hashed, password)} -} - -func (_c *AuthService_ComparePassword_Call) Run(run func(hashed []byte, password string)) *AuthService_ComparePassword_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].([]byte), args[1].(string)) - }) - return _c -} - -func (_c *AuthService_ComparePassword_Call) Return(_a0 bool, _a1 error) *AuthService_ComparePassword_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthService_ComparePassword_Call) RunAndReturn(run func([]byte, string) (bool, error)) *AuthService_ComparePassword_Call { - _c.Call.Return(run) - return _c -} - -// CreateAccessToken provides a mock function with given fields: ctx, userID, name, expiration -func (_m *AuthService) CreateAccessToken(ctx context.Context, userID uint32, name string, expiration time.Duration) (string, error) { - ret := _m.Called(ctx, userID, name, expiration) - - if len(ret) == 0 { - panic("no return value specified for CreateAccessToken") - } - - var r0 string - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) (string, error)); ok { - return rf(ctx, userID, name, expiration) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, string, time.Duration) string); ok { - r0 = rf(ctx, userID, name, expiration) - } else { - r0 = ret.Get(0).(string) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, string, time.Duration) error); ok { - r1 = rf(ctx, userID, name, expiration) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_CreateAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateAccessToken' -type AuthService_CreateAccessToken_Call struct { - *mock.Call -} - -// CreateAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - name string -// - expiration time.Duration -func (_e *AuthService_Expecter) CreateAccessToken(ctx interface{}, userID interface{}, name interface{}, expiration interface{}) *AuthService_CreateAccessToken_Call { - return &AuthService_CreateAccessToken_Call{Call: _e.mock.On("CreateAccessToken", ctx, userID, name, expiration)} -} - -func (_c *AuthService_CreateAccessToken_Call) Run(run func(ctx context.Context, userID uint32, name string, expiration time.Duration)) *AuthService_CreateAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(string), args[3].(time.Duration)) - }) - return _c -} - -func (_c *AuthService_CreateAccessToken_Call) Return(token string, err error) *AuthService_CreateAccessToken_Call { - _c.Call.Return(token, err) - return _c -} - -func (_c *AuthService_CreateAccessToken_Call) RunAndReturn(run func(context.Context, uint32, string, time.Duration) (string, error)) *AuthService_CreateAccessToken_Call { - _c.Call.Return(run) - return _c -} - -// DeleteAccessToken provides a mock function with given fields: ctx, tokenID -func (_m *AuthService) DeleteAccessToken(ctx context.Context, tokenID uint32) (bool, error) { - ret := _m.Called(ctx, tokenID) - - if len(ret) == 0 { - panic("no return value specified for DeleteAccessToken") - } - - var r0 bool - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (bool, error)); ok { - return rf(ctx, tokenID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) bool); ok { - r0 = rf(ctx, tokenID) - } else { - r0 = ret.Get(0).(bool) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, tokenID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_DeleteAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteAccessToken' -type AuthService_DeleteAccessToken_Call struct { - *mock.Call -} - -// DeleteAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - tokenID uint32 -func (_e *AuthService_Expecter) DeleteAccessToken(ctx interface{}, tokenID interface{}) *AuthService_DeleteAccessToken_Call { - return &AuthService_DeleteAccessToken_Call{Call: _e.mock.On("DeleteAccessToken", ctx, tokenID)} -} - -func (_c *AuthService_DeleteAccessToken_Call) Run(run func(ctx context.Context, tokenID uint32)) *AuthService_DeleteAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthService_DeleteAccessToken_Call) Return(_a0 bool, _a1 error) *AuthService_DeleteAccessToken_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthService_DeleteAccessToken_Call) RunAndReturn(run func(context.Context, uint32) (bool, error)) *AuthService_DeleteAccessToken_Call { - _c.Call.Return(run) - return _c -} - -// GetByID provides a mock function with given fields: ctx, userID -func (_m *AuthService) GetByID(ctx context.Context, userID uint32) (auth.Auth, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for GetByID") - } - - var r0 auth.Auth - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.Auth, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) auth.Auth); ok { - r0 = rf(ctx, userID) - } else { - r0 = ret.Get(0).(auth.Auth) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_GetByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetByID' -type AuthService_GetByID_Call struct { - *mock.Call -} - -// GetByID is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *AuthService_Expecter) GetByID(ctx interface{}, userID interface{}) *AuthService_GetByID_Call { - return &AuthService_GetByID_Call{Call: _e.mock.On("GetByID", ctx, userID)} -} - -func (_c *AuthService_GetByID_Call) Run(run func(ctx context.Context, userID uint32)) *AuthService_GetByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthService_GetByID_Call) Return(_a0 auth.Auth, _a1 error) *AuthService_GetByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthService_GetByID_Call) RunAndReturn(run func(context.Context, uint32) (auth.Auth, error)) *AuthService_GetByID_Call { - _c.Call.Return(run) - return _c -} - // GetByToken provides a mock function with given fields: ctx, token func (_m *AuthService) GetByToken(ctx context.Context, token string) (auth.Auth, error) { ret := _m.Called(ctx, token) @@ -312,187 +80,6 @@ func (_c *AuthService_GetByToken_Call) RunAndReturn(run func(context.Context, st return _c } -// GetTokenByID provides a mock function with given fields: ctx, tokenID -func (_m *AuthService) GetTokenByID(ctx context.Context, tokenID uint32) (auth.AccessToken, error) { - ret := _m.Called(ctx, tokenID) - - if len(ret) == 0 { - panic("no return value specified for GetTokenByID") - } - - var r0 auth.AccessToken - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (auth.AccessToken, error)); ok { - return rf(ctx, tokenID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) auth.AccessToken); ok { - r0 = rf(ctx, tokenID) - } else { - r0 = ret.Get(0).(auth.AccessToken) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, tokenID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_GetTokenByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetTokenByID' -type AuthService_GetTokenByID_Call struct { - *mock.Call -} - -// GetTokenByID is a helper method to define mock.On call -// - ctx context.Context -// - tokenID uint32 -func (_e *AuthService_Expecter) GetTokenByID(ctx interface{}, tokenID interface{}) *AuthService_GetTokenByID_Call { - return &AuthService_GetTokenByID_Call{Call: _e.mock.On("GetTokenByID", ctx, tokenID)} -} - -func (_c *AuthService_GetTokenByID_Call) Run(run func(ctx context.Context, tokenID uint32)) *AuthService_GetTokenByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthService_GetTokenByID_Call) Return(_a0 auth.AccessToken, _a1 error) *AuthService_GetTokenByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthService_GetTokenByID_Call) RunAndReturn(run func(context.Context, uint32) (auth.AccessToken, error)) *AuthService_GetTokenByID_Call { - _c.Call.Return(run) - return _c -} - -// ListAccessToken provides a mock function with given fields: ctx, userID -func (_m *AuthService) ListAccessToken(ctx context.Context, userID uint32) ([]auth.AccessToken, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for ListAccessToken") - } - - var r0 []auth.AccessToken - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]auth.AccessToken, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []auth.AccessToken); ok { - r0 = rf(ctx, userID) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]auth.AccessToken) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// AuthService_ListAccessToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListAccessToken' -type AuthService_ListAccessToken_Call struct { - *mock.Call -} - -// ListAccessToken is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *AuthService_Expecter) ListAccessToken(ctx interface{}, userID interface{}) *AuthService_ListAccessToken_Call { - return &AuthService_ListAccessToken_Call{Call: _e.mock.On("ListAccessToken", ctx, userID)} -} - -func (_c *AuthService_ListAccessToken_Call) Run(run func(ctx context.Context, userID uint32)) *AuthService_ListAccessToken_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *AuthService_ListAccessToken_Call) Return(_a0 []auth.AccessToken, _a1 error) *AuthService_ListAccessToken_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *AuthService_ListAccessToken_Call) RunAndReturn(run func(context.Context, uint32) ([]auth.AccessToken, error)) *AuthService_ListAccessToken_Call { - _c.Call.Return(run) - return _c -} - -// Login provides a mock function with given fields: ctx, email, password -func (_m *AuthService) Login(ctx context.Context, email string, password string) (auth.Auth, bool, error) { - ret := _m.Called(ctx, email, password) - - if len(ret) == 0 { - panic("no return value specified for Login") - } - - var r0 auth.Auth - var r1 bool - var r2 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (auth.Auth, bool, error)); ok { - return rf(ctx, email, password) - } - if rf, ok := ret.Get(0).(func(context.Context, string, string) auth.Auth); ok { - r0 = rf(ctx, email, password) - } else { - r0 = ret.Get(0).(auth.Auth) - } - - if rf, ok := ret.Get(1).(func(context.Context, string, string) bool); ok { - r1 = rf(ctx, email, password) - } else { - r1 = ret.Get(1).(bool) - } - - if rf, ok := ret.Get(2).(func(context.Context, string, string) error); ok { - r2 = rf(ctx, email, password) - } else { - r2 = ret.Error(2) - } - - return r0, r1, r2 -} - -// AuthService_Login_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Login' -type AuthService_Login_Call struct { - *mock.Call -} - -// Login is a helper method to define mock.On call -// - ctx context.Context -// - email string -// - password string -func (_e *AuthService_Expecter) Login(ctx interface{}, email interface{}, password interface{}) *AuthService_Login_Call { - return &AuthService_Login_Call{Call: _e.mock.On("Login", ctx, email, password)} -} - -func (_c *AuthService_Login_Call) Run(run func(ctx context.Context, email string, password string)) *AuthService_Login_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string), args[2].(string)) - }) - return _c -} - -func (_c *AuthService_Login_Call) Return(_a0 auth.Auth, _a1 bool, _a2 error) *AuthService_Login_Call { - _c.Call.Return(_a0, _a1, _a2) - return _c -} - -func (_c *AuthService_Login_Call) RunAndReturn(run func(context.Context, string, string) (auth.Auth, bool, error)) *AuthService_Login_Call { - _c.Call.Return(run) - return _c -} - // NewAuthService creates a new instance of AuthService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. // The first argument is typically a *testing.T value. func NewAuthService(t interface { From 60a5b417bcc74b2f2cd758a81616ea0a053818e5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Mar 2025 05:18:52 +0800 Subject: [PATCH 584/888] refactor(canal): error handling on startup --- canal/canal.go | 38 ++++++++++++++++++++++++++------------ go.mod | 2 +- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/canal/canal.go b/canal/canal.go index 9ad7ea470..ab96ade68 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -18,11 +18,15 @@ import ( "context" "fmt" "net/http" + "os" + "os/signal" + "syscall" "time" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/trim21/errgo" "go.uber.org/fx" + "golang.org/x/sync/errgroup" "github.com/bangumi/server/config" "github.com/bangumi/server/dal" @@ -82,23 +86,33 @@ func Main() error { return errgo.Wrap(err, "fx") } - var errChan = make(chan error, 1) - // metrics http reporter mux := http.NewServeMux() mux.Handle("/metrics", promhttp.Handler()) srv := &http.Server{Addr: h.config.ListenAddr(), Handler: mux, ReadHeaderTimeout: time.Second} - go func() { errChan <- errgo.Wrap(srv.ListenAndServe(), "http") }() + + var wg errgroup.Group + defer srv.Shutdown(context.Background()) //nolint:errcheck + wg.Go(func() error { + return errgo.Wrap(srv.ListenAndServe(), "http") + }) - go func() { errChan <- errgo.Wrap(h.start(), "start") }() defer h.Close() - - select { - case err := <-errChan: - return err - case <-sys.HandleSignal(): - logger.Info("receive signal, shutdown") - return nil - } + wg.Go(func() error { + return errgo.Wrap(h.start(), "start") + }) + + wg.Go(func() error { + sigChan := make(chan os.Signal, 1) + signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM) + + select { + case <-sys.HandleSignal(): + logger.Info("receive signal, shutdown") + return fmt.Errorf("receive signal") + } + }) + + wg.Wait() } diff --git a/go.mod b/go.mod index fe90ca2b6..12e5442de 100644 --- a/go.mod +++ b/go.mod @@ -38,6 +38,7 @@ require ( github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 + golang.org/x/sync v0.12.0 golang.org/x/text v0.23.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 @@ -114,7 +115,6 @@ require ( golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.36.0 // indirect - golang.org/x/sync v0.12.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/term v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect From 49670fd55cca49798cf3c3133e0b3e99261b33fe Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Mar 2025 05:22:06 +0800 Subject: [PATCH 585/888] refactor(canal): remove event buffer --- canal/canal.go | 2 +- go.mod | 1 - go.sum | 2 -- internal/search/character/client.go | 11 ----------- internal/search/character/event.go | 4 ++-- internal/search/person/client.go | 11 ----------- internal/search/person/event.go | 4 ++-- internal/search/search.go | 6 +----- internal/search/searcher/client.go | 30 ----------------------------- internal/search/subject/client.go | 12 ------------ internal/search/subject/event.go | 4 ++-- 11 files changed, 8 insertions(+), 79 deletions(-) diff --git a/canal/canal.go b/canal/canal.go index ab96ade68..94ec8b7a3 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -114,5 +114,5 @@ func Main() error { } }) - wg.Wait() + return wg.Wait() } diff --git a/go.mod b/go.mod index 12e5442de..06e89aa80 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,6 @@ require ( github.com/trim21/errgo v0.0.3 github.com/trim21/go-phpserialize v0.1.0 github.com/trim21/htest v0.0.4 - github.com/trim21/pkg v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.12.0 diff --git a/go.sum b/go.sum index 06213dc16..12cb7ad96 100644 --- a/go.sum +++ b/go.sum @@ -239,8 +239,6 @@ github.com/trim21/go-phpserialize v0.1.0 h1:4wLvVYkP6Ya07M+2YweFdx4WOrydZzVyxKRD github.com/trim21/go-phpserialize v0.1.0/go.mod h1:99ibWRqdNj3DTX+dbHvo+L47TsoEXwArpvBPRLrvz20= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= -github.com/trim21/pkg v0.0.4 h1:0nYODKdqNUzmUaPFvqSiR420u2uXQgIYyVyiNfH7olc= -github.com/trim21/pkg v0.0.4/go.mod h1:edl6xdqBOJrhMuIGvcY2lg5L9cqp/hVuwHRM/kdzbMg= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= diff --git a/internal/search/character/client.go b/internal/search/character/client.go index 83e926243..d6ac994da 100644 --- a/internal/search/character/client.go +++ b/internal/search/character/client.go @@ -8,7 +8,6 @@ import ( "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" - "github.com/trim21/pkg/queue" "go.uber.org/zap" "github.com/bangumi/server/config" @@ -54,22 +53,12 @@ type client struct { meili meilisearch.ServiceManager log *zap.Logger q *query.Query - - queue *queue.Batched[searcher.Document] -} - -func (c *client) Close() { - if c.queue != nil { - c.queue.Close() - } } func (c *client) canalInit(cfg config.AppConfig) error { if err := searcher.ValidateConfigs(cfg); err != nil { return errgo.Wrap(err, "validate search config") } - c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) - searcher.RegisterQueueMetrics(idx, c.queue) shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) if err != nil { return err diff --git a/internal/search/character/event.go b/internal/search/character/event.go index 10c3dad66..0b45708c8 100644 --- a/internal/search/character/event.go +++ b/internal/search/character/event.go @@ -45,9 +45,9 @@ func (c *client) OnUpdate(ctx context.Context, id model.CharacterID) error { extracted := extract(&s) - c.queue.Push(extracted) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") - return nil + return err } func (c *client) OnDelete(ctx context.Context, id model.CharacterID) error { diff --git a/internal/search/person/client.go b/internal/search/person/client.go index a7a454005..46c8fa7df 100644 --- a/internal/search/person/client.go +++ b/internal/search/person/client.go @@ -8,7 +8,6 @@ import ( "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" - "github.com/trim21/pkg/queue" "go.uber.org/zap" "github.com/bangumi/server/config" @@ -54,22 +53,12 @@ type client struct { meili meilisearch.ServiceManager log *zap.Logger q *query.Query - - queue *queue.Batched[searcher.Document] -} - -func (c *client) Close() { - if c.queue != nil { - c.queue.Close() - } } func (c *client) canalInit(cfg config.AppConfig) error { if err := searcher.ValidateConfigs(cfg); err != nil { return errgo.Wrap(err, "validate search config") } - c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) - searcher.RegisterQueueMetrics(idx, c.queue) shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) if err != nil { return err diff --git a/internal/search/person/event.go b/internal/search/person/event.go index 467c2fdf2..a8b8d0537 100644 --- a/internal/search/person/event.go +++ b/internal/search/person/event.go @@ -45,9 +45,9 @@ func (c *client) OnUpdate(ctx context.Context, id model.PersonID) error { extracted := extract(&s) - c.queue.Push(extracted) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") - return nil + return err } func (c *client) OnDelete(ctx context.Context, id model.PersonID) error { diff --git a/internal/search/search.go b/internal/search/search.go index 8c80027be..485869e6a 100644 --- a/internal/search/search.go +++ b/internal/search/search.go @@ -143,8 +143,4 @@ func (s *Search) EventDelete(ctx context.Context, id uint32, target SearchTarget return searcher.OnDelete(ctx, id) } -func (s *Search) Close() { - for _, searcher := range s.searchers { - searcher.Close() - } -} +func (s *Search) Close() {} diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index d18498cb5..df73a9664 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -12,10 +12,8 @@ import ( "github.com/avast/retry-go/v4" "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" - "github.com/prometheus/client_golang/prometheus" "github.com/samber/lo" "github.com/trim21/errgo" - "github.com/trim21/pkg/queue" "go.uber.org/zap" "github.com/bangumi/server/config" @@ -25,8 +23,6 @@ import ( type Searcher interface { Handle(c echo.Context) error - Close() - OnAdded(ctx context.Context, id uint32) error OnUpdate(ctx context.Context, id uint32) error OnDelete(ctx context.Context, id uint32) error @@ -140,32 +136,6 @@ func NewDedupeFunc() func([]Document) []Document { } } -func NewBatchQueue(cfg config.AppConfig, log *zap.Logger, index meilisearch.IndexManager) *queue.Batched[Document] { - return queue.NewBatchedDedupe( - NewSendBatch(log, index), - cfg.Search.SearchBatchSize, - cfg.Search.SearchBatchInterval, - NewDedupeFunc(), - ) -} - -func RegisterQueueMetrics(idx string, queue *queue.Batched[Document]) { - prometheus.DefaultRegisterer.MustRegister( - prometheus.NewGaugeFunc( - prometheus.GaugeOpts{ - Namespace: "chii", - Name: "meilisearch_queue_batch", - Help: "meilisearch update queue batch size", - ConstLabels: prometheus.Labels{ - "index": idx, - }, - }, - func() float64 { - return float64(queue.Len()) - }, - )) -} - func GetAttributes(rt reflect.Type, tag string) *[]string { var s []string for i := 0; i < rt.NumField(); i++ { diff --git a/internal/search/subject/client.go b/internal/search/subject/client.go index b7c899740..6c19a7a71 100644 --- a/internal/search/subject/client.go +++ b/internal/search/subject/client.go @@ -8,7 +8,6 @@ import ( "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" - "github.com/trim21/pkg/queue" "go.uber.org/zap" "github.com/bangumi/server/config" @@ -54,23 +53,12 @@ type client struct { meili meilisearch.ServiceManager log *zap.Logger q *query.Query - - queue *queue.Batched[searcher.Document] -} - -func (c *client) Close() { - if c.queue != nil { - c.queue.Close() - } } func (c *client) canalInit(cfg config.AppConfig) error { if err := searcher.ValidateConfigs(cfg); err != nil { return errgo.Wrap(err, "validate search config") } - c.queue = searcher.NewBatchQueue(cfg, c.log, c.index) - searcher.RegisterQueueMetrics(idx, c.queue) - shouldCreateIndex, err := searcher.NeedFirstRun(c.meili, idx) if err != nil { return err diff --git a/internal/search/subject/event.go b/internal/search/subject/event.go index 268338403..f54bca13b 100644 --- a/internal/search/subject/event.go +++ b/internal/search/subject/event.go @@ -46,9 +46,9 @@ func (c *client) OnUpdate(ctx context.Context, id model.SubjectID) error { extracted := extract(&s) - c.queue.Push(extracted) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") - return nil + return err } func (c *client) OnDelete(ctx context.Context, id model.SubjectID) error { From 94f668ea78082db46e1a2ea71178a7ddc6f0c45f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 18 Mar 2025 05:26:25 +0800 Subject: [PATCH 586/888] refactor: avoid unnecessary select --- canal/canal.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/canal/canal.go b/canal/canal.go index 94ec8b7a3..de15ccbb1 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -107,11 +107,9 @@ func Main() error { sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM) - select { - case <-sys.HandleSignal(): - logger.Info("receive signal, shutdown") - return fmt.Errorf("receive signal") - } + s := <-sys.HandleSignal() + logger.Info("receive signal, shutdown") + return fmt.Errorf("receive signal %s", s) }) return wg.Wait() From 54a66884d85e53fb72baf1e33ddd372e1f1200a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 15:51:22 +0800 Subject: [PATCH 587/888] build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 (#760) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 06e89aa80..c0806b8bd 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/cloudwego/base64x v0.1.5 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect - github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/iancoleman/strcase v0.3.0 // indirect diff --git a/go.sum b/go.sum index 12cb7ad96..3659459a1 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,9 @@ github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqw github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= +github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= From ddb8e59ca1a1a891b53fefaf51c23dc284e79ed2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:32:12 +0800 Subject: [PATCH 588/888] build(deps): update gcr.io/distroless/static docker digest to 95ea148 (#761) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 1e9c0c8d7..9cf91fd1b 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:3f2b64ef97bd285e36132c684e6b2ae8f2723293d09aae046196cca64251acac +FROM gcr.io/distroless/static@sha256:95ea148e8e9edd11cc7f639dc11825f38af86a14e5c7361753c741ceadef2167 ENTRYPOINT ["/app/chii.exe"] From 0eaeedfdd935fa0788097730299d493cfbd7114e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:36:07 +0800 Subject: [PATCH 589/888] build(deps): update module github.com/go-sql-driver/mysql to v1.9.1 (#763) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c0806b8bd..001c2829b 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.25.0 github.com/go-resty/resty/v2 v2.16.5 - github.com/go-sql-driver/mysql v1.9.0 + github.com/go-sql-driver/mysql v1.9.1 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.3.1 diff --git a/go.sum b/go.sum index 3659459a1..b980df9ef 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,8 @@ github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptd github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo= -github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw= +github.com/go-sql-driver/mysql v1.9.1 h1:FrjNGn/BsJQjVRuSa8CBrM5BWA9BWoXXat3KrtSb/iI= +github.com/go-sql-driver/mysql v1.9.1/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= From aad9d2fb4bc65aa907c6b75bc5688fd9dfe0f83e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:36:15 +0800 Subject: [PATCH 590/888] build(deps): update module github.com/bytedance/sonic to v1.13.2 (#762) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 001c2829b..4af4f7c33 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.62 github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 - github.com/bytedance/sonic v1.13.1 + github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 diff --git a/go.sum b/go.sum index b980df9ef..70f36bec6 100644 --- a/go.sum +++ b/go.sum @@ -35,8 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/bytedance/sonic v1.13.1 h1:Jyd5CIvdFnkOWuKXr+wm4Nyk2h0yAFsr8ucJgEasO3g= -github.com/bytedance/sonic v1.13.1/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= +github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= From 0c41733bb815192f8500554385d22d98a7f916ec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:36:27 +0800 Subject: [PATCH 591/888] ci: update jaxxstorm/action-install-gh-release action to v2 (#765) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index edfbba782..327b699e1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@v1.14.0 + uses: jaxxstorm/action-install-gh-release@v2.0.0 with: repo: gotestyourself/gotestsum tag: v1.12.1 From ba60e2f7cb5ddeba1c354703a0e36e659e449b7a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:36:48 +0800 Subject: [PATCH 592/888] build(deps): update module github.com/redis/rueidis to v1.0.56 (#764) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 4af4f7c33..ceccab019 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.21.1 - github.com/redis/rueidis v1.0.55 + github.com/redis/rueidis v1.0.56 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.9.1 @@ -112,12 +112,12 @@ require ( golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/crypto v0.36.0 // indirect golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect - golang.org/x/mod v0.23.0 // indirect - golang.org/x/net v0.36.0 // indirect + golang.org/x/mod v0.24.0 // indirect + golang.org/x/net v0.37.0 // indirect golang.org/x/sys v0.31.0 // indirect golang.org/x/term v0.30.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.30.0 // indirect + golang.org/x/tools v0.31.0 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect diff --git a/go.sum b/go.sum index 70f36bec6..2c1f79aa2 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.55 h1:PrRv6eETcanBgYVNdwxn6RyUaPfxN6H+b5jUA4mfpkw= -github.com/redis/rueidis v1.0.55/go.mod h1:cr7ILwt1AqyMRfjWlA9Orubj6gp1xzn1DPyhmrhv/x0= +github.com/redis/rueidis v1.0.56 h1:DwPjFIgas1OMU/uCqBELOonu9TKMYt3MFPq6GtwEWNY= +github.com/redis/rueidis v1.0.56/go.mod h1:g660/008FMYmAF46HG4lmcpcgFNj+jCjCAZUUM+wEbs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= @@ -280,16 +280,16 @@ golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= -golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= +golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -331,8 +331,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= -golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= +golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= +golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= From 0539bd450bd8484b9c28e68dd4c7be5b278656ba Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 31 Mar 2025 08:48:47 +0800 Subject: [PATCH 593/888] fix: duplicated meta tags (#766) --- .mockery.yaml | 12 ++++++++++++ internal/mocks/TagRepo.go | 29 +++++++++++++++-------------- internal/pkg/test/web.go | 2 +- internal/tag/cache_repo.go | 4 ++-- internal/tag/cache_repo_test.go | 2 +- internal/tag/domain.go | 2 +- internal/tag/mysql_repo.go | 8 ++++---- internal/tag/mysql_repo_test.go | 2 +- web/handler/subject/get.go | 2 +- web/handler/subject/get_test.go | 2 +- 10 files changed, 39 insertions(+), 26 deletions(-) diff --git a/.mockery.yaml b/.mockery.yaml index c4b7fa457..7c756e1cc 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -1,2 +1,14 @@ with-expecter: True issue-845-fix: True + +packages: + github.com/vektra/mockery/v2/pkg: + interfaces: + TypesPackage: + RequesterVariadic: + config: + with-expecter: False + configs: + - mockname: MockRequesterVariadicOneArgument + unroll-variadic: False + - mockname: MockRequesterVariadic diff --git a/internal/mocks/TagRepo.go b/internal/mocks/TagRepo.go index c6918381d..94c53797d 100644 --- a/internal/mocks/TagRepo.go +++ b/internal/mocks/TagRepo.go @@ -22,9 +22,9 @@ func (_m *TagRepo) EXPECT() *TagRepo_Expecter { return &TagRepo_Expecter{mock: &_m.Mock} } -// Get provides a mock function with given fields: ctx, id -func (_m *TagRepo) Get(ctx context.Context, id uint32) ([]tag.Tag, error) { - ret := _m.Called(ctx, id) +// Get provides a mock function with given fields: ctx, id, typeID +func (_m *TagRepo) Get(ctx context.Context, id uint32, typeID uint8) ([]tag.Tag, error) { + ret := _m.Called(ctx, id, typeID) if len(ret) == 0 { panic("no return value specified for Get") @@ -32,19 +32,19 @@ func (_m *TagRepo) Get(ctx context.Context, id uint32) ([]tag.Tag, error) { var r0 []tag.Tag var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]tag.Tag, error)); ok { - return rf(ctx, id) + if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) ([]tag.Tag, error)); ok { + return rf(ctx, id, typeID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []tag.Tag); ok { - r0 = rf(ctx, id) + if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) []tag.Tag); ok { + r0 = rf(ctx, id, typeID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]tag.Tag) } } - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8) error); ok { + r1 = rf(ctx, id, typeID) } else { r1 = ret.Error(1) } @@ -60,13 +60,14 @@ type TagRepo_Get_Call struct { // Get is a helper method to define mock.On call // - ctx context.Context // - id uint32 -func (_e *TagRepo_Expecter) Get(ctx interface{}, id interface{}) *TagRepo_Get_Call { - return &TagRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} +// - typeID uint8 +func (_e *TagRepo_Expecter) Get(ctx interface{}, id interface{}, typeID interface{}) *TagRepo_Get_Call { + return &TagRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, typeID)} } -func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id uint32)) *TagRepo_Get_Call { +func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id uint32, typeID uint8)) *TagRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(uint32), args[2].(uint8)) }) return _c } @@ -76,7 +77,7 @@ func (_c *TagRepo_Get_Call) Return(_a0 []tag.Tag, _a1 error) *TagRepo_Get_Call { return _c } -func (_c *TagRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) ([]tag.Tag, error)) *TagRepo_Get_Call { +func (_c *TagRepo_Get_Call) RunAndReturn(run func(context.Context, uint32, uint8) ([]tag.Tag, error)) *TagRepo_Get_Call { _c.Call.Return(run) return _c } diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 44e3498fc..0f8f327a5 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -208,7 +208,7 @@ func MockAuthRepo(m auth.Repo) fx.Option { func MockTagRepo(m tag.Repo) fx.Option { if m == nil { mocker := &mocks.TagRepo{} - mocker.EXPECT().Get(mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) + mocker.EXPECT().Get(mock.Anything, mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) mocker.EXPECT().GetByIDs(mock.Anything, mock.Anything).Return(map[model.SubjectID][]tag.Tag{}, nil) m = mocker diff --git a/internal/tag/cache_repo.go b/internal/tag/cache_repo.go index 4cbc3ff0f..47472e588 100644 --- a/internal/tag/cache_repo.go +++ b/internal/tag/cache_repo.go @@ -71,7 +71,7 @@ func init() { // also need to change version in [cachekey.SubjectMetaTag] if schema is changed. -func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { +func (r cacheRepo) Get(ctx context.Context, id model.SubjectID, typeID model.SubjectType) ([]Tag, error) { TotalCount.Add(1) var key = cachekey.SubjectMetaTag(id) @@ -86,7 +86,7 @@ func (r cacheRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { return s.Tags, nil } - tags, err := r.repo.Get(ctx, id) + tags, err := r.repo.Get(ctx, id, typeID) if err != nil { return tags, err } diff --git a/internal/tag/cache_repo_test.go b/internal/tag/cache_repo_test.go index cbb61927b..25caea42f 100644 --- a/internal/tag/cache_repo_test.go +++ b/internal/tag/cache_repo_test.go @@ -42,7 +42,7 @@ func TestCacheGet(t *testing.T) { repo := getCacheRepo(t) - _, err := repo.Get(context.Background(), 8) + _, err := repo.Get(context.Background(), 8, model.SubjectTypeAnime) require.NoError(t, err) } diff --git a/internal/tag/domain.go b/internal/tag/domain.go index 375a7e1ce..c8ba4218f 100644 --- a/internal/tag/domain.go +++ b/internal/tag/domain.go @@ -42,6 +42,6 @@ type Repo interface { } type read interface { - Get(ctx context.Context, id model.SubjectID) ([]Tag, error) + Get(ctx context.Context, id model.SubjectID, typeID model.SubjectType) ([]Tag, error) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]Tag, error) } diff --git a/internal/tag/mysql_repo.go b/internal/tag/mysql_repo.go index a171efcf0..c0ec7d745 100644 --- a/internal/tag/mysql_repo.go +++ b/internal/tag/mysql_repo.go @@ -34,7 +34,7 @@ type mysqlRepo struct { db *sqlx.DB } -func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { +func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID, typeID model.SubjectType) ([]Tag, error) { var s []struct { Tid uint `db:"tlt_tid"` Name string `db:"tag_name"` @@ -44,9 +44,9 @@ func (r mysqlRepo) Get(ctx context.Context, id model.SubjectID) ([]Tag, error) { err := r.db.SelectContext(ctx, &s, ` select tlt_tid, tag_name, tag_results from chii_tag_neue_list - inner join chii_tag_neue_index on tlt_tid = tag_id - where tlt_uid = 0 and tag_cat = ? and tlt_mid = ? - `, CatSubject, id) + inner join chii_tag_neue_index on tlt_tid = tag_id and tag_cat = tlt_cat and tag_type = tlt_type + where tlt_uid = 0 and tlt_cat = ? and tlt_mid = ? and tlt_type = ? + `, CatSubject, id, typeID) if err != nil { return nil, err } diff --git a/internal/tag/mysql_repo_test.go b/internal/tag/mysql_repo_test.go index 31cc1585d..f71513551 100644 --- a/internal/tag/mysql_repo_test.go +++ b/internal/tag/mysql_repo_test.go @@ -44,7 +44,7 @@ func TestGet(t *testing.T) { repo := getRepo(t) - _, err := repo.Get(context.Background(), 8) + _, err := repo.Get(context.Background(), 8, model.SubjectTypeAnime) require.NoError(t, err) } diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 4aa9179b7..78df31ef7 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -61,7 +61,7 @@ func (h Subject) Get(c echo.Context) error { return errgo.Wrap(err, "episode.Count") } - metaTags, err := h.tag.Get(c.Request().Context(), s.ID) + metaTags, err := h.tag.Get(c.Request().Context(), s.ID, s.TypeID) if err != nil { return err } diff --git a/web/handler/subject/get_test.go b/web/handler/subject/get_test.go index ee531eaea..6982d800d 100644 --- a/web/handler/subject/get_test.go +++ b/web/handler/subject/get_test.go @@ -58,7 +58,7 @@ func TestSubject_Get(t *testing.T) { ep.EXPECT().Count(mock.Anything, subjectID, mock.Anything).Return(3, nil) tagRepo := mocks.NewTagRepo(t) - tagRepo.EXPECT().Get(mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) + tagRepo.EXPECT().Get(mock.Anything, mock.Anything, mock.Anything).Return([]tag.Tag{}, nil) s, err := subjectHandler.New(nil, m, nil, nil, ep, tagRepo) require.NoError(t, err) From 5997d8dde0e947ee504f0fc1f8cc7bc3f4585918 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 31 Mar 2025 08:50:55 +0800 Subject: [PATCH 594/888] fix: kafka reader (#768) --- canal/stream_kafka.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/canal/stream_kafka.go b/canal/stream_kafka.go index 8166a9761..4fe1086b9 100644 --- a/canal/stream_kafka.go +++ b/canal/stream_kafka.go @@ -22,7 +22,6 @@ import ( "sync/atomic" "github.com/segmentio/kafka-go" - "github.com/trim21/errgo" "go.uber.org/zap" "github.com/bangumi/server/config" @@ -81,11 +80,13 @@ func (s *kafkaStream) Read(ctx context.Context, onMessage func(msg Msg) error) e } if err := onMessage(m); err != nil { - return errgo.Trace(err) + s.log.Error("failed to process kafak message", zap.Error(err)) + continue } if err := s.k.CommitMessages(ctx, msg); err != nil { - return errgo.Trace(err) + s.log.Error("failed to commit kafak message", zap.Error(err)) + continue } } } From a0b61f4afabd23140c2aa0a4fa229a28c9f1074c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:14:02 +0800 Subject: [PATCH 595/888] build(deps): update gcr.io/distroless/static docker digest to 3d0f463 (#769) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 9cf91fd1b..c9b2e28c1 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:95ea148e8e9edd11cc7f639dc11825f38af86a14e5c7361753c741ceadef2167 +FROM gcr.io/distroless/static@sha256:3d0f463de06b7ddff27684ec3bfd0b54a425149d0f8685308b1fdf297b0265e9 ENTRYPOINT ["/app/chii.exe"] From cf9cf942d533b7a87b0af1db14a7c00fa8e415aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:16:13 +0800 Subject: [PATCH 596/888] build(deps): update module github.com/go-playground/validator/v10 to v10.26.0 (#771) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ceccab019..5306bc150 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.25.0 + github.com/go-playground/validator/v10 v10.26.0 github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.9.1 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 2c1f79aa2..a3f5e0e39 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.25.0 h1:5Dh7cjvzR7BRZadnsVOzPhWsrwUr0nmsZJxEAnFLNO8= -github.com/go-playground/validator/v10 v10.25.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= +github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k= +github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= From 635e081f27732b2d696a774903f470dd86b1a2d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:16:25 +0800 Subject: [PATCH 597/888] build(deps): update module github.com/aws/aws-sdk-go-v2/credentials to v1.17.65 (#770) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5306bc150..831356d98 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ tool github.com/vektra/mockery/v2 require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.62 + github.com/aws/aws-sdk-go-v2/credentials v1.17.65 github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc diff --git a/go.sum b/go.sum index a3f5e0e39..a04636ab0 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/credentials v1.17.62 h1:fvtQY3zFzYJ9CfixuAQ96IxDrBajbBWGqjNTCa79ocU= -github.com/aws/aws-sdk-go-v2/credentials v1.17.62/go.mod h1:ElETBxIQqcxej++Cs8GyPBbgMys5DgQPTwo7cUPDKt8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.65 h1:q+nV2yYegofO/SUXruT+pn4KxkxmaQ++1B/QedcKBFM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.65/go.mod h1:4zyjAuGOdikpNYiSGpsGz8hLGmUzlY8pc8r9QQ/RXYQ= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= From 41867328576bd0cd87048e0ff0c93f28f1ed195b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 15:55:03 +0800 Subject: [PATCH 598/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.79.0 (#772) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 831356d98..78d27a3be 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.65 - github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 + github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 diff --git a/go.sum b/go.sum index a04636ab0..6a0aa1548 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 h1:jIiopHEV22b4yQP2q36Y0OmwLbsxNWdWwfZRR5QRRO4= -github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0 h1:OIw2nryEApESTYI5deCZGcq4Gvz8DBAt4tJlNyg3v5o= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From aa6fad31176196fa4bab709f60559549d70819e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:21:12 +0800 Subject: [PATCH 599/888] build(deps): update dependency go to v1.24.2 (#775) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 78d27a3be..bfd84f74b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.1 +go 1.24.2 tool github.com/vektra/mockery/v2 From b93b080f28b4b9fd3fff59a4bb0e2b07639a2c65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:21:23 +0800 Subject: [PATCH 600/888] build(deps): update aws-sdk-go-v2 monorepo (#774) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index bfd84f74b..fbb4bd178 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ tool github.com/vektra/mockery/v2 require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.65 - github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0 + github.com/aws/aws-sdk-go-v2/credentials v1.17.66 + github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 diff --git a/go.sum b/go.sum index 6a0aa1548..df8411f94 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/credentials v1.17.65 h1:q+nV2yYegofO/SUXruT+pn4KxkxmaQ++1B/QedcKBFM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.65/go.mod h1:4zyjAuGOdikpNYiSGpsGz8hLGmUzlY8pc8r9QQ/RXYQ= +github.com/aws/aws-sdk-go-v2/credentials v1.17.66 h1:aKpEKaTy6n4CEJeYI1MNj97oSDLi4xro3UzQfwf5RWE= +github.com/aws/aws-sdk-go-v2/credentials v1.17.66/go.mod h1:xQ5SusDmHb/fy55wU0QqTy0yNfLqxzec59YcsRZB+rI= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= @@ -27,8 +27,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0 h1:OIw2nryEApESTYI5deCZGcq4Gvz8DBAt4tJlNyg3v5o= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.0/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1 h1:2Ku1xwAohSSXHR1tpAnyVDSQSxoDMA+/NZBytW+f4qg= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From ce66b5ef2d49f5da346807ad3a1c9ed7f0931a9e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:21:36 +0800 Subject: [PATCH 601/888] build(deps): update module github.com/jarcoal/httpmock to v1.4.0 (#776) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index fbb4bd178..49eeed8e6 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/go-sql-driver/mysql v1.9.1 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 - github.com/jarcoal/httpmock v1.3.1 + github.com/jarcoal/httpmock v1.4.0 github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.3 github.com/mattn/go-colorable v0.1.14 diff --git a/go.sum b/go.sum index df8411f94..498973b22 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,8 @@ github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= -github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= -github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= +github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= +github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= @@ -159,8 +159,8 @@ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= -github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= +github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= +github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/meilisearch/meilisearch-go v0.31.0 h1:yZRhY1qJqdH8h6GFZALGtkDLyj8f9v5aJpsNMyrUmnY= github.com/meilisearch/meilisearch-go v0.31.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= From 0e4856363a0fb1b8559a6e1a749bb6f679379f1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:21:48 +0800 Subject: [PATCH 602/888] build(deps): update module golang.org/x/text to v0.24.0 (#778) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 49eeed8e6..a82b67b23 100644 --- a/go.mod +++ b/go.mod @@ -37,8 +37,8 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.12.0 - golang.org/x/text v0.23.0 + golang.org/x/sync v0.13.0 + golang.org/x/text v0.24.0 gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 diff --git a/go.sum b/go.sum index 498973b22..868d63e18 100644 --- a/go.sum +++ b/go.sum @@ -293,8 +293,8 @@ golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= -golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -323,8 +323,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From ca0b70ec51b92197e8ef600896cd1a84a44b737d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:28:47 +0800 Subject: [PATCH 603/888] build(deps): update module github.com/redis/rueidis to v1.0.57 (#779) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a82b67b23..0e8fee041 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.21.1 - github.com/redis/rueidis v1.0.56 + github.com/redis/rueidis v1.0.57 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 868d63e18..2024ced5b 100644 --- a/go.sum +++ b/go.sum @@ -190,8 +190,8 @@ github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.56 h1:DwPjFIgas1OMU/uCqBELOonu9TKMYt3MFPq6GtwEWNY= -github.com/redis/rueidis v1.0.56/go.mod h1:g660/008FMYmAF46HG4lmcpcgFNj+jCjCAZUUM+wEbs= +github.com/redis/rueidis v1.0.57 h1:eI9GDwEMjJcTMzFkiCFPZa/nJYYKgbfNBnpT7A6Wm2E= +github.com/redis/rueidis v1.0.57/go.mod h1:g660/008FMYmAF46HG4lmcpcgFNj+jCjCAZUUM+wEbs= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= From 0eb4a4209c8721c19d2f5d31902a1c716695d467 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 7 Apr 2025 03:15:18 +0800 Subject: [PATCH 604/888] style: migrade golangci-lint to v2 (#780) --- .github/workflows/lint.yaml | 4 +- .golangci.yaml | 429 +++++++++++++---------------- canal/canal.go | 2 +- cmd/archive/main.go | 2 +- cmd/gen/gorm/main.go | 2 +- cmd/web/cmd.go | 2 +- dal/new_test.go | 2 +- dal/utiltype/string.go | 1 - internal/pkg/cache/redis.go | 2 +- internal/pkg/driver/mysql.go | 3 +- internal/pkg/test/fx.go | 2 +- internal/pkg/test/gorm.go | 2 +- internal/search/searcher/client.go | 7 +- internal/search/subject/handle.go | 8 +- web/accessor/accesor.go | 2 +- web/new_internal_test.go | 2 +- web/req/content_type.go | 1 + 17 files changed, 206 insertions(+), 267 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 505085af3..3e277400b 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -33,6 +33,6 @@ jobs: cache-namespace: lint - name: Run linters - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v7 with: - version: v1.64.5 + version: v2.0.2 diff --git a/.golangci.yaml b/.golangci.yaml index 140da930b..54fb56b58 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,213 +1,21 @@ -# This file contains all available configuration options -# with their default values. - -# options for analysis running +version: "2" run: - # timeout for analysis, e.g. 30s, 5m, default is 1m - timeout: 5m - - # exit code when at least one issue was found, default is 1 + modules-download-mode: readonly issues-exit-code: 1 - - # include test files or not, default is true tests: true - - modules-download-mode: readonly - - # Allow multiple parallel golangci-lint instances running. - # If false (default) - golangci-lint acquires file lock on start. allow-parallel-runners: true - - go: "1.23" - -# output configuration options output: - # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions - # default is "colored-line-number" formats: - - format: "colored-line-number" - -# all available settings of specific linters -linters-settings: - revive: - rules: - - name: unused-parameter - disabled: true - errcheck: - # report about not checking of errors in type assertions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: false - - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: false - exclude-functions: - - (*github.com/valyala/bytebufferpool.ByteBuffer).Write - - (*github.com/valyala/bytebufferpool.ByteBuffer).WriteByte - - (*github.com/valyala/bytebufferpool.ByteBuffer).WriteString - - errorlint: - # Check whether fmt.Errorf uses the %w verb for formatting errors. See the readme for caveats - errorf: true - # Check for plain type assertions and type switches - asserts: true - # Check for plain error comparisons - comparison: true - - forbidigo: - # Forbid the following identifiers (identifiers are written using regexp): - forbid: - - ^print.*$ - - ^fmt\.Println$ - - ^fmt\.Print$ - - gofmt: - simplify: true - rewrite-rules: - - pattern: "interface{}" - replacement: "any" - - funlen: - lines: 60 - statements: 40 - - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 15 - - godot: - # comments to be checked: `declarations`, `toplevel`, or `all` - scope: declarations - # list of regexps for excluding particular comment lines from check - exclude: [] - # example: exclude comments which contain numbers - # - '[0-9]+' - # check that each sentence starts with a capital letter - capital: false - - gci: - sections: - - standard # Captures all standard packages if they do not match another section. - - default # Contains all imports that could not be matched to another section type. - - prefix(github.com/bangumi/server) # Groups all imports with the specified Prefix. - - depguard: - rules: - main: - files: - - "$all" - - "!$test" - - "!**/internal/pkg/test/**.go" - deny: - - pkg: "github.com/sirupsen/logrus" - desc: 'use "app/pkg/logger"' - - pkg: "github.com/golang/mock" - desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' - - pkg: "github.com/stretchr/testify" - desc: "test assert package not allowed" - test: - files: - - "$test" - - "**/internal/pkg/test/**.go" - deny: - - pkg: "github.com/golang/mock" - desc: 'use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery"' - - mnd: - # settings: - # mnd: - # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. - checks: - - argument - - case - - operation - - return - - assign - ignored-functions: [strconv\..*, time\..*, make, math\..*, strings\..*] - ignored-numbers: ["1", "2", "3", "10", "100", "1000", "10000"] - - gosimple: - # Select the Go version to target. The default is '1.13'. - # https://staticcheck.io/docs/options#checks - checks: ["all"] - - importas: - no-unaliased: false - no-extra-aliases: false - alias: - - pkg: "log" - alias: stdLog - - pkg: "gorm.io/gorm/logger" - alias: gormLogger - - pkg: "github.com/go-playground/universal-translator" - alias: ut - - pkg: "github.com/go-playground/validator/v10/translations/zh" - alias: zhTranslations - - lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 120 - # tab width in spaces. Default to 1. - tab-width: 2 - - misspell: - # Correct spellings using locale preferences for US or UK. - # Default is to use a neutral variety of English. - # Setting locale to US will correct the British spelling of 'colour' to 'color'. - locale: US - - staticcheck: - # Select the Go version to target. The default is '1.13'. - # https://staticcheck.io/docs/options#checks - checks: ["all"] - - # stylecheck: - # Select the Go version to target. The default is '1.13'. - - testpackage: - # regexp pattern to skip files - skip-regexp: (export|internal)_test\.go - - exhaustive: - # check switch statements in generated files also - check-generated: false - # indicates that switch statements are to be considered exhaustive if a - # 'default' case is present, even if all enum members aren't listed in the - # switch - default-signifies-exhaustive: true - govet: - enable-all: true - disable: - - fieldalignment - # - shadow - - nlreturn: - block-size: 3 - - gosec: - excludes: - - G115 - - tagliatelle: - # Check the struck tag name case. - case: - # Use the struct field name to check the name of the struct tag. - # Default: false - use-field-name: false - rules: - # Any struct tag type can be used. - # Support string case: `camel`, `pascal`, `kebab`, `snake`, `goCamel`, `goPascal`, `goKebab`, `goSnake`, `upper`, `lower` - json: snake - yaml: snake - + text: + path: stdout linters: - disable-all: true + default: none enable: - asasalint - asciicheck - bidichk - containedctx + - copyloopvar - depguard - dogsled - durationcheck @@ -215,13 +23,10 @@ linters: - errchkjson - errname - errorlint - # https://github.com/golangci/golangci-lint/issues/5065 - exhaustive - - copyloopvar - forbidigo - forcetypeassert - funlen - - gci - gocheckcompilerdirectives - gochecknoglobals - gochecknoinits @@ -230,13 +35,10 @@ linters: - gocritic - gocyclo - godot - - gofmt - - mnd - gomoddirectives - gomodguard - goprintffuncname - gosec - - gosimple - govet - grouper - importas @@ -247,65 +49,206 @@ linters: - maintidx - makezero - misspell - # - musttag + - mnd - nakedret - nestif - nilnil - noctx - # - nosprintfhostport - paralleltest - predeclared - promlinter - reassign - # - staticcheck - - stylecheck + - revive + - staticcheck - tagliatelle - # - usetesting - testableexamples - testpackage - thelper - tparallel - - typecheck - unconvert - unparam - unused - usestdlibvars - whitespace - - revive - - fast: false + settings: + depguard: + rules: + main: + files: + - $all + - "!$test" + - "!**/internal/pkg/test/**.go" + deny: + - pkg: github.com/sirupsen/logrus + desc: use "app/pkg/logger" + - pkg: github.com/golang/mock + desc: use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery" + - pkg: github.com/stretchr/testify + desc: test assert package not allowed + test: + files: + - $test + - "**/internal/pkg/test/**.go" + deny: + - pkg: github.com/golang/mock + desc: use "github.com/stretchr/testify/mock" and "github.com/vektra/mockery" + errcheck: + check-type-assertions: false + check-blank: false + exclude-functions: + - (*github.com/valyala/bytebufferpool.ByteBuffer).Write + - (*github.com/valyala/bytebufferpool.ByteBuffer).WriteByte + - (*github.com/valyala/bytebufferpool.ByteBuffer).WriteString + errorlint: + errorf: true + asserts: true + comparison: true + exhaustive: + default-signifies-exhaustive: true + forbidigo: + forbid: + - pattern: ^print.*$ + - pattern: ^fmt\.Println$ + - pattern: ^fmt\.Print$ + funlen: + lines: 60 + statements: 40 + gocyclo: + min-complexity: 15 + godot: + scope: declarations + capital: false + gosec: + excludes: + - G115 + govet: + disable: + - fieldalignment + enable-all: true + importas: + alias: + - pkg: log + alias: stdLog + - pkg: gorm.io/gorm/logger + alias: gormLogger + - pkg: github.com/go-playground/universal-translator + alias: ut + - pkg: github.com/go-playground/validator/v10/translations/zh + alias: zhTranslations + no-unaliased: false + no-extra-aliases: false + lll: + line-length: 120 + tab-width: 2 + misspell: + locale: US + mnd: + checks: + - argument + - case + - operation + - return + - assign + ignored-numbers: + - "1" + - "2" + - "3" + - "10" + - "100" + - "1000" + - "10000" + ignored-functions: + - strconv\..* + - time\..* + - make + - math\..* + - strings\..* + nlreturn: + block-size: 3 + revive: + rules: + - name: unused-parameter + disabled: true + staticcheck: + checks: + - all + tagliatelle: + case: + rules: + json: snake + yaml: snake + use-field-name: false + testpackage: + skip-regexp: (export|internal)_test\.go + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + rules: + - linters: + - gochecknoglobals + - gochecknoinits + - wrapcheck + path: cmd/.* + - linters: + - funlen + - gochecknoglobals + - gocritic + - godot + - nosnakecase + path: .*_test\.go + - linters: + - gochecknoglobals + source: var .* = pool.New + - linters: + - gochecknoglobals + source: var Module = fx\.Module\( + - linters: + - gochecknoglobals + source: var .* = reflect\.TypeOf + - linters: + - gochecknoglobals + source: var .* sync\.Once + - linters: + - err113 + - errorlint + source: if err == redis.Nil { + - linters: + - paralleltest + text: Range statement for test \S+ does not use range value in test Run + - linters: + - nilerr + source: return false, nil + paths: + - third_party$ + - builtin$ + - examples$ issues: new: false fix: false - exclude-use-default: true - exclude-rules: - - path: "cmd/.*" - linters: [gochecknoglobals, gochecknoinits, wrapcheck] - - - path: '.*_test\.go' - linters: [gocritic, gochecknoglobals, godot, nosnakecase, funlen] - - - source: "var .* = pool.New" - linters: [gochecknoglobals] - - - source: 'var Module = fx\.Module\(' - linters: [gochecknoglobals] - - source: 'var .* = reflect\.TypeOf' - linters: [gochecknoglobals] - - - source: 'var .* sync\.Once' - linters: [gochecknoglobals] - - - linters: [err113, errorlint] - source: "if err == redis.Nil {" - - # https://github.com/kunwardeep/paralleltest/issues/8 - - linters: - - paralleltest - text: "Range statement for test \\S+ does not use range value in test Run" - - - linters: - - nilerr - source: "return false, nil" +formatters: + enable: + - gci + - gofmt + settings: + gci: + sections: + - standard + - default + - prefix(github.com/bangumi/server) + gofmt: + simplify: true + rewrite-rules: + - pattern: interface{} + replacement: any + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ diff --git a/canal/canal.go b/canal/canal.go index de15ccbb1..c1890e6bc 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -66,7 +66,7 @@ func Main() error { // driver and connector fx.Provide( - driver.NewMysqlSqlDB, + driver.NewMysqlDriver, driver.NewRueidisClient, logger.Copy, cache.NewRedisCache, subject.NewMysqlRepo, character.NewMysqlRepo, person.NewMysqlRepo, search.New, session.NewMysqlRepo, session.New, diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 047b6a79d..89e45dcae 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -80,7 +80,7 @@ func start(out string) { err := fx.New( fx.NopLogger, fx.Provide( - driver.NewMysqlSqlDB, dal.NewGormDB, + driver.NewMysqlDriver, dal.NewGormDB, config.NewAppConfig, logger.Copy, diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index baccbecba..3f95e534b 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -92,7 +92,7 @@ func main() { panic("failed to read config: " + err.Error()) } - conn, err := driver.NewMysqlSqlDB(c) + conn, err := driver.NewMysqlDriver(c) if err != nil { panic(err) } diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index de0059f51..1a5f3b44c 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -65,7 +65,7 @@ func start() error { fx.Provide( config.AppConfigReader(config.AppTypeHTTP), driver.NewRueidisClient, // redis - driver.NewMysqlSqlDB, // mysql + driver.NewMysqlDriver, // mysql func() *resty.Client { httpClient := resty.New().SetJSONEscapeHTML(false) httpClient.JSONUnmarshal = json.Unmarshal diff --git a/dal/new_test.go b/dal/new_test.go index 7245ea6bc..ef29f65a8 100644 --- a/dal/new_test.go +++ b/dal/new_test.go @@ -31,7 +31,7 @@ func TestNewDB(t *testing.T) { cfg, err := config.NewAppConfig() require.NoError(t, err) - conn, err := driver.NewMysqlSqlDB(cfg) + conn, err := driver.NewMysqlDriver(cfg) require.NoError(t, err) db, err := dal.NewGormDB(conn, cfg) require.NoError(t, err) diff --git a/dal/utiltype/string.go b/dal/utiltype/string.go index 6166072fa..0bad6495e 100644 --- a/dal/utiltype/string.go +++ b/dal/utiltype/string.go @@ -42,7 +42,6 @@ func (s *HTMLEscapedString) Scan(src any) error { return nil } - //nolint:goerr113 return fmt.Errorf("utiltype.HTMLEscapedString: unsupported input type %s", reflect.TypeOf(src).String()) } diff --git a/internal/pkg/cache/redis.go b/internal/pkg/cache/redis.go index 3ba23db54..6bc235ac7 100644 --- a/internal/pkg/cache/redis.go +++ b/internal/pkg/cache/redis.go @@ -96,7 +96,7 @@ func (c redisCache) MGet(ctx context.Context, keys []string, result any) error { // no more ideal way to do this // reflect.ValueOf(*[]T) rv := reflect.ValueOf(result) - if !(rv.Kind() == reflect.Ptr && rv.Elem().Kind() == reflect.Slice) { + if rv.Kind() != reflect.Ptr || rv.Elem().Kind() != reflect.Slice { panic("only allow *[]T as input") } diff --git a/internal/pkg/driver/mysql.go b/internal/pkg/driver/mysql.go index 03b65a5de..b553a8d38 100644 --- a/internal/pkg/driver/mysql.go +++ b/internal/pkg/driver/mysql.go @@ -31,8 +31,7 @@ import ( var setLoggerOnce = sync.Once{} -//nolint:stylecheck -func NewMysqlSqlDB(c config.AppConfig) (*sql.DB, error) { +func NewMysqlDriver(c config.AppConfig) (*sql.DB, error) { setLoggerOnce.Do(func() { _ = mysql.SetLogger(logger.StdAt(zap.ErrorLevel)) }) diff --git a/internal/pkg/test/fx.go b/internal/pkg/test/fx.go index 6db211382..e0720ecf7 100644 --- a/internal/pkg/test/fx.go +++ b/internal/pkg/test/fx.go @@ -38,7 +38,7 @@ func Fx(tb testing.TB, target ...fx.Option) { fx.Provide( config.AppConfigReader(config.AppTypeHTTP), driver.NewRueidisClient, // redis - driver.NewMysqlSqlDB, // mysql + driver.NewMysqlDriver, // mysql func() *resty.Client { httpClient := resty.New().SetJSONEscapeHTML(false) httpClient.JSONUnmarshal = json.Unmarshal diff --git a/internal/pkg/test/gorm.go b/internal/pkg/test/gorm.go index 0424f24af..acb2f3fdc 100644 --- a/internal/pkg/test/gorm.go +++ b/internal/pkg/test/gorm.go @@ -56,7 +56,7 @@ func GetGorm(tb testing.TB) *gorm.DB { func newGorm(tb testing.TB, c config.AppConfig) (*gorm.DB, error) { tb.Helper() - conn, err := driver.NewMysqlSqlDB(c) + conn, err := driver.NewMysqlDriver(c) if err != nil { return nil, errgo.Wrap(err, "sql.Open") } diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index df73a9664..0ed9c96fc 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -13,6 +13,7 @@ import ( "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" + "github.com/samber/lo/mutable" "github.com/trim21/errgo" "go.uber.org/zap" @@ -56,12 +57,10 @@ func NeedFirstRun(meili meilisearch.ServiceManager, idx string) (bool, error) { func ValidateConfigs(cfg config.AppConfig) error { if cfg.Search.SearchBatchSize <= 0 { - // nolint: goerr113 return fmt.Errorf("config.SearchBatchSize should >= 0, current %d", cfg.Search.SearchBatchSize) } if cfg.Search.SearchBatchInterval <= 0 { - // nolint: goerr113 return fmt.Errorf("config.SearchBatchInterval should >= 0, current %d", cfg.Search.SearchBatchInterval) } @@ -129,8 +128,8 @@ func NewSendBatch(log *zap.Logger, index meilisearch.IndexManager) func([]Docume func NewDedupeFunc() func([]Document) []Document { return func(items []Document) []Document { - // lo.UniqBy 会保留第一次出现的元素,reverse 之后会保留新的数据 - return lo.UniqBy(lo.Reverse(items), func(item Document) string { + mutable.Reverse(items) + return lo.UniqBy(items, func(item Document) string { return item.GetID() }) } diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index bc524a8e8..2dc06393e 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -273,11 +273,9 @@ func parseDateValOk(date string) (int, bool) { } // 2008-10-05 format - if !(isDigitsOnly(date[:4]) && - date[4] == '-' && - isDigitsOnly(date[5:7]) && - date[7] == '-' && - isDigitsOnly(date[8:10])) { + if !isDigitsOnly(date[:4]) || + date[4] != '-' || !isDigitsOnly(date[5:7]) || + date[7] != '-' || !isDigitsOnly(date[8:10]) { return 0, false } diff --git a/web/accessor/accesor.go b/web/accessor/accesor.go index 354dea0c1..c6ccf1e3f 100644 --- a/web/accessor/accesor.go +++ b/web/accessor/accesor.go @@ -53,7 +53,7 @@ func (a Accessor) MarshalLogObject(encoder zapcore.ObjectEncoder) error { encoder.AddString("id", a.RequestID) encoder.AddString("IP", a.IP) if a.Login { - encoder.AddUint32("user_id", a.Auth.ID) + encoder.AddUint32("user_id", a.ID) } return nil } diff --git a/web/new_internal_test.go b/web/new_internal_test.go index 005b3aaf9..0660d8a49 100644 --- a/web/new_internal_test.go +++ b/web/new_internal_test.go @@ -59,7 +59,7 @@ func TestDefaultErrorHandler_internal(t *testing.T) { app.HTTPErrorHandler = getDefaultErrorHandler() app.GET("/", func(c echo.Context) error { - return errors.New("mm") //nolint:goerr113 + return errors.New("mm") }) req := httptest.NewRequest(http.MethodGet, "/", nil) diff --git a/web/req/content_type.go b/web/req/content_type.go index 64143e9e5..1bc1aa0b9 100644 --- a/web/req/content_type.go +++ b/web/req/content_type.go @@ -25,6 +25,7 @@ import ( func JSON(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { contentType := c.Request().Header.Get(echo.HeaderContentType) + //nolint:staticcheck if contentType == echo.MIMEApplicationJSON || contentType == echo.MIMEApplicationJSONCharsetUTF8 { return next(c) } From b2e25bc59d92504049cc52c09a0119b77621c5a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 12:17:46 +0800 Subject: [PATCH 605/888] ci: pin dependencies (#781) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 6 +++--- .github/workflows/lint.yaml | 4 ++-- .github/workflows/release-docker.yaml | 8 ++++---- .github/workflows/release-github.yaml | 4 ++-- .github/workflows/release-openapi.yaml | 8 ++++---- .github/workflows/security.yaml | 2 +- .github/workflows/test-openapi.yaml | 4 ++-- .github/workflows/test.yaml | 6 +++--- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4cf4dc294..f03273b50 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: trim21/actions/setup-go@master with: diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index cea106f22..886718204 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,15 +16,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node LTS - uses: actions/setup-node@v4 + uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: cache: yarn - name: Install Go - uses: actions/setup-go@v5 + uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version-file: "go.mod" diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 3e277400b..48d297db2 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,13 +26,13 @@ jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: trim21/actions/setup-go@master with: cache-namespace: lint - name: Run linters - uses: golangci/golangci-lint-action@v7 + uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7 with: version: v2.0.2 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 7045ed91a..9aed264f8 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: trim21/actions/setup-go@master with: @@ -45,7 +45,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5 with: images: ${{ env.IMAGE }} tags: | @@ -55,14 +55,14 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - - uses: docker/login-action@v3 + - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@v6 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6 with: context: ./ provenance: false diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index dffbf0816..f934065d4 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -12,13 +12,13 @@ jobs: github: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 - name: Generate Changelog id: changelog - uses: requarks/changelog-action@v1.10.2 + uses: requarks/changelog-action@6d71e098526ee17bae963f058d34cd763378337f # v1.10.2 with: token: ${{ github.token }} tag: ${{ github.ref_name }} diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 727ef17c4..874c97152 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -13,15 +13,15 @@ jobs: openapi: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: node-version: 20 - run: yarn install --frozen-lockfile - run: yarn run build - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: repository: "bangumi/api" path: api @@ -29,7 +29,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7 with: path: api token: ${{ secrets.PAT }} diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 527bcffb0..d3cb1f6fe 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -25,7 +25,7 @@ jobs: vulnerability-scan: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - uses: trim21/actions/setup-go@master with: diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 2d2f4df78..33a9fbd45 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -28,8 +28,8 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 327b699e1..81d53a0c1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - - uses: actions/checkout@v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: submodules: recursive @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@v2.0.0 + uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0 with: repo: gotestyourself/gotestsum tag: v1.12.1 @@ -69,7 +69,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@v5 + - uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required From 5f92d382b138ce19c86753c21274f0157bb8ebfa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:18:12 +0800 Subject: [PATCH 606/888] build(deps): update module github.com/go-sql-driver/mysql to v1.9.2 (#782) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0e8fee041..206770e22 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.26.0 github.com/go-resty/resty/v2 v2.16.5 - github.com/go-sql-driver/mysql v1.9.1 + github.com/go-sql-driver/mysql v1.9.2 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.0 diff --git a/go.sum b/go.sum index 2024ced5b..58faa55dc 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,8 @@ github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptd github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-sql-driver/mysql v1.9.1 h1:FrjNGn/BsJQjVRuSa8CBrM5BWA9BWoXXat3KrtSb/iI= -github.com/go-sql-driver/mysql v1.9.1/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= +github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= From fa010564a6baca041c1981b7d3a6f5b0130aa72a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 18:38:20 +0800 Subject: [PATCH 607/888] build(deps): update module github.com/prometheus/client_golang to v1.22.0 (#785) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 206770e22..01121eea1 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.21.1 + github.com/prometheus/client_golang v1.22.0 github.com/redis/rueidis v1.0.57 github.com/samber/lo v1.49.1 github.com/segmentio/kafka-go v0.4.47 @@ -77,7 +77,7 @@ require ( github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect diff --git a/go.sum b/go.sum index 58faa55dc..5c1e4929a 100644 --- a/go.sum +++ b/go.sum @@ -124,8 +124,8 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= @@ -182,8 +182,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= -github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= From 837c04eb9480e6ef567b74bd0c429685673292af Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 19:28:28 +0800 Subject: [PATCH 608/888] build(deps): update module github.com/vektra/mockery/v2 to v3 (#786) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- .mockery.yaml | 73 +- etc/mock.task.yaml | 261 ------ go.mod | 49 +- go.sum | 98 ++- internal/mocks/AuthRepo.go | 97 ++- internal/mocks/AuthService.go | 67 +- .../{RedisCache.go => CacheRedisCache.go} | 160 ++-- internal/mocks/CharacterRepo.go | 211 +++-- internal/mocks/CollectionRepo.go | 777 ------------------ internal/mocks/CollectionsRepo.go | 754 +++++++++++++++++ internal/mocks/EpisodeRepo.go | 175 ++-- internal/mocks/IndexRepo.go | 381 +++++---- internal/mocks/NotificationRepo.go | 93 --- internal/mocks/PersonRepo.go | 179 ++-- internal/mocks/PersonService.go | 213 ++--- internal/mocks/RevisionRepo.go | 460 +++++------ internal/mocks/SearchClient.go | 136 ++- internal/mocks/SessionManager.go | 152 ++-- internal/mocks/SessionRepo.go | 160 ++-- internal/mocks/SubjectCachedRepo.go | 322 ++++---- internal/mocks/SubjectRepo.go | 322 ++++---- internal/mocks/TagRepo.go | 111 ++- internal/mocks/TimeLineService.go | 176 ++-- internal/mocks/UserRepo.go | 300 ++++--- internal/pkg/test/web.go | 2 +- Taskfile.yaml => taskfile.yaml | 10 +- web/handler/user/collection_test.go | 14 +- .../user/get_episode_collection_test.go | 4 +- .../user/patch_subject_collection_test.go | 12 +- .../user/post_subject_collection_test.go | 12 +- .../user/update_episode_collection_test.go | 4 +- 31 files changed, 2636 insertions(+), 3149 deletions(-) delete mode 100644 etc/mock.task.yaml rename internal/mocks/{RedisCache.go => CacheRedisCache.go} (54%) delete mode 100644 internal/mocks/CollectionRepo.go create mode 100644 internal/mocks/CollectionsRepo.go delete mode 100644 internal/mocks/NotificationRepo.go rename Taskfile.yaml => taskfile.yaml (94%) diff --git a/.mockery.yaml b/.mockery.yaml index 7c756e1cc..39f3fa2d9 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -1,14 +1,63 @@ -with-expecter: True -issue-845-fix: True +all: false +dir: "./internal/mocks/" + +force-file-write: true + +log-level: info +pkgname: "mocks" +recursive: false +template: testify + +filename: "{{.SrcPackageName | firstUpper}}{{.InterfaceName}}.go" +structname: "{{.SrcPackageName | firstUpper}}{{.InterfaceName}}" packages: - github.com/vektra/mockery/v2/pkg: - interfaces: - TypesPackage: - RequesterVariadic: - config: - with-expecter: False - configs: - - mockname: MockRequesterVariadicOneArgument - unroll-variadic: False - - mockname: MockRequesterVariadic + github.com/bangumi/server/web/session: + interfaces: + Repo: + Manager: + github.com/bangumi/server/internal/pkg/cache: + config: + structname: "{{.InterfaceName}}" + interfaces: + RedisCache: + github.com/bangumi/server/internal/search: + interfaces: + Client: + github.com/bangumi/server/internal/timeline: + interfaces: + Service: + github.com/bangumi/server/internal/collections: + interfaces: + Repo: + github.com/bangumi/server/internal/person: + interfaces: + Repo: + Service: + github.com/bangumi/server/internal/episode: + interfaces: + Repo: + github.com/bangumi/server/internal/user: + interfaces: + Repo: + github.com/bangumi/server/internal/subject: + interfaces: + Repo: + CachedRepo: + + github.com/bangumi/server/internal/auth: + interfaces: + Repo: + Service: + github.com/bangumi/server/internal/tag: + interfaces: + Repo: + github.com/bangumi/server/internal/character: + interfaces: + Repo: + github.com/bangumi/server/internal/index: + interfaces: + Repo: + github.com/bangumi/server/internal/revision: + interfaces: + Repo: diff --git a/etc/mock.task.yaml b/etc/mock.task.yaml deleted file mode 100644 index c13048951..000000000 --- a/etc/mock.task.yaml +++ /dev/null @@ -1,261 +0,0 @@ -version: "3" - -vars: - BIN: "{{.ROOT_DIR}}/.bin" - -tasks: - all: - cmds: - - task: Tag - - task: session-manager - - task: session-repo - - task: cache - - task: Auth - - task: CharacterRepo - - task: IndexRepo - - task: RevisionRepo - - task: SubjectRepo - - task: UserRepo - - task: EpisodeRepo - - task: PersonRepo - - task: PersonService - - task: CollectionRepo - - task: TimeLineService - - task: SearchClient - - base-mock: - cmds: - - 'go run github.com/vektra/mockery/v2 --dir {{.SRC_DIR}} --filename "{{.MOCK_STRUCT|default .INTERFACE}}.go" --name "{{.INTERFACE | default "Manager"}}" --structname {{.MOCK_STRUCT|default .INTERFACE}} --output ./internal/mocks --with-expecter' - - session-repo: - sources: - - ./web/session/repo.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/SessionRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./web/session - INTERFACE: Repo - MOCK_STRUCT: "SessionRepo" - - cache: - sources: - - ./internal/pkg/cache/redis.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/RedisCache.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/pkg/cache - INTERFACE: "RedisCache" - MOCK_STRUCT: RedisCache - - session-manager: - sources: - - ./web/session/manager.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/SessionManager.go - cmds: - - task: base-mock - vars: - MOCK_STRUCT: SessionManager - SRC_DIR: ./web/session - - "Auth": - sources: - - internal/auth/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/AuthRepo.go - - internal/mocks/AuthService.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/auth - INTERFACE: "Repo" - MOCK_STRUCT: "AuthRepo" - - task: base-mock - vars: - SRC_DIR: ./internal/auth - MOCK_STRUCT: "AuthService" - INTERFACE: Service - - "Tag": - sources: - - internal/tag/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/TagRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/tag - INTERFACE: "Repo" - MOCK_STRUCT: "TagRepo" - - "CharacterRepo": - sources: - - ./internal/character/domain/.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/CharacterRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/character - MOCK_STRUCT: "CharacterRepo" - INTERFACE: Repo - - "IndexRepo": - sources: - - internal/index/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/IndexRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/index - MOCK_STRUCT: "IndexRepo" - INTERFACE: Repo - - "RevisionRepo": - sources: - - internal/revision/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/RevisionRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/revision - MOCK_STRUCT: "RevisionRepo" - INTERFACE: Repo - - "SubjectRepo": - sources: - - internal/subject/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/SubjectRepo.go - - internal/mocks/SubjectCachedRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/subject - INTERFACE: "Repo" - MOCK_STRUCT: SubjectRepo - - - task: base-mock - vars: - SRC_DIR: ./internal/subject - INTERFACE: "CachedRepo" - MOCK_STRUCT: SubjectCachedRepo - - "UserRepo": - sources: - - internal/user/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/UserRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/user - MOCK_STRUCT: "UserRepo" - INTERFACE: Repo - - "EpisodeRepo": - sources: - - internal/episode/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/EpisodeRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/episode - MOCK_STRUCT: "EpisodeRepo" - INTERFACE: Repo - - "PersonRepo": - sources: - - internal/person/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/PersonRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/person - MOCK_STRUCT: "PersonRepo" - INTERFACE: Repo - - "PersonService": - sources: - - internal/person/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/PersonService.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/person - MOCK_STRUCT: "PersonService" - INTERFACE: Repo - - GroupRepo: - sources: - - internal/group/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/GroupRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/group - MOCK_STRUCT: GroupRepo - INTERFACE: Repo - - CollectionRepo: - sources: - - internal/collections/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/CollectionRepo.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/collections - MOCK_STRUCT: CollectionRepo - INTERFACE: Repo - - TimeLineService: - sources: - - internal/timeline/domain.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/TimeLineService.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/timeline - INTERFACE: Service - MOCK_STRUCT: TimeLineService - - SearchClient: - sources: - - internal/search/client.go - - ./internal/pkg/tools/go.mod - generates: - - internal/mocks/SearchClient.go - cmds: - - task: base-mock - vars: - SRC_DIR: ./internal/search - INTERFACE: Client - MOCK_STRUCT: SearchClient diff --git a/go.mod b/go.mod index 01121eea1..11a238f23 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/bangumi/server go 1.24.2 -tool github.com/vektra/mockery/v2 +tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 @@ -61,65 +61,70 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect + github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/huandu/xstrings v1.4.0 // indirect - github.com/iancoleman/strcase v0.3.0 // indirect + github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jinzhu/copier v0.4.0 // indirect + github.com/jedib0t/go-pretty/v6 v6.6.7 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/knadh/koanf/maps v0.1.1 // indirect + github.com/knadh/koanf/parsers/yaml v0.1.0 // indirect + github.com/knadh/koanf/providers/env v1.0.0 // indirect + github.com/knadh/koanf/providers/file v1.1.2 // indirect + github.com/knadh/koanf/providers/posflag v0.1.0 // indirect + github.com/knadh/koanf/providers/structs v0.1.0 // indirect + github.com/knadh/koanf/v2 v2.1.2 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/magiconair/properties v1.8.9 // indirect github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.62.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.33.0 // indirect - github.com/sagikazarmark/locafero v0.7.0 // indirect - github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.12.0 // indirect - github.com/spf13/cast v1.7.1 // indirect - github.com/spf13/viper v1.19.0 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/subosito/gotenv v1.6.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v2 v2.53.2 // indirect + github.com/vektra/mockery/v3 v3.0.2 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect go.uber.org/dig v1.18.0 // indirect go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac // indirect + golang.org/x/crypto v0.37.0 // indirect + golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.37.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect + golang.org/x/net v0.39.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/term v0.31.0 // indirect golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.31.0 // indirect + golang.org/x/tools v0.32.0 // indirect google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index 5c1e4929a..31484bc31 100644 --- a/go.sum +++ b/go.sum @@ -35,6 +35,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= +github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= +github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= @@ -57,8 +59,8 @@ github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3 github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= @@ -77,6 +79,8 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= @@ -89,12 +93,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= -github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= -github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4= github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -109,8 +109,8 @@ github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= -github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= -github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= +github.com/jedib0t/go-pretty/v6 v6.6.7 h1:m+LbHpm0aIAPLzLbMfn8dc3Ht8MW7lsSO4MPItz/Uuo= +github.com/jedib0t/go-pretty/v6 v6.6.7/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -128,6 +128,20 @@ github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zt github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= +github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= +github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w= +github.com/knadh/koanf/parsers/yaml v0.1.0/go.mod h1:cvbUDC7AL23pImuQP0oRw/hPuccrNBS2bps8asS0CwY= +github.com/knadh/koanf/providers/env v1.0.0 h1:ufePaI9BnWH+ajuxGGiJ8pdTG0uLEUWC7/HDDPGLah0= +github.com/knadh/koanf/providers/env v1.0.0/go.mod h1:mzFyRZueYhb37oPmC1HAv/oGEEuyvJDA98r3XAa8Gak= +github.com/knadh/koanf/providers/file v1.1.2 h1:aCC36YGOgV5lTtAFz2qkgtWdeQsgfxUkxDOe+2nQY3w= +github.com/knadh/koanf/providers/file v1.1.2/go.mod h1:/faSBcv2mxPVjFrXck95qeoyoZ5myJ6uxN8OOVNJJCI= +github.com/knadh/koanf/providers/posflag v0.1.0 h1:mKJlLrKPcAP7Ootf4pBZWJ6J+4wHYujwipe7Ie3qW6U= +github.com/knadh/koanf/providers/posflag v0.1.0/go.mod h1:SYg03v/t8ISBNrMBRMlojH8OsKowbkXV7giIbBVgbz0= +github.com/knadh/koanf/providers/structs v0.1.0 h1:wJRteCNn1qvLtE5h8KQBvLJovidSdntfdyIbbCzEyE0= +github.com/knadh/koanf/providers/structs v0.1.0/go.mod h1:sw2YZ3txUcqA3Z27gPlmmBzWn1h8Nt9O6EP/91MkcWE= +github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= +github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -143,8 +157,6 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= -github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -154,6 +166,8 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= @@ -165,16 +179,16 @@ github.com/meilisearch/meilisearch-go v0.31.0 h1:yZRhY1qJqdH8h6GFZALGtkDLyj8f9v5 github.com/meilisearch/meilisearch-go v0.31.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= -github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= -github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -192,39 +206,33 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/redis/rueidis v1.0.57 h1:eI9GDwEMjJcTMzFkiCFPZa/nJYYKgbfNBnpT7A6Wm2E= github.com/redis/rueidis v1.0.57/go.mod h1:g660/008FMYmAF46HG4lmcpcgFNj+jCjCAZUUM+wEbs= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= -github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= -github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= -github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= -github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -232,8 +240,6 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= github.com/trim21/go-phpserialize v0.1.0 h1:4wLvVYkP6Ya07M+2YweFdx4WOrydZzVyxKRDGK/L5KM= @@ -246,14 +252,20 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v2 v2.53.2 h1:4G/4fl9x722Yb8hLqH1YU3XZNRJFwl5KUMvpkmAyuC8= -github.com/vektra/mockery/v2 v2.53.2/go.mod h1:UJT+mgXhCcOCHXTnM5cJHCZL+d76BYB+EbY1sFztEB8= +github.com/vektra/mockery/v3 v3.0.2 h1:U2a2PpaMDgufwtIpYxzQBBt5xcTDeOfN4obVjRckxWw= +github.com/vektra/mockery/v3 v3.0.2/go.mod h1:UQwIbP5U84gbN/nkMyYVSW+tp7BFhaSym907rfS1HL4= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -274,10 +286,10 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= -golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= -golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac h1:l5+whBCLH3iH2ZNHYLbAe58bo7yrN4mVcnkHDYz5vvs= -golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScyxUhjuVHR3HGaDPMn9rMSUUbxo= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= @@ -288,8 +300,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= -golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -306,15 +318,15 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -331,16 +343,14 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= -golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= +golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= +golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index 342d624b4..17a4abaea 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -1,15 +1,30 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" - - auth "github.com/bangumi/server/internal/auth" + "context" + "github.com/bangumi/server/internal/auth" mock "github.com/stretchr/testify/mock" ) +// NewAuthRepo creates a new instance of AuthRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewAuthRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *AuthRepo { + mock := &AuthRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // AuthRepo is an autogenerated mock type for the Repo type type AuthRepo struct { mock.Mock @@ -23,9 +38,9 @@ func (_m *AuthRepo) EXPECT() *AuthRepo_Expecter { return &AuthRepo_Expecter{mock: &_m.Mock} } -// GetByToken provides a mock function with given fields: ctx, token -func (_m *AuthRepo) GetByToken(ctx context.Context, token string) (auth.UserInfo, error) { - ret := _m.Called(ctx, token) +// GetByToken provides a mock function for the type AuthRepo +func (_mock *AuthRepo) GetByToken(ctx context.Context, token string) (auth.UserInfo, error) { + ret := _mock.Called(ctx, token) if len(ret) == 0 { panic("no return value specified for GetByToken") @@ -33,21 +48,19 @@ func (_m *AuthRepo) GetByToken(ctx context.Context, token string) (auth.UserInfo var r0 auth.UserInfo var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (auth.UserInfo, error)); ok { - return rf(ctx, token) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) (auth.UserInfo, error)); ok { + return returnFunc(ctx, token) } - if rf, ok := ret.Get(0).(func(context.Context, string) auth.UserInfo); ok { - r0 = rf(ctx, token) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) auth.UserInfo); ok { + r0 = returnFunc(ctx, token) } else { r0 = ret.Get(0).(auth.UserInfo) } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, token) + if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = returnFunc(ctx, token) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -57,8 +70,8 @@ type AuthRepo_GetByToken_Call struct { } // GetByToken is a helper method to define mock.On call -// - ctx context.Context -// - token string +// - ctx +// - token func (_e *AuthRepo_Expecter) GetByToken(ctx interface{}, token interface{}) *AuthRepo_GetByToken_Call { return &AuthRepo_GetByToken_Call{Call: _e.mock.On("GetByToken", ctx, token)} } @@ -70,19 +83,19 @@ func (_c *AuthRepo_GetByToken_Call) Run(run func(ctx context.Context, token stri return _c } -func (_c *AuthRepo_GetByToken_Call) Return(_a0 auth.UserInfo, _a1 error) *AuthRepo_GetByToken_Call { - _c.Call.Return(_a0, _a1) +func (_c *AuthRepo_GetByToken_Call) Return(userInfo auth.UserInfo, err error) *AuthRepo_GetByToken_Call { + _c.Call.Return(userInfo, err) return _c } -func (_c *AuthRepo_GetByToken_Call) RunAndReturn(run func(context.Context, string) (auth.UserInfo, error)) *AuthRepo_GetByToken_Call { +func (_c *AuthRepo_GetByToken_Call) RunAndReturn(run func(ctx context.Context, token string) (auth.UserInfo, error)) *AuthRepo_GetByToken_Call { _c.Call.Return(run) return _c } -// GetPermission provides a mock function with given fields: ctx, groupID -func (_m *AuthRepo) GetPermission(ctx context.Context, groupID uint8) (auth.Permission, error) { - ret := _m.Called(ctx, groupID) +// GetPermission provides a mock function for the type AuthRepo +func (_mock *AuthRepo) GetPermission(ctx context.Context, groupID uint8) (auth.Permission, error) { + ret := _mock.Called(ctx, groupID) if len(ret) == 0 { panic("no return value specified for GetPermission") @@ -90,21 +103,19 @@ func (_m *AuthRepo) GetPermission(ctx context.Context, groupID uint8) (auth.Perm var r0 auth.Permission var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint8) (auth.Permission, error)); ok { - return rf(ctx, groupID) + if returnFunc, ok := ret.Get(0).(func(context.Context, uint8) (auth.Permission, error)); ok { + return returnFunc(ctx, groupID) } - if rf, ok := ret.Get(0).(func(context.Context, uint8) auth.Permission); ok { - r0 = rf(ctx, groupID) + if returnFunc, ok := ret.Get(0).(func(context.Context, uint8) auth.Permission); ok { + r0 = returnFunc(ctx, groupID) } else { r0 = ret.Get(0).(auth.Permission) } - - if rf, ok := ret.Get(1).(func(context.Context, uint8) error); ok { - r1 = rf(ctx, groupID) + if returnFunc, ok := ret.Get(1).(func(context.Context, uint8) error); ok { + r1 = returnFunc(ctx, groupID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -114,8 +125,8 @@ type AuthRepo_GetPermission_Call struct { } // GetPermission is a helper method to define mock.On call -// - ctx context.Context -// - groupID uint8 +// - ctx +// - groupID func (_e *AuthRepo_Expecter) GetPermission(ctx interface{}, groupID interface{}) *AuthRepo_GetPermission_Call { return &AuthRepo_GetPermission_Call{Call: _e.mock.On("GetPermission", ctx, groupID)} } @@ -127,26 +138,12 @@ func (_c *AuthRepo_GetPermission_Call) Run(run func(ctx context.Context, groupID return _c } -func (_c *AuthRepo_GetPermission_Call) Return(_a0 auth.Permission, _a1 error) *AuthRepo_GetPermission_Call { - _c.Call.Return(_a0, _a1) +func (_c *AuthRepo_GetPermission_Call) Return(permission auth.Permission, err error) *AuthRepo_GetPermission_Call { + _c.Call.Return(permission, err) return _c } -func (_c *AuthRepo_GetPermission_Call) RunAndReturn(run func(context.Context, uint8) (auth.Permission, error)) *AuthRepo_GetPermission_Call { +func (_c *AuthRepo_GetPermission_Call) RunAndReturn(run func(ctx context.Context, groupID uint8) (auth.Permission, error)) *AuthRepo_GetPermission_Call { _c.Call.Return(run) return _c } - -// NewAuthRepo creates a new instance of AuthRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewAuthRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *AuthRepo { - mock := &AuthRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index e60567cbc..db5bb32dd 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -1,15 +1,30 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" - - auth "github.com/bangumi/server/internal/auth" + "context" + "github.com/bangumi/server/internal/auth" mock "github.com/stretchr/testify/mock" ) +// NewAuthService creates a new instance of AuthService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewAuthService(t interface { + mock.TestingT + Cleanup(func()) +}) *AuthService { + mock := &AuthService{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // AuthService is an autogenerated mock type for the Service type type AuthService struct { mock.Mock @@ -23,9 +38,9 @@ func (_m *AuthService) EXPECT() *AuthService_Expecter { return &AuthService_Expecter{mock: &_m.Mock} } -// GetByToken provides a mock function with given fields: ctx, token -func (_m *AuthService) GetByToken(ctx context.Context, token string) (auth.Auth, error) { - ret := _m.Called(ctx, token) +// GetByToken provides a mock function for the type AuthService +func (_mock *AuthService) GetByToken(ctx context.Context, token string) (auth.Auth, error) { + ret := _mock.Called(ctx, token) if len(ret) == 0 { panic("no return value specified for GetByToken") @@ -33,21 +48,19 @@ func (_m *AuthService) GetByToken(ctx context.Context, token string) (auth.Auth, var r0 auth.Auth var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (auth.Auth, error)); ok { - return rf(ctx, token) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) (auth.Auth, error)); ok { + return returnFunc(ctx, token) } - if rf, ok := ret.Get(0).(func(context.Context, string) auth.Auth); ok { - r0 = rf(ctx, token) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) auth.Auth); ok { + r0 = returnFunc(ctx, token) } else { r0 = ret.Get(0).(auth.Auth) } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, token) + if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = returnFunc(ctx, token) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -57,8 +70,8 @@ type AuthService_GetByToken_Call struct { } // GetByToken is a helper method to define mock.On call -// - ctx context.Context -// - token string +// - ctx +// - token func (_e *AuthService_Expecter) GetByToken(ctx interface{}, token interface{}) *AuthService_GetByToken_Call { return &AuthService_GetByToken_Call{Call: _e.mock.On("GetByToken", ctx, token)} } @@ -70,26 +83,12 @@ func (_c *AuthService_GetByToken_Call) Run(run func(ctx context.Context, token s return _c } -func (_c *AuthService_GetByToken_Call) Return(_a0 auth.Auth, _a1 error) *AuthService_GetByToken_Call { - _c.Call.Return(_a0, _a1) +func (_c *AuthService_GetByToken_Call) Return(auth1 auth.Auth, err error) *AuthService_GetByToken_Call { + _c.Call.Return(auth1, err) return _c } -func (_c *AuthService_GetByToken_Call) RunAndReturn(run func(context.Context, string) (auth.Auth, error)) *AuthService_GetByToken_Call { +func (_c *AuthService_GetByToken_Call) RunAndReturn(run func(ctx context.Context, token string) (auth.Auth, error)) *AuthService_GetByToken_Call { _c.Call.Return(run) return _c } - -// NewAuthService creates a new instance of AuthService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewAuthService(t interface { - mock.TestingT - Cleanup(func()) -}) *AuthService { - mock := &AuthService{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/RedisCache.go b/internal/mocks/CacheRedisCache.go similarity index 54% rename from internal/mocks/RedisCache.go rename to internal/mocks/CacheRedisCache.go index 056103af3..f10a4a5a0 100644 --- a/internal/mocks/RedisCache.go +++ b/internal/mocks/CacheRedisCache.go @@ -1,14 +1,30 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" - time "time" + "context" + "time" mock "github.com/stretchr/testify/mock" ) +// NewRedisCache creates a new instance of RedisCache. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewRedisCache(t interface { + mock.TestingT + Cleanup(func()) +}) *RedisCache { + mock := &RedisCache{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // RedisCache is an autogenerated mock type for the RedisCache type type RedisCache struct { mock.Mock @@ -22,28 +38,26 @@ func (_m *RedisCache) EXPECT() *RedisCache_Expecter { return &RedisCache_Expecter{mock: &_m.Mock} } -// Del provides a mock function with given fields: ctx, keys -func (_m *RedisCache) Del(ctx context.Context, keys ...string) error { - _va := make([]interface{}, len(keys)) - for _i := range keys { - _va[_i] = keys[_i] +// Del provides a mock function for the type RedisCache +func (_mock *RedisCache) Del(ctx context.Context, keys ...string) error { + var tmpRet mock.Arguments + if len(keys) > 0 { + tmpRet = _mock.Called(ctx, keys) + } else { + tmpRet = _mock.Called(ctx) } - var _ca []interface{} - _ca = append(_ca, ctx) - _ca = append(_ca, _va...) - ret := _m.Called(_ca...) + ret := tmpRet if len(ret) == 0 { panic("no return value specified for Del") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, ...string) error); ok { - r0 = rf(ctx, keys...) + if returnFunc, ok := ret.Get(0).(func(context.Context, ...string) error); ok { + r0 = returnFunc(ctx, keys...) } else { r0 = ret.Error(0) } - return r0 } @@ -53,8 +67,8 @@ type RedisCache_Del_Call struct { } // Del is a helper method to define mock.On call -// - ctx context.Context -// - keys ...string +// - ctx +// - keys func (_e *RedisCache_Expecter) Del(ctx interface{}, keys ...interface{}) *RedisCache_Del_Call { return &RedisCache_Del_Call{Call: _e.mock.On("Del", append([]interface{}{ctx}, keys...)...)} @@ -73,19 +87,19 @@ func (_c *RedisCache_Del_Call) Run(run func(ctx context.Context, keys ...string) return _c } -func (_c *RedisCache_Del_Call) Return(_a0 error) *RedisCache_Del_Call { - _c.Call.Return(_a0) +func (_c *RedisCache_Del_Call) Return(err error) *RedisCache_Del_Call { + _c.Call.Return(err) return _c } -func (_c *RedisCache_Del_Call) RunAndReturn(run func(context.Context, ...string) error) *RedisCache_Del_Call { +func (_c *RedisCache_Del_Call) RunAndReturn(run func(ctx context.Context, keys ...string) error) *RedisCache_Del_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, key, value -func (_m *RedisCache) Get(ctx context.Context, key string, value interface{}) (bool, error) { - ret := _m.Called(ctx, key, value) +// Get provides a mock function for the type RedisCache +func (_mock *RedisCache) Get(ctx context.Context, key string, value any) (bool, error) { + ret := _mock.Called(ctx, key, value) if len(ret) == 0 { panic("no return value specified for Get") @@ -93,21 +107,19 @@ func (_m *RedisCache) Get(ctx context.Context, key string, value interface{}) (b var r0 bool var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, interface{}) (bool, error)); ok { - return rf(ctx, key, value) + if returnFunc, ok := ret.Get(0).(func(context.Context, string, any) (bool, error)); ok { + return returnFunc(ctx, key, value) } - if rf, ok := ret.Get(0).(func(context.Context, string, interface{}) bool); ok { - r0 = rf(ctx, key, value) + if returnFunc, ok := ret.Get(0).(func(context.Context, string, any) bool); ok { + r0 = returnFunc(ctx, key, value) } else { r0 = ret.Get(0).(bool) } - - if rf, ok := ret.Get(1).(func(context.Context, string, interface{}) error); ok { - r1 = rf(ctx, key, value) + if returnFunc, ok := ret.Get(1).(func(context.Context, string, any) error); ok { + r1 = returnFunc(ctx, key, value) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -117,45 +129,44 @@ type RedisCache_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - key string -// - value interface{} +// - ctx +// - key +// - value func (_e *RedisCache_Expecter) Get(ctx interface{}, key interface{}, value interface{}) *RedisCache_Get_Call { return &RedisCache_Get_Call{Call: _e.mock.On("Get", ctx, key, value)} } -func (_c *RedisCache_Get_Call) Run(run func(ctx context.Context, key string, value interface{})) *RedisCache_Get_Call { +func (_c *RedisCache_Get_Call) Run(run func(ctx context.Context, key string, value any)) *RedisCache_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string), args[2].(interface{})) + run(args[0].(context.Context), args[1].(string), args[2].(any)) }) return _c } -func (_c *RedisCache_Get_Call) Return(_a0 bool, _a1 error) *RedisCache_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *RedisCache_Get_Call) Return(b bool, err error) *RedisCache_Get_Call { + _c.Call.Return(b, err) return _c } -func (_c *RedisCache_Get_Call) RunAndReturn(run func(context.Context, string, interface{}) (bool, error)) *RedisCache_Get_Call { +func (_c *RedisCache_Get_Call) RunAndReturn(run func(ctx context.Context, key string, value any) (bool, error)) *RedisCache_Get_Call { _c.Call.Return(run) return _c } -// MGet provides a mock function with given fields: ctx, key, result -func (_m *RedisCache) MGet(ctx context.Context, key []string, result interface{}) error { - ret := _m.Called(ctx, key, result) +// MGet provides a mock function for the type RedisCache +func (_mock *RedisCache) MGet(ctx context.Context, key []string, result any) error { + ret := _mock.Called(ctx, key, result) if len(ret) == 0 { panic("no return value specified for MGet") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, []string, interface{}) error); ok { - r0 = rf(ctx, key, result) + if returnFunc, ok := ret.Get(0).(func(context.Context, []string, any) error); ok { + r0 = returnFunc(ctx, key, result) } else { r0 = ret.Error(0) } - return r0 } @@ -165,45 +176,44 @@ type RedisCache_MGet_Call struct { } // MGet is a helper method to define mock.On call -// - ctx context.Context -// - key []string -// - result interface{} +// - ctx +// - key +// - result func (_e *RedisCache_Expecter) MGet(ctx interface{}, key interface{}, result interface{}) *RedisCache_MGet_Call { return &RedisCache_MGet_Call{Call: _e.mock.On("MGet", ctx, key, result)} } -func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string, result interface{})) *RedisCache_MGet_Call { +func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string, result any)) *RedisCache_MGet_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]string), args[2].(interface{})) + run(args[0].(context.Context), args[1].([]string), args[2].(any)) }) return _c } -func (_c *RedisCache_MGet_Call) Return(_a0 error) *RedisCache_MGet_Call { - _c.Call.Return(_a0) +func (_c *RedisCache_MGet_Call) Return(err error) *RedisCache_MGet_Call { + _c.Call.Return(err) return _c } -func (_c *RedisCache_MGet_Call) RunAndReturn(run func(context.Context, []string, interface{}) error) *RedisCache_MGet_Call { +func (_c *RedisCache_MGet_Call) RunAndReturn(run func(ctx context.Context, key []string, result any) error) *RedisCache_MGet_Call { _c.Call.Return(run) return _c } -// Set provides a mock function with given fields: ctx, key, value, ttl -func (_m *RedisCache) Set(ctx context.Context, key string, value interface{}, ttl time.Duration) error { - ret := _m.Called(ctx, key, value, ttl) +// Set provides a mock function for the type RedisCache +func (_mock *RedisCache) Set(ctx context.Context, key string, value any, ttl time.Duration) error { + ret := _mock.Called(ctx, key, value, ttl) if len(ret) == 0 { panic("no return value specified for Set") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string, interface{}, time.Duration) error); ok { - r0 = rf(ctx, key, value, ttl) + if returnFunc, ok := ret.Get(0).(func(context.Context, string, any, time.Duration) error); ok { + r0 = returnFunc(ctx, key, value, ttl) } else { r0 = ret.Error(0) } - return r0 } @@ -213,41 +223,27 @@ type RedisCache_Set_Call struct { } // Set is a helper method to define mock.On call -// - ctx context.Context -// - key string -// - value interface{} -// - ttl time.Duration +// - ctx +// - key +// - value +// - ttl func (_e *RedisCache_Expecter) Set(ctx interface{}, key interface{}, value interface{}, ttl interface{}) *RedisCache_Set_Call { return &RedisCache_Set_Call{Call: _e.mock.On("Set", ctx, key, value, ttl)} } -func (_c *RedisCache_Set_Call) Run(run func(ctx context.Context, key string, value interface{}, ttl time.Duration)) *RedisCache_Set_Call { +func (_c *RedisCache_Set_Call) Run(run func(ctx context.Context, key string, value any, ttl time.Duration)) *RedisCache_Set_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string), args[2].(interface{}), args[3].(time.Duration)) + run(args[0].(context.Context), args[1].(string), args[2].(any), args[3].(time.Duration)) }) return _c } -func (_c *RedisCache_Set_Call) Return(_a0 error) *RedisCache_Set_Call { - _c.Call.Return(_a0) +func (_c *RedisCache_Set_Call) Return(err error) *RedisCache_Set_Call { + _c.Call.Return(err) return _c } -func (_c *RedisCache_Set_Call) RunAndReturn(run func(context.Context, string, interface{}, time.Duration) error) *RedisCache_Set_Call { +func (_c *RedisCache_Set_Call) RunAndReturn(run func(ctx context.Context, key string, value any, ttl time.Duration) error) *RedisCache_Set_Call { _c.Call.Return(run) return _c } - -// NewRedisCache creates a new instance of RedisCache. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewRedisCache(t interface { - mock.TestingT - Cleanup(func()) -}) *RedisCache { - mock := &RedisCache{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/CharacterRepo.go b/internal/mocks/CharacterRepo.go index abe29c820..ccab00b92 100644 --- a/internal/mocks/CharacterRepo.go +++ b/internal/mocks/CharacterRepo.go @@ -1,18 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - character "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/domain" + "github.com/bangumi/server/internal/character" + "github.com/bangumi/server/internal/model" + mock "github.com/stretchr/testify/mock" +) - domain "github.com/bangumi/server/domain" +// NewCharacterRepo creates a new instance of CharacterRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCharacterRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *CharacterRepo { + mock := &CharacterRepo{} + mock.Mock.Test(t) - mock "github.com/stretchr/testify/mock" + t.Cleanup(func() { mock.AssertExpectations(t) }) - model "github.com/bangumi/server/internal/model" -) + return mock +} // CharacterRepo is an autogenerated mock type for the Repo type type CharacterRepo struct { @@ -27,9 +40,9 @@ func (_m *CharacterRepo) EXPECT() *CharacterRepo_Expecter { return &CharacterRepo_Expecter{mock: &_m.Mock} } -// Get provides a mock function with given fields: ctx, id -func (_m *CharacterRepo) Get(ctx context.Context, id uint32) (model.Character, error) { - ret := _m.Called(ctx, id) +// Get provides a mock function for the type CharacterRepo +func (_mock *CharacterRepo) Get(ctx context.Context, id model.CharacterID) (model.Character, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Get") @@ -37,21 +50,19 @@ func (_m *CharacterRepo) Get(ctx context.Context, id uint32) (model.Character, e var r0 model.Character var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Character, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) (model.Character, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.Character); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) model.Character); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.Character) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -61,56 +72,54 @@ type CharacterRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *CharacterRepo_Expecter) Get(ctx interface{}, id interface{}) *CharacterRepo_Get_Call { return &CharacterRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } -func (_c *CharacterRepo_Get_Call) Run(run func(ctx context.Context, id uint32)) *CharacterRepo_Get_Call { +func (_c *CharacterRepo_Get_Call) Run(run func(ctx context.Context, id model.CharacterID)) *CharacterRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *CharacterRepo_Get_Call) Return(_a0 model.Character, _a1 error) *CharacterRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *CharacterRepo_Get_Call) Return(character model.Character, err error) *CharacterRepo_Get_Call { + _c.Call.Return(character, err) return _c } -func (_c *CharacterRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (model.Character, error)) *CharacterRepo_Get_Call { +func (_c *CharacterRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.CharacterID) (model.Character, error)) *CharacterRepo_Get_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids -func (_m *CharacterRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Character, error) { - ret := _m.Called(ctx, ids) +// GetByIDs provides a mock function for the type CharacterRepo +func (_mock *CharacterRepo) GetByIDs(ctx context.Context, ids []model.CharacterID) (map[model.CharacterID]model.Character, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32]model.Character + var r0 map[model.CharacterID]model.Character var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Character, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.CharacterID) (map[model.CharacterID]model.Character, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32]model.Character); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.CharacterID) map[model.CharacterID]model.Character); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]model.Character) + r0 = ret.Get(0).(map[model.CharacterID]model.Character) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.CharacterID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -120,32 +129,32 @@ type CharacterRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 +// - ctx +// - ids func (_e *CharacterRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *CharacterRepo_GetByIDs_Call { return &CharacterRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } -func (_c *CharacterRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *CharacterRepo_GetByIDs_Call { +func (_c *CharacterRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.CharacterID)) *CharacterRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].([]model.CharacterID)) }) return _c } -func (_c *CharacterRepo_GetByIDs_Call) Return(_a0 map[uint32]model.Character, _a1 error) *CharacterRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *CharacterRepo_GetByIDs_Call) Return(vToCharacter map[model.CharacterID]model.Character, err error) *CharacterRepo_GetByIDs_Call { + _c.Call.Return(vToCharacter, err) return _c } -func (_c *CharacterRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32]model.Character, error)) *CharacterRepo_GetByIDs_Call { +func (_c *CharacterRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.CharacterID) (map[model.CharacterID]model.Character, error)) *CharacterRepo_GetByIDs_Call { _c.Call.Return(run) return _c } -// GetPersonRelated provides a mock function with given fields: ctx, personID -func (_m *CharacterRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.PersonCharacterRelation, error) { - ret := _m.Called(ctx, personID) +// GetPersonRelated provides a mock function for the type CharacterRepo +func (_mock *CharacterRepo) GetPersonRelated(ctx context.Context, personID model.PersonID) ([]domain.PersonCharacterRelation, error) { + ret := _mock.Called(ctx, personID) if len(ret) == 0 { panic("no return value specified for GetPersonRelated") @@ -153,23 +162,21 @@ func (_m *CharacterRepo) GetPersonRelated(ctx context.Context, personID uint32) var r0 []domain.PersonCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { - return rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) ([]domain.PersonCharacterRelation, error)); ok { + return returnFunc(ctx, personID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.PersonCharacterRelation); ok { - r0 = rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) []domain.PersonCharacterRelation); ok { + r0 = returnFunc(ctx, personID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.PersonCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, personID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, personID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -179,32 +186,32 @@ type CharacterRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - personID uint32 +// - ctx +// - personID func (_e *CharacterRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *CharacterRepo_GetPersonRelated_Call { return &CharacterRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } -func (_c *CharacterRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID uint32)) *CharacterRepo_GetPersonRelated_Call { +func (_c *CharacterRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *CharacterRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *CharacterRepo_GetPersonRelated_Call) Return(_a0 []domain.PersonCharacterRelation, _a1 error) *CharacterRepo_GetPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *CharacterRepo_GetPersonRelated_Call) Return(personCharacterRelations []domain.PersonCharacterRelation, err error) *CharacterRepo_GetPersonRelated_Call { + _c.Call.Return(personCharacterRelations, err) return _c } -func (_c *CharacterRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)) *CharacterRepo_GetPersonRelated_Call { +func (_c *CharacterRepo_GetPersonRelated_Call) RunAndReturn(run func(ctx context.Context, personID model.PersonID) ([]domain.PersonCharacterRelation, error)) *CharacterRepo_GetPersonRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, subjectID -func (_m *CharacterRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectCharacterRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetSubjectRelated provides a mock function for the type CharacterRepo +func (_mock *CharacterRepo) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectCharacterRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") @@ -212,23 +219,21 @@ func (_m *CharacterRepo) GetSubjectRelated(ctx context.Context, subjectID uint32 var r0 []domain.SubjectCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) ([]domain.SubjectCharacterRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectCharacterRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) []domain.SubjectCharacterRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -238,32 +243,32 @@ type CharacterRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *CharacterRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *CharacterRepo_GetSubjectRelated_Call { return &CharacterRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } -func (_c *CharacterRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *CharacterRepo_GetSubjectRelated_Call { +func (_c *CharacterRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *CharacterRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *CharacterRepo_GetSubjectRelated_Call) Return(_a0 []domain.SubjectCharacterRelation, _a1 error) *CharacterRepo_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *CharacterRepo_GetSubjectRelated_Call) Return(subjectCharacterRelations []domain.SubjectCharacterRelation, err error) *CharacterRepo_GetSubjectRelated_Call { + _c.Call.Return(subjectCharacterRelations, err) return _c } -func (_c *CharacterRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)) *CharacterRepo_GetSubjectRelated_Call { +func (_c *CharacterRepo_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectCharacterRelation, error)) *CharacterRepo_GetSubjectRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelationByIDs provides a mock function with given fields: ctx, ids -func (_m *CharacterRepo) GetSubjectRelationByIDs(ctx context.Context, ids []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error) { - ret := _m.Called(ctx, ids) +// GetSubjectRelationByIDs provides a mock function for the type CharacterRepo +func (_mock *CharacterRepo) GetSubjectRelationByIDs(ctx context.Context, ids []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetSubjectRelationByIDs") @@ -271,23 +276,21 @@ func (_m *CharacterRepo) GetSubjectRelationByIDs(ctx context.Context, ids []char var r0 []domain.SubjectCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []character.SubjectCompositeID) []domain.SubjectCharacterRelation); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []character.SubjectCompositeID) []domain.SubjectCharacterRelation); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, []character.SubjectCompositeID) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []character.SubjectCompositeID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -297,8 +300,8 @@ type CharacterRepo_GetSubjectRelationByIDs_Call struct { } // GetSubjectRelationByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []character.SubjectCompositeID +// - ctx +// - ids func (_e *CharacterRepo_Expecter) GetSubjectRelationByIDs(ctx interface{}, ids interface{}) *CharacterRepo_GetSubjectRelationByIDs_Call { return &CharacterRepo_GetSubjectRelationByIDs_Call{Call: _e.mock.On("GetSubjectRelationByIDs", ctx, ids)} } @@ -310,26 +313,12 @@ func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) Run(run func(ctx context.C return _c } -func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) Return(_a0 []domain.SubjectCharacterRelation, _a1 error) *CharacterRepo_GetSubjectRelationByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) Return(subjectCharacterRelations []domain.SubjectCharacterRelation, err error) *CharacterRepo_GetSubjectRelationByIDs_Call { + _c.Call.Return(subjectCharacterRelations, err) return _c } -func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) RunAndReturn(run func(context.Context, []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error)) *CharacterRepo_GetSubjectRelationByIDs_Call { +func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []character.SubjectCompositeID) ([]domain.SubjectCharacterRelation, error)) *CharacterRepo_GetSubjectRelationByIDs_Call { _c.Call.Return(run) return _c } - -// NewCharacterRepo creates a new instance of CharacterRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewCharacterRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *CharacterRepo { - mock := &CharacterRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/CollectionRepo.go b/internal/mocks/CollectionRepo.go deleted file mode 100644 index 4c510aa71..000000000 --- a/internal/mocks/CollectionRepo.go +++ /dev/null @@ -1,777 +0,0 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. - -package mocks - -import ( - collections "github.com/bangumi/server/internal/collections" - collection "github.com/bangumi/server/internal/collections/domain/collection" - - context "context" - - mock "github.com/stretchr/testify/mock" - - model "github.com/bangumi/server/internal/model" - - query "github.com/bangumi/server/dal/query" - - time "time" -) - -// CollectionRepo is an autogenerated mock type for the Repo type -type CollectionRepo struct { - mock.Mock -} - -type CollectionRepo_Expecter struct { - mock *mock.Mock -} - -func (_m *CollectionRepo) EXPECT() *CollectionRepo_Expecter { - return &CollectionRepo_Expecter{mock: &_m.Mock} -} - -// AddPersonCollection provides a mock function with given fields: ctx, userID, cat, targetID -func (_m *CollectionRepo) AddPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) error { - ret := _m.Called(ctx, userID, cat, targetID) - - if len(ret) == 0 { - panic("no return value specified for AddPersonCollection") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { - r0 = rf(ctx, userID, cat, targetID) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// CollectionRepo_AddPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPersonCollection' -type CollectionRepo_AddPersonCollection_Call struct { - *mock.Call -} - -// AddPersonCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - cat collection.PersonCollectCategory -// - targetID uint32 -func (_e *CollectionRepo_Expecter) AddPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_AddPersonCollection_Call { - return &CollectionRepo_AddPersonCollection_Call{Call: _e.mock.On("AddPersonCollection", ctx, userID, cat, targetID)} -} - -func (_c *CollectionRepo_AddPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_AddPersonCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) - }) - return _c -} - -func (_c *CollectionRepo_AddPersonCollection_Call) Return(_a0 error) *CollectionRepo_AddPersonCollection_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *CollectionRepo_AddPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) error) *CollectionRepo_AddPersonCollection_Call { - _c.Call.Return(run) - return _c -} - -// CountPersonCollections provides a mock function with given fields: ctx, userID, cat -func (_m *CollectionRepo) CountPersonCollections(ctx context.Context, userID uint32, cat collection.PersonCollectCategory) (int64, error) { - ret := _m.Called(ctx, userID, cat) - - if len(ret) == 0 { - panic("no return value specified for CountPersonCollections") - } - - var r0 int64 - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory) (int64, error)); ok { - return rf(ctx, userID, cat) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory) int64); ok { - r0 = rf(ctx, userID, cat) - } else { - r0 = ret.Get(0).(int64) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory) error); ok { - r1 = rf(ctx, userID, cat) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_CountPersonCollections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountPersonCollections' -type CollectionRepo_CountPersonCollections_Call struct { - *mock.Call -} - -// CountPersonCollections is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - cat collection.PersonCollectCategory -func (_e *CollectionRepo_Expecter) CountPersonCollections(ctx interface{}, userID interface{}, cat interface{}) *CollectionRepo_CountPersonCollections_Call { - return &CollectionRepo_CountPersonCollections_Call{Call: _e.mock.On("CountPersonCollections", ctx, userID, cat)} -} - -func (_c *CollectionRepo_CountPersonCollections_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory)) *CollectionRepo_CountPersonCollections_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory)) - }) - return _c -} - -func (_c *CollectionRepo_CountPersonCollections_Call) Return(_a0 int64, _a1 error) *CollectionRepo_CountPersonCollections_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_CountPersonCollections_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory) (int64, error)) *CollectionRepo_CountPersonCollections_Call { - _c.Call.Return(run) - return _c -} - -// CountSubjectCollections provides a mock function with given fields: ctx, userID, subjectType, collectionType, showPrivate -func (_m *CollectionRepo) CountSubjectCollections(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool) (int64, error) { - ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate) - - if len(ret) == 0 { - panic("no return value specified for CountSubjectCollections") - } - - var r0 int64 - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool) (int64, error)); ok { - return rf(ctx, userID, subjectType, collectionType, showPrivate) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool) int64); ok { - r0 = rf(ctx, userID, subjectType, collectionType, showPrivate) - } else { - r0 = ret.Get(0).(int64) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool) error); ok { - r1 = rf(ctx, userID, subjectType, collectionType, showPrivate) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_CountSubjectCollections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountSubjectCollections' -type CollectionRepo_CountSubjectCollections_Call struct { - *mock.Call -} - -// CountSubjectCollections is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subjectType uint8 -// - collectionType collection.SubjectCollection -// - showPrivate bool -func (_e *CollectionRepo_Expecter) CountSubjectCollections(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}) *CollectionRepo_CountSubjectCollections_Call { - return &CollectionRepo_CountSubjectCollections_Call{Call: _e.mock.On("CountSubjectCollections", ctx, userID, subjectType, collectionType, showPrivate)} -} - -func (_c *CollectionRepo_CountSubjectCollections_Call) Run(run func(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool)) *CollectionRepo_CountSubjectCollections_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint8), args[3].(collection.SubjectCollection), args[4].(bool)) - }) - return _c -} - -func (_c *CollectionRepo_CountSubjectCollections_Call) Return(_a0 int64, _a1 error) *CollectionRepo_CountSubjectCollections_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_CountSubjectCollections_Call) RunAndReturn(run func(context.Context, uint32, uint8, collection.SubjectCollection, bool) (int64, error)) *CollectionRepo_CountSubjectCollections_Call { - _c.Call.Return(run) - return _c -} - -// GetPersonCollection provides a mock function with given fields: ctx, userID, cat, targetID -func (_m *CollectionRepo) GetPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) (collection.UserPersonCollection, error) { - ret := _m.Called(ctx, userID, cat, targetID) - - if len(ret) == 0 { - panic("no return value specified for GetPersonCollection") - } - - var r0 collection.UserPersonCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) (collection.UserPersonCollection, error)); ok { - return rf(ctx, userID, cat, targetID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) collection.UserPersonCollection); ok { - r0 = rf(ctx, userID, cat, targetID) - } else { - r0 = ret.Get(0).(collection.UserPersonCollection) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { - r1 = rf(ctx, userID, cat, targetID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_GetPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPersonCollection' -type CollectionRepo_GetPersonCollection_Call struct { - *mock.Call -} - -// GetPersonCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - cat collection.PersonCollectCategory -// - targetID uint32 -func (_e *CollectionRepo_Expecter) GetPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_GetPersonCollection_Call { - return &CollectionRepo_GetPersonCollection_Call{Call: _e.mock.On("GetPersonCollection", ctx, userID, cat, targetID)} -} - -func (_c *CollectionRepo_GetPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_GetPersonCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) - }) - return _c -} - -func (_c *CollectionRepo_GetPersonCollection_Call) Return(_a0 collection.UserPersonCollection, _a1 error) *CollectionRepo_GetPersonCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_GetPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) (collection.UserPersonCollection, error)) *CollectionRepo_GetPersonCollection_Call { - _c.Call.Return(run) - return _c -} - -// GetSubjectCollection provides a mock function with given fields: ctx, userID, subjectID -func (_m *CollectionRepo) GetSubjectCollection(ctx context.Context, userID uint32, subjectID uint32) (collection.UserSubjectCollection, error) { - ret := _m.Called(ctx, userID, subjectID) - - if len(ret) == 0 { - panic("no return value specified for GetSubjectCollection") - } - - var r0 collection.UserSubjectCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (collection.UserSubjectCollection, error)); ok { - return rf(ctx, userID, subjectID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) collection.UserSubjectCollection); ok { - r0 = rf(ctx, userID, subjectID) - } else { - r0 = ret.Get(0).(collection.UserSubjectCollection) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32) error); ok { - r1 = rf(ctx, userID, subjectID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_GetSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSubjectCollection' -type CollectionRepo_GetSubjectCollection_Call struct { - *mock.Call -} - -// GetSubjectCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subjectID uint32 -func (_e *CollectionRepo_Expecter) GetSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionRepo_GetSubjectCollection_Call { - return &CollectionRepo_GetSubjectCollection_Call{Call: _e.mock.On("GetSubjectCollection", ctx, userID, subjectID)} -} - -func (_c *CollectionRepo_GetSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32)) *CollectionRepo_GetSubjectCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) - }) - return _c -} - -func (_c *CollectionRepo_GetSubjectCollection_Call) Return(_a0 collection.UserSubjectCollection, _a1 error) *CollectionRepo_GetSubjectCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_GetSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32) (collection.UserSubjectCollection, error)) *CollectionRepo_GetSubjectCollection_Call { - _c.Call.Return(run) - return _c -} - -// GetSubjectEpisodesCollection provides a mock function with given fields: ctx, userID, subjectID -func (_m *CollectionRepo) GetSubjectEpisodesCollection(ctx context.Context, userID uint32, subjectID uint32) (collection.UserSubjectEpisodesCollection, error) { - ret := _m.Called(ctx, userID, subjectID) - - if len(ret) == 0 { - panic("no return value specified for GetSubjectEpisodesCollection") - } - - var r0 collection.UserSubjectEpisodesCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (collection.UserSubjectEpisodesCollection, error)); ok { - return rf(ctx, userID, subjectID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) collection.UserSubjectEpisodesCollection); ok { - r0 = rf(ctx, userID, subjectID) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(collection.UserSubjectEpisodesCollection) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32) error); ok { - r1 = rf(ctx, userID, subjectID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_GetSubjectEpisodesCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSubjectEpisodesCollection' -type CollectionRepo_GetSubjectEpisodesCollection_Call struct { - *mock.Call -} - -// GetSubjectEpisodesCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subjectID uint32 -func (_e *CollectionRepo_Expecter) GetSubjectEpisodesCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionRepo_GetSubjectEpisodesCollection_Call { - return &CollectionRepo_GetSubjectEpisodesCollection_Call{Call: _e.mock.On("GetSubjectEpisodesCollection", ctx, userID, subjectID)} -} - -func (_c *CollectionRepo_GetSubjectEpisodesCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32)) *CollectionRepo_GetSubjectEpisodesCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) - }) - return _c -} - -func (_c *CollectionRepo_GetSubjectEpisodesCollection_Call) Return(_a0 collection.UserSubjectEpisodesCollection, _a1 error) *CollectionRepo_GetSubjectEpisodesCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_GetSubjectEpisodesCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32) (collection.UserSubjectEpisodesCollection, error)) *CollectionRepo_GetSubjectEpisodesCollection_Call { - _c.Call.Return(run) - return _c -} - -// ListPersonCollection provides a mock function with given fields: ctx, userID, cat, limit, offset -func (_m *CollectionRepo) ListPersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, limit int, offset int) ([]collection.UserPersonCollection, error) { - ret := _m.Called(ctx, userID, cat, limit, offset) - - if len(ret) == 0 { - panic("no return value specified for ListPersonCollection") - } - - var r0 []collection.UserPersonCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) ([]collection.UserPersonCollection, error)); ok { - return rf(ctx, userID, cat, limit, offset) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) []collection.UserPersonCollection); ok { - r0 = rf(ctx, userID, cat, limit, offset) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]collection.UserPersonCollection) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, collection.PersonCollectCategory, int, int) error); ok { - r1 = rf(ctx, userID, cat, limit, offset) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_ListPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListPersonCollection' -type CollectionRepo_ListPersonCollection_Call struct { - *mock.Call -} - -// ListPersonCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - cat collection.PersonCollectCategory -// - limit int -// - offset int -func (_e *CollectionRepo_Expecter) ListPersonCollection(ctx interface{}, userID interface{}, cat interface{}, limit interface{}, offset interface{}) *CollectionRepo_ListPersonCollection_Call { - return &CollectionRepo_ListPersonCollection_Call{Call: _e.mock.On("ListPersonCollection", ctx, userID, cat, limit, offset)} -} - -func (_c *CollectionRepo_ListPersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, limit int, offset int)) *CollectionRepo_ListPersonCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(int), args[4].(int)) - }) - return _c -} - -func (_c *CollectionRepo_ListPersonCollection_Call) Return(_a0 []collection.UserPersonCollection, _a1 error) *CollectionRepo_ListPersonCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_ListPersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, int, int) ([]collection.UserPersonCollection, error)) *CollectionRepo_ListPersonCollection_Call { - _c.Call.Return(run) - return _c -} - -// ListSubjectCollection provides a mock function with given fields: ctx, userID, subjectType, collectionType, showPrivate, limit, offset -func (_m *CollectionRepo) ListSubjectCollection(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int) ([]collection.UserSubjectCollection, error) { - ret := _m.Called(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) - - if len(ret) == 0 { - panic("no return value specified for ListSubjectCollection") - } - - var r0 []collection.UserSubjectCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool, int, int) ([]collection.UserSubjectCollection, error)); ok { - return rf(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool, int, int) []collection.UserSubjectCollection); ok { - r0 = rf(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]collection.UserSubjectCollection) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8, collection.SubjectCollection, bool, int, int) error); ok { - r1 = rf(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_ListSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListSubjectCollection' -type CollectionRepo_ListSubjectCollection_Call struct { - *mock.Call -} - -// ListSubjectCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subjectType uint8 -// - collectionType collection.SubjectCollection -// - showPrivate bool -// - limit int -// - offset int -func (_e *CollectionRepo_Expecter) ListSubjectCollection(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}, limit interface{}, offset interface{}) *CollectionRepo_ListSubjectCollection_Call { - return &CollectionRepo_ListSubjectCollection_Call{Call: _e.mock.On("ListSubjectCollection", ctx, userID, subjectType, collectionType, showPrivate, limit, offset)} -} - -func (_c *CollectionRepo_ListSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectType uint8, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int)) *CollectionRepo_ListSubjectCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint8), args[3].(collection.SubjectCollection), args[4].(bool), args[5].(int), args[6].(int)) - }) - return _c -} - -func (_c *CollectionRepo_ListSubjectCollection_Call) Return(_a0 []collection.UserSubjectCollection, _a1 error) *CollectionRepo_ListSubjectCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_ListSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, uint8, collection.SubjectCollection, bool, int, int) ([]collection.UserSubjectCollection, error)) *CollectionRepo_ListSubjectCollection_Call { - _c.Call.Return(run) - return _c -} - -// RemovePersonCollection provides a mock function with given fields: ctx, userID, cat, targetID -func (_m *CollectionRepo) RemovePersonCollection(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32) error { - ret := _m.Called(ctx, userID, cat, targetID) - - if len(ret) == 0 { - panic("no return value specified for RemovePersonCollection") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, collection.PersonCollectCategory, uint32) error); ok { - r0 = rf(ctx, userID, cat, targetID) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// CollectionRepo_RemovePersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RemovePersonCollection' -type CollectionRepo_RemovePersonCollection_Call struct { - *mock.Call -} - -// RemovePersonCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - cat collection.PersonCollectCategory -// - targetID uint32 -func (_e *CollectionRepo_Expecter) RemovePersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionRepo_RemovePersonCollection_Call { - return &CollectionRepo_RemovePersonCollection_Call{Call: _e.mock.On("RemovePersonCollection", ctx, userID, cat, targetID)} -} - -func (_c *CollectionRepo_RemovePersonCollection_Call) Run(run func(ctx context.Context, userID uint32, cat collection.PersonCollectCategory, targetID uint32)) *CollectionRepo_RemovePersonCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(collection.PersonCollectCategory), args[3].(uint32)) - }) - return _c -} - -func (_c *CollectionRepo_RemovePersonCollection_Call) Return(_a0 error) *CollectionRepo_RemovePersonCollection_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *CollectionRepo_RemovePersonCollection_Call) RunAndReturn(run func(context.Context, uint32, collection.PersonCollectCategory, uint32) error) *CollectionRepo_RemovePersonCollection_Call { - _c.Call.Return(run) - return _c -} - -// UpdateEpisodeCollection provides a mock function with given fields: ctx, userID, subjectID, episodeIDs, _a4, at -func (_m *CollectionRepo) UpdateEpisodeCollection(ctx context.Context, userID uint32, subjectID uint32, episodeIDs []uint32, _a4 collection.EpisodeCollection, at time.Time) (collection.UserSubjectEpisodesCollection, error) { - ret := _m.Called(ctx, userID, subjectID, episodeIDs, _a4, at) - - if len(ret) == 0 { - panic("no return value specified for UpdateEpisodeCollection") - } - - var r0 collection.UserSubjectEpisodesCollection - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, []uint32, collection.EpisodeCollection, time.Time) (collection.UserSubjectEpisodesCollection, error)); ok { - return rf(ctx, userID, subjectID, episodeIDs, _a4, at) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, []uint32, collection.EpisodeCollection, time.Time) collection.UserSubjectEpisodesCollection); ok { - r0 = rf(ctx, userID, subjectID, episodeIDs, _a4, at) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(collection.UserSubjectEpisodesCollection) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32, []uint32, collection.EpisodeCollection, time.Time) error); ok { - r1 = rf(ctx, userID, subjectID, episodeIDs, _a4, at) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// CollectionRepo_UpdateEpisodeCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateEpisodeCollection' -type CollectionRepo_UpdateEpisodeCollection_Call struct { - *mock.Call -} - -// UpdateEpisodeCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subjectID uint32 -// - episodeIDs []uint32 -// - _a4 collection.EpisodeCollection -// - at time.Time -func (_e *CollectionRepo_Expecter) UpdateEpisodeCollection(ctx interface{}, userID interface{}, subjectID interface{}, episodeIDs interface{}, _a4 interface{}, at interface{}) *CollectionRepo_UpdateEpisodeCollection_Call { - return &CollectionRepo_UpdateEpisodeCollection_Call{Call: _e.mock.On("UpdateEpisodeCollection", ctx, userID, subjectID, episodeIDs, _a4, at)} -} - -func (_c *CollectionRepo_UpdateEpisodeCollection_Call) Run(run func(ctx context.Context, userID uint32, subjectID uint32, episodeIDs []uint32, _a4 collection.EpisodeCollection, at time.Time)) *CollectionRepo_UpdateEpisodeCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32), args[3].([]uint32), args[4].(collection.EpisodeCollection), args[5].(time.Time)) - }) - return _c -} - -func (_c *CollectionRepo_UpdateEpisodeCollection_Call) Return(_a0 collection.UserSubjectEpisodesCollection, _a1 error) *CollectionRepo_UpdateEpisodeCollection_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *CollectionRepo_UpdateEpisodeCollection_Call) RunAndReturn(run func(context.Context, uint32, uint32, []uint32, collection.EpisodeCollection, time.Time) (collection.UserSubjectEpisodesCollection, error)) *CollectionRepo_UpdateEpisodeCollection_Call { - _c.Call.Return(run) - return _c -} - -// UpdateOrCreateSubjectCollection provides a mock function with given fields: ctx, userID, subject, at, ip, update -func (_m *CollectionRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { - ret := _m.Called(ctx, userID, subject, at, ip, update) - - if len(ret) == 0 { - panic("no return value specified for UpdateOrCreateSubjectCollection") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { - r0 = rf(ctx, userID, subject, at, ip, update) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// CollectionRepo_UpdateOrCreateSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateOrCreateSubjectCollection' -type CollectionRepo_UpdateOrCreateSubjectCollection_Call struct { - *mock.Call -} - -// UpdateOrCreateSubjectCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subject model.Subject -// - at time.Time -// - ip string -// - update func(context.Context , *collection.Subject)(*collection.Subject , error) -func (_e *CollectionRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { - return &CollectionRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subject, at, ip, update)} -} - -func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) - }) - return _c -} - -func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) Return(_a0 error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *CollectionRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateOrCreateSubjectCollection_Call { - _c.Call.Return(run) - return _c -} - -// UpdateSubjectCollection provides a mock function with given fields: ctx, userID, subject, at, ip, update -func (_m *CollectionRepo) UpdateSubjectCollection(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error)) error { - ret := _m.Called(ctx, userID, subject, at, ip, update) - - if len(ret) == 0 { - panic("no return value specified for UpdateSubjectCollection") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error); ok { - r0 = rf(ctx, userID, subject, at, ip, update) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// CollectionRepo_UpdateSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateSubjectCollection' -type CollectionRepo_UpdateSubjectCollection_Call struct { - *mock.Call -} - -// UpdateSubjectCollection is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - subject model.Subject -// - at time.Time -// - ip string -// - update func(context.Context , *collection.Subject)(*collection.Subject , error) -func (_e *CollectionRepo_Expecter) UpdateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionRepo_UpdateSubjectCollection_Call { - return &CollectionRepo_UpdateSubjectCollection_Call{Call: _e.mock.On("UpdateSubjectCollection", ctx, userID, subject, at, ip, update)} -} - -func (_c *CollectionRepo_UpdateSubjectCollection_Call) Run(run func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, update func(context.Context, *collection.Subject) (*collection.Subject, error))) *CollectionRepo_UpdateSubjectCollection_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(context.Context, *collection.Subject) (*collection.Subject, error))) - }) - return _c -} - -func (_c *CollectionRepo_UpdateSubjectCollection_Call) Return(_a0 error) *CollectionRepo_UpdateSubjectCollection_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *CollectionRepo_UpdateSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, time.Time, string, func(context.Context, *collection.Subject) (*collection.Subject, error)) error) *CollectionRepo_UpdateSubjectCollection_Call { - _c.Call.Return(run) - return _c -} - -// WithQuery provides a mock function with given fields: _a0 -func (_m *CollectionRepo) WithQuery(_a0 *query.Query) collections.Repo { - ret := _m.Called(_a0) - - if len(ret) == 0 { - panic("no return value specified for WithQuery") - } - - var r0 collections.Repo - if rf, ok := ret.Get(0).(func(*query.Query) collections.Repo); ok { - r0 = rf(_a0) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(collections.Repo) - } - } - - return r0 -} - -// CollectionRepo_WithQuery_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WithQuery' -type CollectionRepo_WithQuery_Call struct { - *mock.Call -} - -// WithQuery is a helper method to define mock.On call -// - _a0 *query.Query -func (_e *CollectionRepo_Expecter) WithQuery(_a0 interface{}) *CollectionRepo_WithQuery_Call { - return &CollectionRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", _a0)} -} - -func (_c *CollectionRepo_WithQuery_Call) Run(run func(_a0 *query.Query)) *CollectionRepo_WithQuery_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*query.Query)) - }) - return _c -} - -func (_c *CollectionRepo_WithQuery_Call) Return(_a0 collections.Repo) *CollectionRepo_WithQuery_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *CollectionRepo_WithQuery_Call) RunAndReturn(run func(*query.Query) collections.Repo) *CollectionRepo_WithQuery_Call { - _c.Call.Return(run) - return _c -} - -// NewCollectionRepo creates a new instance of CollectionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewCollectionRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *CollectionRepo { - mock := &CollectionRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/CollectionsRepo.go b/internal/mocks/CollectionsRepo.go new file mode 100644 index 000000000..42ccd534c --- /dev/null +++ b/internal/mocks/CollectionsRepo.go @@ -0,0 +1,754 @@ +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify + +package mocks + +import ( + "context" + "time" + + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/collections" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/model" + mock "github.com/stretchr/testify/mock" +) + +// NewCollectionsRepo creates a new instance of CollectionsRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionsRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionsRepo { + mock := &CollectionsRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + +// CollectionsRepo is an autogenerated mock type for the Repo type +type CollectionsRepo struct { + mock.Mock +} + +type CollectionsRepo_Expecter struct { + mock *mock.Mock +} + +func (_m *CollectionsRepo) EXPECT() *CollectionsRepo_Expecter { + return &CollectionsRepo_Expecter{mock: &_m.Mock} +} + +// AddPersonCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) AddPersonCollection(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) error { + ret := _mock.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for AddPersonCollection") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, model.PersonID) error); ok { + r0 = returnFunc(ctx, userID, cat, targetID) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// CollectionsRepo_AddPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPersonCollection' +type CollectionsRepo_AddPersonCollection_Call struct { + *mock.Call +} + +// AddPersonCollection is a helper method to define mock.On call +// - ctx +// - userID +// - cat +// - targetID +func (_e *CollectionsRepo_Expecter) AddPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_AddPersonCollection_Call { + return &CollectionsRepo_AddPersonCollection_Call{Call: _e.mock.On("AddPersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionsRepo_AddPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_AddPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + }) + return _c +} + +func (_c *CollectionsRepo_AddPersonCollection_Call) Return(err error) *CollectionsRepo_AddPersonCollection_Call { + _c.Call.Return(err) + return _c +} + +func (_c *CollectionsRepo_AddPersonCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) error) *CollectionsRepo_AddPersonCollection_Call { + _c.Call.Return(run) + return _c +} + +// CountPersonCollections provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) CountPersonCollections(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory) (int64, error) { + ret := _mock.Called(ctx, userID, cat) + + if len(ret) == 0 { + panic("no return value specified for CountPersonCollections") + } + + var r0 int64 + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory) (int64, error)); ok { + return returnFunc(ctx, userID, cat) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory) int64); ok { + r0 = returnFunc(ctx, userID, cat) + } else { + r0 = ret.Get(0).(int64) + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, collection.PersonCollectCategory) error); ok { + r1 = returnFunc(ctx, userID, cat) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_CountPersonCollections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountPersonCollections' +type CollectionsRepo_CountPersonCollections_Call struct { + *mock.Call +} + +// CountPersonCollections is a helper method to define mock.On call +// - ctx +// - userID +// - cat +func (_e *CollectionsRepo_Expecter) CountPersonCollections(ctx interface{}, userID interface{}, cat interface{}) *CollectionsRepo_CountPersonCollections_Call { + return &CollectionsRepo_CountPersonCollections_Call{Call: _e.mock.On("CountPersonCollections", ctx, userID, cat)} +} + +func (_c *CollectionsRepo_CountPersonCollections_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory)) *CollectionsRepo_CountPersonCollections_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory)) + }) + return _c +} + +func (_c *CollectionsRepo_CountPersonCollections_Call) Return(n int64, err error) *CollectionsRepo_CountPersonCollections_Call { + _c.Call.Return(n, err) + return _c +} + +func (_c *CollectionsRepo_CountPersonCollections_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory) (int64, error)) *CollectionsRepo_CountPersonCollections_Call { + _c.Call.Return(run) + return _c +} + +// CountSubjectCollections provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) CountSubjectCollections(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool) (int64, error) { + ret := _mock.Called(ctx, userID, subjectType, collectionType, showPrivate) + + if len(ret) == 0 { + panic("no return value specified for CountSubjectCollections") + } + + var r0 int64 + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool) (int64, error)); ok { + return returnFunc(ctx, userID, subjectType, collectionType, showPrivate) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool) int64); ok { + r0 = returnFunc(ctx, userID, subjectType, collectionType, showPrivate) + } else { + r0 = ret.Get(0).(int64) + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool) error); ok { + r1 = returnFunc(ctx, userID, subjectType, collectionType, showPrivate) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_CountSubjectCollections_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CountSubjectCollections' +type CollectionsRepo_CountSubjectCollections_Call struct { + *mock.Call +} + +// CountSubjectCollections is a helper method to define mock.On call +// - ctx +// - userID +// - subjectType +// - collectionType +// - showPrivate +func (_e *CollectionsRepo_Expecter) CountSubjectCollections(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}) *CollectionsRepo_CountSubjectCollections_Call { + return &CollectionsRepo_CountSubjectCollections_Call{Call: _e.mock.On("CountSubjectCollections", ctx, userID, subjectType, collectionType, showPrivate)} +} + +func (_c *CollectionsRepo_CountSubjectCollections_Call) Run(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool)) *CollectionsRepo_CountSubjectCollections_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectType), args[3].(collection.SubjectCollection), args[4].(bool)) + }) + return _c +} + +func (_c *CollectionsRepo_CountSubjectCollections_Call) Return(n int64, err error) *CollectionsRepo_CountSubjectCollections_Call { + _c.Call.Return(n, err) + return _c +} + +func (_c *CollectionsRepo_CountSubjectCollections_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool) (int64, error)) *CollectionsRepo_CountSubjectCollections_Call { + _c.Call.Return(run) + return _c +} + +// GetPersonCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) GetPersonCollection(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) (collection.UserPersonCollection, error) { + ret := _mock.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for GetPersonCollection") + } + + var r0 collection.UserPersonCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, model.PersonID) (collection.UserPersonCollection, error)); ok { + return returnFunc(ctx, userID, cat, targetID) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, model.PersonID) collection.UserPersonCollection); ok { + r0 = returnFunc(ctx, userID, cat, targetID) + } else { + r0 = ret.Get(0).(collection.UserPersonCollection) + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, collection.PersonCollectCategory, model.PersonID) error); ok { + r1 = returnFunc(ctx, userID, cat, targetID) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_GetPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetPersonCollection' +type CollectionsRepo_GetPersonCollection_Call struct { + *mock.Call +} + +// GetPersonCollection is a helper method to define mock.On call +// - ctx +// - userID +// - cat +// - targetID +func (_e *CollectionsRepo_Expecter) GetPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_GetPersonCollection_Call { + return &CollectionsRepo_GetPersonCollection_Call{Call: _e.mock.On("GetPersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionsRepo_GetPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_GetPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + }) + return _c +} + +func (_c *CollectionsRepo_GetPersonCollection_Call) Return(userPersonCollection collection.UserPersonCollection, err error) *CollectionsRepo_GetPersonCollection_Call { + _c.Call.Return(userPersonCollection, err) + return _c +} + +func (_c *CollectionsRepo_GetPersonCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) (collection.UserPersonCollection, error)) *CollectionsRepo_GetPersonCollection_Call { + _c.Call.Return(run) + return _c +} + +// GetSubjectCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) GetSubjectCollection(ctx context.Context, userID model.UserID, subjectID model.SubjectID) (collection.UserSubjectCollection, error) { + ret := _mock.Called(ctx, userID, subjectID) + + if len(ret) == 0 { + panic("no return value specified for GetSubjectCollection") + } + + var r0 collection.UserSubjectCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID) (collection.UserSubjectCollection, error)); ok { + return returnFunc(ctx, userID, subjectID) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID) collection.UserSubjectCollection); ok { + r0 = returnFunc(ctx, userID, subjectID) + } else { + r0 = ret.Get(0).(collection.UserSubjectCollection) + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, model.SubjectID) error); ok { + r1 = returnFunc(ctx, userID, subjectID) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_GetSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSubjectCollection' +type CollectionsRepo_GetSubjectCollection_Call struct { + *mock.Call +} + +// GetSubjectCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subjectID +func (_e *CollectionsRepo_Expecter) GetSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionsRepo_GetSubjectCollection_Call { + return &CollectionsRepo_GetSubjectCollection_Call{Call: _e.mock.On("GetSubjectCollection", ctx, userID, subjectID)} +} + +func (_c *CollectionsRepo_GetSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID)) *CollectionsRepo_GetSubjectCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID)) + }) + return _c +} + +func (_c *CollectionsRepo_GetSubjectCollection_Call) Return(userSubjectCollection collection.UserSubjectCollection, err error) *CollectionsRepo_GetSubjectCollection_Call { + _c.Call.Return(userSubjectCollection, err) + return _c +} + +func (_c *CollectionsRepo_GetSubjectCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID) (collection.UserSubjectCollection, error)) *CollectionsRepo_GetSubjectCollection_Call { + _c.Call.Return(run) + return _c +} + +// GetSubjectEpisodesCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) GetSubjectEpisodesCollection(ctx context.Context, userID model.UserID, subjectID model.SubjectID) (collection.UserSubjectEpisodesCollection, error) { + ret := _mock.Called(ctx, userID, subjectID) + + if len(ret) == 0 { + panic("no return value specified for GetSubjectEpisodesCollection") + } + + var r0 collection.UserSubjectEpisodesCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID) (collection.UserSubjectEpisodesCollection, error)); ok { + return returnFunc(ctx, userID, subjectID) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID) collection.UserSubjectEpisodesCollection); ok { + r0 = returnFunc(ctx, userID, subjectID) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(collection.UserSubjectEpisodesCollection) + } + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, model.SubjectID) error); ok { + r1 = returnFunc(ctx, userID, subjectID) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_GetSubjectEpisodesCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetSubjectEpisodesCollection' +type CollectionsRepo_GetSubjectEpisodesCollection_Call struct { + *mock.Call +} + +// GetSubjectEpisodesCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subjectID +func (_e *CollectionsRepo_Expecter) GetSubjectEpisodesCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionsRepo_GetSubjectEpisodesCollection_Call { + return &CollectionsRepo_GetSubjectEpisodesCollection_Call{Call: _e.mock.On("GetSubjectEpisodesCollection", ctx, userID, subjectID)} +} + +func (_c *CollectionsRepo_GetSubjectEpisodesCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID)) *CollectionsRepo_GetSubjectEpisodesCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID)) + }) + return _c +} + +func (_c *CollectionsRepo_GetSubjectEpisodesCollection_Call) Return(userSubjectEpisodesCollection collection.UserSubjectEpisodesCollection, err error) *CollectionsRepo_GetSubjectEpisodesCollection_Call { + _c.Call.Return(userSubjectEpisodesCollection, err) + return _c +} + +func (_c *CollectionsRepo_GetSubjectEpisodesCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID) (collection.UserSubjectEpisodesCollection, error)) *CollectionsRepo_GetSubjectEpisodesCollection_Call { + _c.Call.Return(run) + return _c +} + +// ListPersonCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) ListPersonCollection(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, limit int, offset int) ([]collection.UserPersonCollection, error) { + ret := _mock.Called(ctx, userID, cat, limit, offset) + + if len(ret) == 0 { + panic("no return value specified for ListPersonCollection") + } + + var r0 []collection.UserPersonCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, int, int) ([]collection.UserPersonCollection, error)); ok { + return returnFunc(ctx, userID, cat, limit, offset) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, int, int) []collection.UserPersonCollection); ok { + r0 = returnFunc(ctx, userID, cat, limit, offset) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]collection.UserPersonCollection) + } + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, collection.PersonCollectCategory, int, int) error); ok { + r1 = returnFunc(ctx, userID, cat, limit, offset) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_ListPersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListPersonCollection' +type CollectionsRepo_ListPersonCollection_Call struct { + *mock.Call +} + +// ListPersonCollection is a helper method to define mock.On call +// - ctx +// - userID +// - cat +// - limit +// - offset +func (_e *CollectionsRepo_Expecter) ListPersonCollection(ctx interface{}, userID interface{}, cat interface{}, limit interface{}, offset interface{}) *CollectionsRepo_ListPersonCollection_Call { + return &CollectionsRepo_ListPersonCollection_Call{Call: _e.mock.On("ListPersonCollection", ctx, userID, cat, limit, offset)} +} + +func (_c *CollectionsRepo_ListPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, limit int, offset int)) *CollectionsRepo_ListPersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(int), args[4].(int)) + }) + return _c +} + +func (_c *CollectionsRepo_ListPersonCollection_Call) Return(userPersonCollections []collection.UserPersonCollection, err error) *CollectionsRepo_ListPersonCollection_Call { + _c.Call.Return(userPersonCollections, err) + return _c +} + +func (_c *CollectionsRepo_ListPersonCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, limit int, offset int) ([]collection.UserPersonCollection, error)) *CollectionsRepo_ListPersonCollection_Call { + _c.Call.Return(run) + return _c +} + +// ListSubjectCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) ListSubjectCollection(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int) ([]collection.UserSubjectCollection, error) { + ret := _mock.Called(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) + + if len(ret) == 0 { + panic("no return value specified for ListSubjectCollection") + } + + var r0 []collection.UserSubjectCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool, int, int) ([]collection.UserSubjectCollection, error)); ok { + return returnFunc(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool, int, int) []collection.UserSubjectCollection); ok { + r0 = returnFunc(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]collection.UserSubjectCollection) + } + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, model.SubjectType, collection.SubjectCollection, bool, int, int) error); ok { + r1 = returnFunc(ctx, userID, subjectType, collectionType, showPrivate, limit, offset) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_ListSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListSubjectCollection' +type CollectionsRepo_ListSubjectCollection_Call struct { + *mock.Call +} + +// ListSubjectCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subjectType +// - collectionType +// - showPrivate +// - limit +// - offset +func (_e *CollectionsRepo_Expecter) ListSubjectCollection(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}, limit interface{}, offset interface{}) *CollectionsRepo_ListSubjectCollection_Call { + return &CollectionsRepo_ListSubjectCollection_Call{Call: _e.mock.On("ListSubjectCollection", ctx, userID, subjectType, collectionType, showPrivate, limit, offset)} +} + +func (_c *CollectionsRepo_ListSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int)) *CollectionsRepo_ListSubjectCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectType), args[3].(collection.SubjectCollection), args[4].(bool), args[5].(int), args[6].(int)) + }) + return _c +} + +func (_c *CollectionsRepo_ListSubjectCollection_Call) Return(userSubjectCollections []collection.UserSubjectCollection, err error) *CollectionsRepo_ListSubjectCollection_Call { + _c.Call.Return(userSubjectCollections, err) + return _c +} + +func (_c *CollectionsRepo_ListSubjectCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int) ([]collection.UserSubjectCollection, error)) *CollectionsRepo_ListSubjectCollection_Call { + _c.Call.Return(run) + return _c +} + +// RemovePersonCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) RemovePersonCollection(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) error { + ret := _mock.Called(ctx, userID, cat, targetID) + + if len(ret) == 0 { + panic("no return value specified for RemovePersonCollection") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, collection.PersonCollectCategory, model.PersonID) error); ok { + r0 = returnFunc(ctx, userID, cat, targetID) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// CollectionsRepo_RemovePersonCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RemovePersonCollection' +type CollectionsRepo_RemovePersonCollection_Call struct { + *mock.Call +} + +// RemovePersonCollection is a helper method to define mock.On call +// - ctx +// - userID +// - cat +// - targetID +func (_e *CollectionsRepo_Expecter) RemovePersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_RemovePersonCollection_Call { + return &CollectionsRepo_RemovePersonCollection_Call{Call: _e.mock.On("RemovePersonCollection", ctx, userID, cat, targetID)} +} + +func (_c *CollectionsRepo_RemovePersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_RemovePersonCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + }) + return _c +} + +func (_c *CollectionsRepo_RemovePersonCollection_Call) Return(err error) *CollectionsRepo_RemovePersonCollection_Call { + _c.Call.Return(err) + return _c +} + +func (_c *CollectionsRepo_RemovePersonCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID) error) *CollectionsRepo_RemovePersonCollection_Call { + _c.Call.Return(run) + return _c +} + +// UpdateEpisodeCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) UpdateEpisodeCollection(ctx context.Context, userID model.UserID, subjectID model.SubjectID, episodeIDs []model.EpisodeID, collection1 collection.EpisodeCollection, at time.Time) (collection.UserSubjectEpisodesCollection, error) { + ret := _mock.Called(ctx, userID, subjectID, episodeIDs, collection1, at) + + if len(ret) == 0 { + panic("no return value specified for UpdateEpisodeCollection") + } + + var r0 collection.UserSubjectEpisodesCollection + var r1 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID, []model.EpisodeID, collection.EpisodeCollection, time.Time) (collection.UserSubjectEpisodesCollection, error)); ok { + return returnFunc(ctx, userID, subjectID, episodeIDs, collection1, at) + } + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.SubjectID, []model.EpisodeID, collection.EpisodeCollection, time.Time) collection.UserSubjectEpisodesCollection); ok { + r0 = returnFunc(ctx, userID, subjectID, episodeIDs, collection1, at) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(collection.UserSubjectEpisodesCollection) + } + } + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, model.SubjectID, []model.EpisodeID, collection.EpisodeCollection, time.Time) error); ok { + r1 = returnFunc(ctx, userID, subjectID, episodeIDs, collection1, at) + } else { + r1 = ret.Error(1) + } + return r0, r1 +} + +// CollectionsRepo_UpdateEpisodeCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateEpisodeCollection' +type CollectionsRepo_UpdateEpisodeCollection_Call struct { + *mock.Call +} + +// UpdateEpisodeCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subjectID +// - episodeIDs +// - collection1 +// - at +func (_e *CollectionsRepo_Expecter) UpdateEpisodeCollection(ctx interface{}, userID interface{}, subjectID interface{}, episodeIDs interface{}, collection1 interface{}, at interface{}) *CollectionsRepo_UpdateEpisodeCollection_Call { + return &CollectionsRepo_UpdateEpisodeCollection_Call{Call: _e.mock.On("UpdateEpisodeCollection", ctx, userID, subjectID, episodeIDs, collection1, at)} +} + +func (_c *CollectionsRepo_UpdateEpisodeCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID, episodeIDs []model.EpisodeID, collection1 collection.EpisodeCollection, at time.Time)) *CollectionsRepo_UpdateEpisodeCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID), args[3].([]model.EpisodeID), args[4].(collection.EpisodeCollection), args[5].(time.Time)) + }) + return _c +} + +func (_c *CollectionsRepo_UpdateEpisodeCollection_Call) Return(userSubjectEpisodesCollection collection.UserSubjectEpisodesCollection, err error) *CollectionsRepo_UpdateEpisodeCollection_Call { + _c.Call.Return(userSubjectEpisodesCollection, err) + return _c +} + +func (_c *CollectionsRepo_UpdateEpisodeCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID, episodeIDs []model.EpisodeID, collection1 collection.EpisodeCollection, at time.Time) (collection.UserSubjectEpisodesCollection, error)) *CollectionsRepo_UpdateEpisodeCollection_Call { + _c.Call.Return(run) + return _c +} + +// UpdateOrCreateSubjectCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) UpdateOrCreateSubjectCollection(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error { + ret := _mock.Called(ctx, userID, subject, at, ip, update) + + if len(ret) == 0 { + panic("no return value specified for UpdateOrCreateSubjectCollection") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.Subject, time.Time, string, func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error); ok { + r0 = returnFunc(ctx, userID, subject, at, ip, update) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// CollectionsRepo_UpdateOrCreateSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateOrCreateSubjectCollection' +type CollectionsRepo_UpdateOrCreateSubjectCollection_Call struct { + *mock.Call +} + +// UpdateOrCreateSubjectCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subject +// - at +// - ip +// - update +func (_e *CollectionsRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { + return &CollectionsRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subject, at, ip, update)} +} + +func (_c *CollectionsRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) + }) + return _c +} + +func (_c *CollectionsRepo_UpdateOrCreateSubjectCollection_Call) Return(err error) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Return(err) + return _c +} + +func (_c *CollectionsRepo_UpdateOrCreateSubjectCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { + _c.Call.Return(run) + return _c +} + +// UpdateSubjectCollection provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) UpdateSubjectCollection(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error { + ret := _mock.Called(ctx, userID, subject, at, ip, update) + + if len(ret) == 0 { + panic("no return value specified for UpdateSubjectCollection") + } + + var r0 error + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.Subject, time.Time, string, func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error); ok { + r0 = returnFunc(ctx, userID, subject, at, ip, update) + } else { + r0 = ret.Error(0) + } + return r0 +} + +// CollectionsRepo_UpdateSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateSubjectCollection' +type CollectionsRepo_UpdateSubjectCollection_Call struct { + *mock.Call +} + +// UpdateSubjectCollection is a helper method to define mock.On call +// - ctx +// - userID +// - subject +// - at +// - ip +// - update +func (_e *CollectionsRepo_Expecter) UpdateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionsRepo_UpdateSubjectCollection_Call { + return &CollectionsRepo_UpdateSubjectCollection_Call{Call: _e.mock.On("UpdateSubjectCollection", ctx, userID, subject, at, ip, update)} +} + +func (_c *CollectionsRepo_UpdateSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) *CollectionsRepo_UpdateSubjectCollection_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) + }) + return _c +} + +func (_c *CollectionsRepo_UpdateSubjectCollection_Call) Return(err error) *CollectionsRepo_UpdateSubjectCollection_Call { + _c.Call.Return(err) + return _c +} + +func (_c *CollectionsRepo_UpdateSubjectCollection_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) error) *CollectionsRepo_UpdateSubjectCollection_Call { + _c.Call.Return(run) + return _c +} + +// WithQuery provides a mock function for the type CollectionsRepo +func (_mock *CollectionsRepo) WithQuery(query1 *query.Query) collections.Repo { + ret := _mock.Called(query1) + + if len(ret) == 0 { + panic("no return value specified for WithQuery") + } + + var r0 collections.Repo + if returnFunc, ok := ret.Get(0).(func(*query.Query) collections.Repo); ok { + r0 = returnFunc(query1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(collections.Repo) + } + } + return r0 +} + +// CollectionsRepo_WithQuery_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WithQuery' +type CollectionsRepo_WithQuery_Call struct { + *mock.Call +} + +// WithQuery is a helper method to define mock.On call +// - query1 +func (_e *CollectionsRepo_Expecter) WithQuery(query1 interface{}) *CollectionsRepo_WithQuery_Call { + return &CollectionsRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", query1)} +} + +func (_c *CollectionsRepo_WithQuery_Call) Run(run func(query1 *query.Query)) *CollectionsRepo_WithQuery_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*query.Query)) + }) + return _c +} + +func (_c *CollectionsRepo_WithQuery_Call) Return(repo collections.Repo) *CollectionsRepo_WithQuery_Call { + _c.Call.Return(repo) + return _c +} + +func (_c *CollectionsRepo_WithQuery_Call) RunAndReturn(run func(query1 *query.Query) collections.Repo) *CollectionsRepo_WithQuery_Call { + _c.Call.Return(run) + return _c +} diff --git a/internal/mocks/EpisodeRepo.go b/internal/mocks/EpisodeRepo.go index b40df9895..95835b67c 100644 --- a/internal/mocks/EpisodeRepo.go +++ b/internal/mocks/EpisodeRepo.go @@ -1,16 +1,32 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - episode "github.com/bangumi/server/internal/episode" + "github.com/bangumi/server/dal/query" + "github.com/bangumi/server/internal/episode" + "github.com/bangumi/server/internal/model" mock "github.com/stretchr/testify/mock" - - query "github.com/bangumi/server/dal/query" ) +// NewEpisodeRepo creates a new instance of EpisodeRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEpisodeRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *EpisodeRepo { + mock := &EpisodeRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // EpisodeRepo is an autogenerated mock type for the Repo type type EpisodeRepo struct { mock.Mock @@ -24,9 +40,9 @@ func (_m *EpisodeRepo) EXPECT() *EpisodeRepo_Expecter { return &EpisodeRepo_Expecter{mock: &_m.Mock} } -// Count provides a mock function with given fields: ctx, subjectID, filter -func (_m *EpisodeRepo) Count(ctx context.Context, subjectID uint32, filter episode.Filter) (int64, error) { - ret := _m.Called(ctx, subjectID, filter) +// Count provides a mock function for the type EpisodeRepo +func (_mock *EpisodeRepo) Count(ctx context.Context, subjectID model.SubjectID, filter episode.Filter) (int64, error) { + ret := _mock.Called(ctx, subjectID, filter) if len(ret) == 0 { panic("no return value specified for Count") @@ -34,21 +50,19 @@ func (_m *EpisodeRepo) Count(ctx context.Context, subjectID uint32, filter episo var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter) (int64, error)); ok { - return rf(ctx, subjectID, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, episode.Filter) (int64, error)); ok { + return returnFunc(ctx, subjectID, filter) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter) int64); ok { - r0 = rf(ctx, subjectID, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, episode.Filter) int64); ok { + r0 = returnFunc(ctx, subjectID, filter) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, episode.Filter) error); ok { - r1 = rf(ctx, subjectID, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, episode.Filter) error); ok { + r1 = returnFunc(ctx, subjectID, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -58,33 +72,33 @@ type EpisodeRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 -// - filter episode.Filter +// - ctx +// - subjectID +// - filter func (_e *EpisodeRepo_Expecter) Count(ctx interface{}, subjectID interface{}, filter interface{}) *EpisodeRepo_Count_Call { return &EpisodeRepo_Count_Call{Call: _e.mock.On("Count", ctx, subjectID, filter)} } -func (_c *EpisodeRepo_Count_Call) Run(run func(ctx context.Context, subjectID uint32, filter episode.Filter)) *EpisodeRepo_Count_Call { +func (_c *EpisodeRepo_Count_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter)) *EpisodeRepo_Count_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(episode.Filter)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(episode.Filter)) }) return _c } -func (_c *EpisodeRepo_Count_Call) Return(_a0 int64, _a1 error) *EpisodeRepo_Count_Call { - _c.Call.Return(_a0, _a1) +func (_c *EpisodeRepo_Count_Call) Return(n int64, err error) *EpisodeRepo_Count_Call { + _c.Call.Return(n, err) return _c } -func (_c *EpisodeRepo_Count_Call) RunAndReturn(run func(context.Context, uint32, episode.Filter) (int64, error)) *EpisodeRepo_Count_Call { +func (_c *EpisodeRepo_Count_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter) (int64, error)) *EpisodeRepo_Count_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, episodeID -func (_m *EpisodeRepo) Get(ctx context.Context, episodeID uint32) (episode.Episode, error) { - ret := _m.Called(ctx, episodeID) +// Get provides a mock function for the type EpisodeRepo +func (_mock *EpisodeRepo) Get(ctx context.Context, episodeID model.EpisodeID) (episode.Episode, error) { + ret := _mock.Called(ctx, episodeID) if len(ret) == 0 { panic("no return value specified for Get") @@ -92,21 +106,19 @@ func (_m *EpisodeRepo) Get(ctx context.Context, episodeID uint32) (episode.Episo var r0 episode.Episode var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (episode.Episode, error)); ok { - return rf(ctx, episodeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID) (episode.Episode, error)); ok { + return returnFunc(ctx, episodeID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) episode.Episode); ok { - r0 = rf(ctx, episodeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID) episode.Episode); ok { + r0 = returnFunc(ctx, episodeID) } else { r0 = ret.Get(0).(episode.Episode) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, episodeID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.EpisodeID) error); ok { + r1 = returnFunc(ctx, episodeID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -116,32 +128,32 @@ type EpisodeRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - episodeID uint32 +// - ctx +// - episodeID func (_e *EpisodeRepo_Expecter) Get(ctx interface{}, episodeID interface{}) *EpisodeRepo_Get_Call { return &EpisodeRepo_Get_Call{Call: _e.mock.On("Get", ctx, episodeID)} } -func (_c *EpisodeRepo_Get_Call) Run(run func(ctx context.Context, episodeID uint32)) *EpisodeRepo_Get_Call { +func (_c *EpisodeRepo_Get_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID)) *EpisodeRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.EpisodeID)) }) return _c } -func (_c *EpisodeRepo_Get_Call) Return(_a0 episode.Episode, _a1 error) *EpisodeRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *EpisodeRepo_Get_Call) Return(episode1 episode.Episode, err error) *EpisodeRepo_Get_Call { + _c.Call.Return(episode1, err) return _c } -func (_c *EpisodeRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (episode.Episode, error)) *EpisodeRepo_Get_Call { +func (_c *EpisodeRepo_Get_Call) RunAndReturn(run func(ctx context.Context, episodeID model.EpisodeID) (episode.Episode, error)) *EpisodeRepo_Get_Call { _c.Call.Return(run) return _c } -// List provides a mock function with given fields: ctx, subjectID, filter, limit, offset -func (_m *EpisodeRepo) List(ctx context.Context, subjectID uint32, filter episode.Filter, limit int, offset int) ([]episode.Episode, error) { - ret := _m.Called(ctx, subjectID, filter, limit, offset) +// List provides a mock function for the type EpisodeRepo +func (_mock *EpisodeRepo) List(ctx context.Context, subjectID model.SubjectID, filter episode.Filter, limit int, offset int) ([]episode.Episode, error) { + ret := _mock.Called(ctx, subjectID, filter, limit, offset) if len(ret) == 0 { panic("no return value specified for List") @@ -149,23 +161,21 @@ func (_m *EpisodeRepo) List(ctx context.Context, subjectID uint32, filter episod var r0 []episode.Episode var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter, int, int) ([]episode.Episode, error)); ok { - return rf(ctx, subjectID, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, episode.Filter, int, int) ([]episode.Episode, error)); ok { + return returnFunc(ctx, subjectID, filter, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, episode.Filter, int, int) []episode.Episode); ok { - r0 = rf(ctx, subjectID, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, episode.Filter, int, int) []episode.Episode); ok { + r0 = returnFunc(ctx, subjectID, filter, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]episode.Episode) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, episode.Filter, int, int) error); ok { - r1 = rf(ctx, subjectID, filter, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, episode.Filter, int, int) error); ok { + r1 = returnFunc(ctx, subjectID, filter, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -175,49 +185,48 @@ type EpisodeRepo_List_Call struct { } // List is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 -// - filter episode.Filter -// - limit int -// - offset int +// - ctx +// - subjectID +// - filter +// - limit +// - offset func (_e *EpisodeRepo_Expecter) List(ctx interface{}, subjectID interface{}, filter interface{}, limit interface{}, offset interface{}) *EpisodeRepo_List_Call { return &EpisodeRepo_List_Call{Call: _e.mock.On("List", ctx, subjectID, filter, limit, offset)} } -func (_c *EpisodeRepo_List_Call) Run(run func(ctx context.Context, subjectID uint32, filter episode.Filter, limit int, offset int)) *EpisodeRepo_List_Call { +func (_c *EpisodeRepo_List_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter, limit int, offset int)) *EpisodeRepo_List_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(episode.Filter), args[3].(int), args[4].(int)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(episode.Filter), args[3].(int), args[4].(int)) }) return _c } -func (_c *EpisodeRepo_List_Call) Return(_a0 []episode.Episode, _a1 error) *EpisodeRepo_List_Call { - _c.Call.Return(_a0, _a1) +func (_c *EpisodeRepo_List_Call) Return(episodes []episode.Episode, err error) *EpisodeRepo_List_Call { + _c.Call.Return(episodes, err) return _c } -func (_c *EpisodeRepo_List_Call) RunAndReturn(run func(context.Context, uint32, episode.Filter, int, int) ([]episode.Episode, error)) *EpisodeRepo_List_Call { +func (_c *EpisodeRepo_List_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter, limit int, offset int) ([]episode.Episode, error)) *EpisodeRepo_List_Call { _c.Call.Return(run) return _c } -// WithQuery provides a mock function with given fields: _a0 -func (_m *EpisodeRepo) WithQuery(_a0 *query.Query) episode.Repo { - ret := _m.Called(_a0) +// WithQuery provides a mock function for the type EpisodeRepo +func (_mock *EpisodeRepo) WithQuery(query1 *query.Query) episode.Repo { + ret := _mock.Called(query1) if len(ret) == 0 { panic("no return value specified for WithQuery") } var r0 episode.Repo - if rf, ok := ret.Get(0).(func(*query.Query) episode.Repo); ok { - r0 = rf(_a0) + if returnFunc, ok := ret.Get(0).(func(*query.Query) episode.Repo); ok { + r0 = returnFunc(query1) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(episode.Repo) } } - return r0 } @@ -227,38 +236,24 @@ type EpisodeRepo_WithQuery_Call struct { } // WithQuery is a helper method to define mock.On call -// - _a0 *query.Query -func (_e *EpisodeRepo_Expecter) WithQuery(_a0 interface{}) *EpisodeRepo_WithQuery_Call { - return &EpisodeRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", _a0)} +// - query1 +func (_e *EpisodeRepo_Expecter) WithQuery(query1 interface{}) *EpisodeRepo_WithQuery_Call { + return &EpisodeRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", query1)} } -func (_c *EpisodeRepo_WithQuery_Call) Run(run func(_a0 *query.Query)) *EpisodeRepo_WithQuery_Call { +func (_c *EpisodeRepo_WithQuery_Call) Run(run func(query1 *query.Query)) *EpisodeRepo_WithQuery_Call { _c.Call.Run(func(args mock.Arguments) { run(args[0].(*query.Query)) }) return _c } -func (_c *EpisodeRepo_WithQuery_Call) Return(_a0 episode.Repo) *EpisodeRepo_WithQuery_Call { - _c.Call.Return(_a0) +func (_c *EpisodeRepo_WithQuery_Call) Return(repo episode.Repo) *EpisodeRepo_WithQuery_Call { + _c.Call.Return(repo) return _c } -func (_c *EpisodeRepo_WithQuery_Call) RunAndReturn(run func(*query.Query) episode.Repo) *EpisodeRepo_WithQuery_Call { +func (_c *EpisodeRepo_WithQuery_Call) RunAndReturn(run func(query1 *query.Query) episode.Repo) *EpisodeRepo_WithQuery_Call { _c.Call.Return(run) return _c } - -// NewEpisodeRepo creates a new instance of EpisodeRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewEpisodeRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *EpisodeRepo { - mock := &EpisodeRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index 22162afeb..268fcd308 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -1,16 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - index "github.com/bangumi/server/internal/index" + "github.com/bangumi/server/internal/index" + "github.com/bangumi/server/internal/model" mock "github.com/stretchr/testify/mock" - - model "github.com/bangumi/server/internal/model" ) +// NewIndexRepo creates a new instance of IndexRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewIndexRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *IndexRepo { + mock := &IndexRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // IndexRepo is an autogenerated mock type for the Repo type type IndexRepo struct { mock.Mock @@ -24,21 +39,20 @@ func (_m *IndexRepo) EXPECT() *IndexRepo_Expecter { return &IndexRepo_Expecter{mock: &_m.Mock} } -// AddIndexCollect provides a mock function with given fields: ctx, id, uid -func (_m *IndexRepo) AddIndexCollect(ctx context.Context, id uint32, uid uint32) error { - ret := _m.Called(ctx, id, uid) +// AddIndexCollect provides a mock function for the type IndexRepo +func (_mock *IndexRepo) AddIndexCollect(ctx context.Context, id model.IndexID, uid model.UserID) error { + ret := _mock.Called(ctx, id, uid) if len(ret) == 0 { panic("no return value specified for AddIndexCollect") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { - r0 = rf(ctx, id, uid) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.UserID) error); ok { + r0 = returnFunc(ctx, id, uid) } else { r0 = ret.Error(0) } - return r0 } @@ -48,33 +62,33 @@ type IndexRepo_AddIndexCollect_Call struct { } // AddIndexCollect is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - uid uint32 +// - ctx +// - id +// - uid func (_e *IndexRepo_Expecter) AddIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_AddIndexCollect_Call { return &IndexRepo_AddIndexCollect_Call{Call: _e.mock.On("AddIndexCollect", ctx, id, uid)} } -func (_c *IndexRepo_AddIndexCollect_Call) Run(run func(ctx context.Context, id uint32, uid uint32)) *IndexRepo_AddIndexCollect_Call { +func (_c *IndexRepo_AddIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_AddIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) }) return _c } -func (_c *IndexRepo_AddIndexCollect_Call) Return(_a0 error) *IndexRepo_AddIndexCollect_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_AddIndexCollect_Call) Return(err error) *IndexRepo_AddIndexCollect_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_AddIndexCollect_Call) RunAndReturn(run func(context.Context, uint32, uint32) error) *IndexRepo_AddIndexCollect_Call { +func (_c *IndexRepo_AddIndexCollect_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, uid model.UserID) error) *IndexRepo_AddIndexCollect_Call { _c.Call.Return(run) return _c } -// AddOrUpdateIndexSubject provides a mock function with given fields: ctx, id, subjectID, sort, comment -func (_m *IndexRepo) AddOrUpdateIndexSubject(ctx context.Context, id uint32, subjectID uint32, sort uint32, comment string) (*index.Subject, error) { - ret := _m.Called(ctx, id, subjectID, sort, comment) +// AddOrUpdateIndexSubject provides a mock function for the type IndexRepo +func (_mock *IndexRepo) AddOrUpdateIndexSubject(ctx context.Context, id model.IndexID, subjectID model.SubjectID, sort uint32, comment string) (*index.Subject, error) { + ret := _mock.Called(ctx, id, subjectID, sort, comment) if len(ret) == 0 { panic("no return value specified for AddOrUpdateIndexSubject") @@ -82,23 +96,21 @@ func (_m *IndexRepo) AddOrUpdateIndexSubject(ctx context.Context, id uint32, sub var r0 *index.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, uint32, string) (*index.Subject, error)); ok { - return rf(ctx, id, subjectID, sort, comment) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectID, uint32, string) (*index.Subject, error)); ok { + return returnFunc(ctx, id, subjectID, sort, comment) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32, uint32, string) *index.Subject); ok { - r0 = rf(ctx, id, subjectID, sort, comment) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectID, uint32, string) *index.Subject); ok { + r0 = returnFunc(ctx, id, subjectID, sort, comment) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*index.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32, uint32, string) error); ok { - r1 = rf(ctx, id, subjectID, sort, comment) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.IndexID, model.SubjectID, uint32, string) error); ok { + r1 = returnFunc(ctx, id, subjectID, sort, comment) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -108,35 +120,35 @@ type IndexRepo_AddOrUpdateIndexSubject_Call struct { } // AddOrUpdateIndexSubject is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - subjectID uint32 -// - sort uint32 -// - comment string +// - ctx +// - id +// - subjectID +// - sort +// - comment func (_e *IndexRepo_Expecter) AddOrUpdateIndexSubject(ctx interface{}, id interface{}, subjectID interface{}, sort interface{}, comment interface{}) *IndexRepo_AddOrUpdateIndexSubject_Call { return &IndexRepo_AddOrUpdateIndexSubject_Call{Call: _e.mock.On("AddOrUpdateIndexSubject", ctx, id, subjectID, sort, comment)} } -func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) Run(run func(ctx context.Context, id uint32, subjectID uint32, sort uint32, comment string)) *IndexRepo_AddOrUpdateIndexSubject_Call { +func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) Run(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID, sort uint32, comment string)) *IndexRepo_AddOrUpdateIndexSubject_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32), args[3].(uint32), args[4].(string)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectID), args[3].(uint32), args[4].(string)) }) return _c } -func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) Return(_a0 *index.Subject, _a1 error) *IndexRepo_AddOrUpdateIndexSubject_Call { - _c.Call.Return(_a0, _a1) +func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) Return(subject *index.Subject, err error) *IndexRepo_AddOrUpdateIndexSubject_Call { + _c.Call.Return(subject, err) return _c } -func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) RunAndReturn(run func(context.Context, uint32, uint32, uint32, string) (*index.Subject, error)) *IndexRepo_AddOrUpdateIndexSubject_Call { +func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID, sort uint32, comment string) (*index.Subject, error)) *IndexRepo_AddOrUpdateIndexSubject_Call { _c.Call.Return(run) return _c } -// CountSubjects provides a mock function with given fields: ctx, id, subjectType -func (_m *IndexRepo) CountSubjects(ctx context.Context, id uint32, subjectType uint8) (int64, error) { - ret := _m.Called(ctx, id, subjectType) +// CountSubjects provides a mock function for the type IndexRepo +func (_mock *IndexRepo) CountSubjects(ctx context.Context, id model.IndexID, subjectType model.SubjectType) (int64, error) { + ret := _mock.Called(ctx, id, subjectType) if len(ret) == 0 { panic("no return value specified for CountSubjects") @@ -144,21 +156,19 @@ func (_m *IndexRepo) CountSubjects(ctx context.Context, id uint32, subjectType u var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) (int64, error)); ok { - return rf(ctx, id, subjectType) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectType) (int64, error)); ok { + return returnFunc(ctx, id, subjectType) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) int64); ok { - r0 = rf(ctx, id, subjectType) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectType) int64); ok { + r0 = returnFunc(ctx, id, subjectType) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8) error); ok { - r1 = rf(ctx, id, subjectType) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.IndexID, model.SubjectType) error); ok { + r1 = returnFunc(ctx, id, subjectType) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -168,45 +178,44 @@ type IndexRepo_CountSubjects_Call struct { } // CountSubjects is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - subjectType uint8 +// - ctx +// - id +// - subjectType func (_e *IndexRepo_Expecter) CountSubjects(ctx interface{}, id interface{}, subjectType interface{}) *IndexRepo_CountSubjects_Call { return &IndexRepo_CountSubjects_Call{Call: _e.mock.On("CountSubjects", ctx, id, subjectType)} } -func (_c *IndexRepo_CountSubjects_Call) Run(run func(ctx context.Context, id uint32, subjectType uint8)) *IndexRepo_CountSubjects_Call { +func (_c *IndexRepo_CountSubjects_Call) Run(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType)) *IndexRepo_CountSubjects_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint8)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectType)) }) return _c } -func (_c *IndexRepo_CountSubjects_Call) Return(_a0 int64, _a1 error) *IndexRepo_CountSubjects_Call { - _c.Call.Return(_a0, _a1) +func (_c *IndexRepo_CountSubjects_Call) Return(n int64, err error) *IndexRepo_CountSubjects_Call { + _c.Call.Return(n, err) return _c } -func (_c *IndexRepo_CountSubjects_Call) RunAndReturn(run func(context.Context, uint32, uint8) (int64, error)) *IndexRepo_CountSubjects_Call { +func (_c *IndexRepo_CountSubjects_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType) (int64, error)) *IndexRepo_CountSubjects_Call { _c.Call.Return(run) return _c } -// Delete provides a mock function with given fields: ctx, id -func (_m *IndexRepo) Delete(ctx context.Context, id uint32) error { - ret := _m.Called(ctx, id) +// Delete provides a mock function for the type IndexRepo +func (_mock *IndexRepo) Delete(ctx context.Context, id model.IndexID) error { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Delete") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID) error); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Error(0) } - return r0 } @@ -216,44 +225,43 @@ type IndexRepo_Delete_Call struct { } // Delete is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *IndexRepo_Expecter) Delete(ctx interface{}, id interface{}) *IndexRepo_Delete_Call { return &IndexRepo_Delete_Call{Call: _e.mock.On("Delete", ctx, id)} } -func (_c *IndexRepo_Delete_Call) Run(run func(ctx context.Context, id uint32)) *IndexRepo_Delete_Call { +func (_c *IndexRepo_Delete_Call) Run(run func(ctx context.Context, id model.IndexID)) *IndexRepo_Delete_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID)) }) return _c } -func (_c *IndexRepo_Delete_Call) Return(_a0 error) *IndexRepo_Delete_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_Delete_Call) Return(err error) *IndexRepo_Delete_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_Delete_Call) RunAndReturn(run func(context.Context, uint32) error) *IndexRepo_Delete_Call { +func (_c *IndexRepo_Delete_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID) error) *IndexRepo_Delete_Call { _c.Call.Return(run) return _c } -// DeleteIndexCollect provides a mock function with given fields: ctx, id, uid -func (_m *IndexRepo) DeleteIndexCollect(ctx context.Context, id uint32, uid uint32) error { - ret := _m.Called(ctx, id, uid) +// DeleteIndexCollect provides a mock function for the type IndexRepo +func (_mock *IndexRepo) DeleteIndexCollect(ctx context.Context, id model.IndexID, uid model.UserID) error { + ret := _mock.Called(ctx, id, uid) if len(ret) == 0 { panic("no return value specified for DeleteIndexCollect") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { - r0 = rf(ctx, id, uid) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.UserID) error); ok { + r0 = returnFunc(ctx, id, uid) } else { r0 = ret.Error(0) } - return r0 } @@ -263,45 +271,44 @@ type IndexRepo_DeleteIndexCollect_Call struct { } // DeleteIndexCollect is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - uid uint32 +// - ctx +// - id +// - uid func (_e *IndexRepo_Expecter) DeleteIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_DeleteIndexCollect_Call { return &IndexRepo_DeleteIndexCollect_Call{Call: _e.mock.On("DeleteIndexCollect", ctx, id, uid)} } -func (_c *IndexRepo_DeleteIndexCollect_Call) Run(run func(ctx context.Context, id uint32, uid uint32)) *IndexRepo_DeleteIndexCollect_Call { +func (_c *IndexRepo_DeleteIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_DeleteIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) }) return _c } -func (_c *IndexRepo_DeleteIndexCollect_Call) Return(_a0 error) *IndexRepo_DeleteIndexCollect_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_DeleteIndexCollect_Call) Return(err error) *IndexRepo_DeleteIndexCollect_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_DeleteIndexCollect_Call) RunAndReturn(run func(context.Context, uint32, uint32) error) *IndexRepo_DeleteIndexCollect_Call { +func (_c *IndexRepo_DeleteIndexCollect_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, uid model.UserID) error) *IndexRepo_DeleteIndexCollect_Call { _c.Call.Return(run) return _c } -// DeleteIndexSubject provides a mock function with given fields: ctx, id, subjectID -func (_m *IndexRepo) DeleteIndexSubject(ctx context.Context, id uint32, subjectID uint32) error { - ret := _m.Called(ctx, id, subjectID) +// DeleteIndexSubject provides a mock function for the type IndexRepo +func (_mock *IndexRepo) DeleteIndexSubject(ctx context.Context, id model.IndexID, subjectID model.SubjectID) error { + ret := _mock.Called(ctx, id, subjectID) if len(ret) == 0 { panic("no return value specified for DeleteIndexSubject") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) error); ok { - r0 = rf(ctx, id, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectID) error); ok { + r0 = returnFunc(ctx, id, subjectID) } else { r0 = ret.Error(0) } - return r0 } @@ -311,33 +318,33 @@ type IndexRepo_DeleteIndexSubject_Call struct { } // DeleteIndexSubject is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - subjectID uint32 +// - ctx +// - id +// - subjectID func (_e *IndexRepo_Expecter) DeleteIndexSubject(ctx interface{}, id interface{}, subjectID interface{}) *IndexRepo_DeleteIndexSubject_Call { return &IndexRepo_DeleteIndexSubject_Call{Call: _e.mock.On("DeleteIndexSubject", ctx, id, subjectID)} } -func (_c *IndexRepo_DeleteIndexSubject_Call) Run(run func(ctx context.Context, id uint32, subjectID uint32)) *IndexRepo_DeleteIndexSubject_Call { +func (_c *IndexRepo_DeleteIndexSubject_Call) Run(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID)) *IndexRepo_DeleteIndexSubject_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectID)) }) return _c } -func (_c *IndexRepo_DeleteIndexSubject_Call) Return(_a0 error) *IndexRepo_DeleteIndexSubject_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_DeleteIndexSubject_Call) Return(err error) *IndexRepo_DeleteIndexSubject_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_DeleteIndexSubject_Call) RunAndReturn(run func(context.Context, uint32, uint32) error) *IndexRepo_DeleteIndexSubject_Call { +func (_c *IndexRepo_DeleteIndexSubject_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID) error) *IndexRepo_DeleteIndexSubject_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, id -func (_m *IndexRepo) Get(ctx context.Context, id uint32) (model.Index, error) { - ret := _m.Called(ctx, id) +// Get provides a mock function for the type IndexRepo +func (_mock *IndexRepo) Get(ctx context.Context, id model.IndexID) (model.Index, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Get") @@ -345,21 +352,19 @@ func (_m *IndexRepo) Get(ctx context.Context, id uint32) (model.Index, error) { var r0 model.Index var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Index, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID) (model.Index, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.Index); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID) model.Index); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.Index) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.IndexID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -369,32 +374,32 @@ type IndexRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *IndexRepo_Expecter) Get(ctx interface{}, id interface{}) *IndexRepo_Get_Call { return &IndexRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } -func (_c *IndexRepo_Get_Call) Run(run func(ctx context.Context, id uint32)) *IndexRepo_Get_Call { +func (_c *IndexRepo_Get_Call) Run(run func(ctx context.Context, id model.IndexID)) *IndexRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID)) }) return _c } -func (_c *IndexRepo_Get_Call) Return(_a0 model.Index, _a1 error) *IndexRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *IndexRepo_Get_Call) Return(index1 model.Index, err error) *IndexRepo_Get_Call { + _c.Call.Return(index1, err) return _c } -func (_c *IndexRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (model.Index, error)) *IndexRepo_Get_Call { +func (_c *IndexRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID) (model.Index, error)) *IndexRepo_Get_Call { _c.Call.Return(run) return _c } -// GetIndexCollect provides a mock function with given fields: ctx, id, uid -func (_m *IndexRepo) GetIndexCollect(ctx context.Context, id uint32, uid uint32) (*index.IndexCollect, error) { - ret := _m.Called(ctx, id, uid) +// GetIndexCollect provides a mock function for the type IndexRepo +func (_mock *IndexRepo) GetIndexCollect(ctx context.Context, id model.IndexID, uid model.UserID) (*index.IndexCollect, error) { + ret := _mock.Called(ctx, id, uid) if len(ret) == 0 { panic("no return value specified for GetIndexCollect") @@ -402,23 +407,21 @@ func (_m *IndexRepo) GetIndexCollect(ctx context.Context, id uint32, uid uint32) var r0 *index.IndexCollect var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) (*index.IndexCollect, error)); ok { - return rf(ctx, id, uid) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.UserID) (*index.IndexCollect, error)); ok { + return returnFunc(ctx, id, uid) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint32) *index.IndexCollect); ok { - r0 = rf(ctx, id, uid) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.UserID) *index.IndexCollect); ok { + r0 = returnFunc(ctx, id, uid) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*index.IndexCollect) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint32) error); ok { - r1 = rf(ctx, id, uid) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.IndexID, model.UserID) error); ok { + r1 = returnFunc(ctx, id, uid) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -428,33 +431,33 @@ type IndexRepo_GetIndexCollect_Call struct { } // GetIndexCollect is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - uid uint32 +// - ctx +// - id +// - uid func (_e *IndexRepo_Expecter) GetIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_GetIndexCollect_Call { return &IndexRepo_GetIndexCollect_Call{Call: _e.mock.On("GetIndexCollect", ctx, id, uid)} } -func (_c *IndexRepo_GetIndexCollect_Call) Run(run func(ctx context.Context, id uint32, uid uint32)) *IndexRepo_GetIndexCollect_Call { +func (_c *IndexRepo_GetIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_GetIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint32)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) }) return _c } -func (_c *IndexRepo_GetIndexCollect_Call) Return(_a0 *index.IndexCollect, _a1 error) *IndexRepo_GetIndexCollect_Call { - _c.Call.Return(_a0, _a1) +func (_c *IndexRepo_GetIndexCollect_Call) Return(indexCollect *index.IndexCollect, err error) *IndexRepo_GetIndexCollect_Call { + _c.Call.Return(indexCollect, err) return _c } -func (_c *IndexRepo_GetIndexCollect_Call) RunAndReturn(run func(context.Context, uint32, uint32) (*index.IndexCollect, error)) *IndexRepo_GetIndexCollect_Call { +func (_c *IndexRepo_GetIndexCollect_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, uid model.UserID) (*index.IndexCollect, error)) *IndexRepo_GetIndexCollect_Call { _c.Call.Return(run) return _c } -// ListSubjects provides a mock function with given fields: ctx, id, subjectType, limit, offset -func (_m *IndexRepo) ListSubjects(ctx context.Context, id uint32, subjectType uint8, limit int, offset int) ([]index.Subject, error) { - ret := _m.Called(ctx, id, subjectType, limit, offset) +// ListSubjects provides a mock function for the type IndexRepo +func (_mock *IndexRepo) ListSubjects(ctx context.Context, id model.IndexID, subjectType model.SubjectType, limit int, offset int) ([]index.Subject, error) { + ret := _mock.Called(ctx, id, subjectType, limit, offset) if len(ret) == 0 { panic("no return value specified for ListSubjects") @@ -462,23 +465,21 @@ func (_m *IndexRepo) ListSubjects(ctx context.Context, id uint32, subjectType ui var r0 []index.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, int, int) ([]index.Subject, error)); ok { - return rf(ctx, id, subjectType, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectType, int, int) ([]index.Subject, error)); ok { + return returnFunc(ctx, id, subjectType, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8, int, int) []index.Subject); ok { - r0 = rf(ctx, id, subjectType, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, model.SubjectType, int, int) []index.Subject); ok { + r0 = returnFunc(ctx, id, subjectType, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]index.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8, int, int) error); ok { - r1 = rf(ctx, id, subjectType, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.IndexID, model.SubjectType, int, int) error); ok { + r1 = returnFunc(ctx, id, subjectType, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -488,47 +489,46 @@ type IndexRepo_ListSubjects_Call struct { } // ListSubjects is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - subjectType uint8 -// - limit int -// - offset int +// - ctx +// - id +// - subjectType +// - limit +// - offset func (_e *IndexRepo_Expecter) ListSubjects(ctx interface{}, id interface{}, subjectType interface{}, limit interface{}, offset interface{}) *IndexRepo_ListSubjects_Call { return &IndexRepo_ListSubjects_Call{Call: _e.mock.On("ListSubjects", ctx, id, subjectType, limit, offset)} } -func (_c *IndexRepo_ListSubjects_Call) Run(run func(ctx context.Context, id uint32, subjectType uint8, limit int, offset int)) *IndexRepo_ListSubjects_Call { +func (_c *IndexRepo_ListSubjects_Call) Run(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType, limit int, offset int)) *IndexRepo_ListSubjects_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint8), args[3].(int), args[4].(int)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectType), args[3].(int), args[4].(int)) }) return _c } -func (_c *IndexRepo_ListSubjects_Call) Return(_a0 []index.Subject, _a1 error) *IndexRepo_ListSubjects_Call { - _c.Call.Return(_a0, _a1) +func (_c *IndexRepo_ListSubjects_Call) Return(subjects []index.Subject, err error) *IndexRepo_ListSubjects_Call { + _c.Call.Return(subjects, err) return _c } -func (_c *IndexRepo_ListSubjects_Call) RunAndReturn(run func(context.Context, uint32, uint8, int, int) ([]index.Subject, error)) *IndexRepo_ListSubjects_Call { +func (_c *IndexRepo_ListSubjects_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType, limit int, offset int) ([]index.Subject, error)) *IndexRepo_ListSubjects_Call { _c.Call.Return(run) return _c } -// New provides a mock function with given fields: ctx, i -func (_m *IndexRepo) New(ctx context.Context, i *model.Index) error { - ret := _m.Called(ctx, i) +// New provides a mock function for the type IndexRepo +func (_mock *IndexRepo) New(ctx context.Context, i *model.Index) error { + ret := _mock.Called(ctx, i) if len(ret) == 0 { panic("no return value specified for New") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *model.Index) error); ok { - r0 = rf(ctx, i) + if returnFunc, ok := ret.Get(0).(func(context.Context, *model.Index) error); ok { + r0 = returnFunc(ctx, i) } else { r0 = ret.Error(0) } - return r0 } @@ -538,8 +538,8 @@ type IndexRepo_New_Call struct { } // New is a helper method to define mock.On call -// - ctx context.Context -// - i *model.Index +// - ctx +// - i func (_e *IndexRepo_Expecter) New(ctx interface{}, i interface{}) *IndexRepo_New_Call { return &IndexRepo_New_Call{Call: _e.mock.On("New", ctx, i)} } @@ -551,31 +551,30 @@ func (_c *IndexRepo_New_Call) Run(run func(ctx context.Context, i *model.Index)) return _c } -func (_c *IndexRepo_New_Call) Return(_a0 error) *IndexRepo_New_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_New_Call) Return(err error) *IndexRepo_New_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_New_Call) RunAndReturn(run func(context.Context, *model.Index) error) *IndexRepo_New_Call { +func (_c *IndexRepo_New_Call) RunAndReturn(run func(ctx context.Context, i *model.Index) error) *IndexRepo_New_Call { _c.Call.Return(run) return _c } -// Update provides a mock function with given fields: ctx, id, title, desc -func (_m *IndexRepo) Update(ctx context.Context, id uint32, title string, desc string) error { - ret := _m.Called(ctx, id, title, desc) +// Update provides a mock function for the type IndexRepo +func (_mock *IndexRepo) Update(ctx context.Context, id model.IndexID, title string, desc string) error { + ret := _mock.Called(ctx, id, title, desc) if len(ret) == 0 { panic("no return value specified for Update") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, string, string) error); ok { - r0 = rf(ctx, id, title, desc) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.IndexID, string, string) error); ok { + r0 = returnFunc(ctx, id, title, desc) } else { r0 = ret.Error(0) } - return r0 } @@ -585,41 +584,27 @@ type IndexRepo_Update_Call struct { } // Update is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - title string -// - desc string +// - ctx +// - id +// - title +// - desc func (_e *IndexRepo_Expecter) Update(ctx interface{}, id interface{}, title interface{}, desc interface{}) *IndexRepo_Update_Call { return &IndexRepo_Update_Call{Call: _e.mock.On("Update", ctx, id, title, desc)} } -func (_c *IndexRepo_Update_Call) Run(run func(ctx context.Context, id uint32, title string, desc string)) *IndexRepo_Update_Call { +func (_c *IndexRepo_Update_Call) Run(run func(ctx context.Context, id model.IndexID, title string, desc string)) *IndexRepo_Update_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(string), args[3].(string)) + run(args[0].(context.Context), args[1].(model.IndexID), args[2].(string), args[3].(string)) }) return _c } -func (_c *IndexRepo_Update_Call) Return(_a0 error) *IndexRepo_Update_Call { - _c.Call.Return(_a0) +func (_c *IndexRepo_Update_Call) Return(err error) *IndexRepo_Update_Call { + _c.Call.Return(err) return _c } -func (_c *IndexRepo_Update_Call) RunAndReturn(run func(context.Context, uint32, string, string) error) *IndexRepo_Update_Call { +func (_c *IndexRepo_Update_Call) RunAndReturn(run func(ctx context.Context, id model.IndexID, title string, desc string) error) *IndexRepo_Update_Call { _c.Call.Return(run) return _c } - -// NewIndexRepo creates a new instance of IndexRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewIndexRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *IndexRepo { - mock := &IndexRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/NotificationRepo.go b/internal/mocks/NotificationRepo.go deleted file mode 100644 index 03c88d280..000000000 --- a/internal/mocks/NotificationRepo.go +++ /dev/null @@ -1,93 +0,0 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. - -package mocks - -import ( - context "context" - - mock "github.com/stretchr/testify/mock" -) - -// NotificationRepo is an autogenerated mock type for the Repo type -type NotificationRepo struct { - mock.Mock -} - -type NotificationRepo_Expecter struct { - mock *mock.Mock -} - -func (_m *NotificationRepo) EXPECT() *NotificationRepo_Expecter { - return &NotificationRepo_Expecter{mock: &_m.Mock} -} - -// Count provides a mock function with given fields: ctx, userID -func (_m *NotificationRepo) Count(ctx context.Context, userID uint32) (int64, error) { - ret := _m.Called(ctx, userID) - - if len(ret) == 0 { - panic("no return value specified for Count") - } - - var r0 int64 - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { - return rf(ctx, userID) - } - if rf, ok := ret.Get(0).(func(context.Context, uint32) int64); ok { - r0 = rf(ctx, userID) - } else { - r0 = ret.Get(0).(int64) - } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// NotificationRepo_Count_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Count' -type NotificationRepo_Count_Call struct { - *mock.Call -} - -// Count is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -func (_e *NotificationRepo_Expecter) Count(ctx interface{}, userID interface{}) *NotificationRepo_Count_Call { - return &NotificationRepo_Count_Call{Call: _e.mock.On("Count", ctx, userID)} -} - -func (_c *NotificationRepo_Count_Call) Run(run func(ctx context.Context, userID uint32)) *NotificationRepo_Count_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *NotificationRepo_Count_Call) Return(_a0 int64, _a1 error) *NotificationRepo_Count_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *NotificationRepo_Count_Call) RunAndReturn(run func(context.Context, uint32) (int64, error)) *NotificationRepo_Count_Call { - _c.Call.Return(run) - return _c -} - -// NewNotificationRepo creates a new instance of NotificationRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewNotificationRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *NotificationRepo { - mock := &NotificationRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/PersonRepo.go b/internal/mocks/PersonRepo.go index b36f74ed5..70f3c57b2 100644 --- a/internal/mocks/PersonRepo.go +++ b/internal/mocks/PersonRepo.go @@ -1,16 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - domain "github.com/bangumi/server/domain" + "github.com/bangumi/server/domain" + "github.com/bangumi/server/internal/model" mock "github.com/stretchr/testify/mock" - - model "github.com/bangumi/server/internal/model" ) +// NewPersonRepo creates a new instance of PersonRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPersonRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *PersonRepo { + mock := &PersonRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // PersonRepo is an autogenerated mock type for the Repo type type PersonRepo struct { mock.Mock @@ -24,9 +39,9 @@ func (_m *PersonRepo) EXPECT() *PersonRepo_Expecter { return &PersonRepo_Expecter{mock: &_m.Mock} } -// Get provides a mock function with given fields: ctx, id -func (_m *PersonRepo) Get(ctx context.Context, id uint32) (model.Person, error) { - ret := _m.Called(ctx, id) +// Get provides a mock function for the type PersonRepo +func (_mock *PersonRepo) Get(ctx context.Context, id model.PersonID) (model.Person, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Get") @@ -34,21 +49,19 @@ func (_m *PersonRepo) Get(ctx context.Context, id uint32) (model.Person, error) var r0 model.Person var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Person, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) (model.Person, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.Person); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) model.Person); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.Person) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -58,56 +71,54 @@ type PersonRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *PersonRepo_Expecter) Get(ctx interface{}, id interface{}) *PersonRepo_Get_Call { return &PersonRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } -func (_c *PersonRepo_Get_Call) Run(run func(ctx context.Context, id uint32)) *PersonRepo_Get_Call { +func (_c *PersonRepo_Get_Call) Run(run func(ctx context.Context, id model.PersonID)) *PersonRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *PersonRepo_Get_Call) Return(_a0 model.Person, _a1 error) *PersonRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonRepo_Get_Call) Return(person model.Person, err error) *PersonRepo_Get_Call { + _c.Call.Return(person, err) return _c } -func (_c *PersonRepo_Get_Call) RunAndReturn(run func(context.Context, uint32) (model.Person, error)) *PersonRepo_Get_Call { +func (_c *PersonRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.PersonID) (model.Person, error)) *PersonRepo_Get_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids -func (_m *PersonRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Person, error) { - ret := _m.Called(ctx, ids) +// GetByIDs provides a mock function for the type PersonRepo +func (_mock *PersonRepo) GetByIDs(ctx context.Context, ids []model.PersonID) (map[model.PersonID]model.Person, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32]model.Person + var r0 map[model.PersonID]model.Person var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Person, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.PersonID) (map[model.PersonID]model.Person, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32]model.Person); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.PersonID) map[model.PersonID]model.Person); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]model.Person) + r0 = ret.Get(0).(map[model.PersonID]model.Person) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.PersonID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -117,32 +128,32 @@ type PersonRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 +// - ctx +// - ids func (_e *PersonRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *PersonRepo_GetByIDs_Call { return &PersonRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } -func (_c *PersonRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *PersonRepo_GetByIDs_Call { +func (_c *PersonRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.PersonID)) *PersonRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].([]model.PersonID)) }) return _c } -func (_c *PersonRepo_GetByIDs_Call) Return(_a0 map[uint32]model.Person, _a1 error) *PersonRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonRepo_GetByIDs_Call) Return(vToPerson map[model.PersonID]model.Person, err error) *PersonRepo_GetByIDs_Call { + _c.Call.Return(vToPerson, err) return _c } -func (_c *PersonRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32]model.Person, error)) *PersonRepo_GetByIDs_Call { +func (_c *PersonRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.PersonID) (map[model.PersonID]model.Person, error)) *PersonRepo_GetByIDs_Call { _c.Call.Return(run) return _c } -// GetCharacterRelated provides a mock function with given fields: ctx, subjectID -func (_m *PersonRepo) GetCharacterRelated(ctx context.Context, subjectID uint32) ([]domain.PersonCharacterRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetCharacterRelated provides a mock function for the type PersonRepo +func (_mock *PersonRepo) GetCharacterRelated(ctx context.Context, subjectID model.CharacterID) ([]domain.PersonCharacterRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetCharacterRelated") @@ -150,23 +161,21 @@ func (_m *PersonRepo) GetCharacterRelated(ctx context.Context, subjectID uint32) var r0 []domain.PersonCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) ([]domain.PersonCharacterRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.PersonCharacterRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) []domain.PersonCharacterRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.PersonCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -176,32 +185,32 @@ type PersonRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *PersonRepo_Expecter) GetCharacterRelated(ctx interface{}, subjectID interface{}) *PersonRepo_GetCharacterRelated_Call { return &PersonRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, subjectID)} } -func (_c *PersonRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *PersonRepo_GetCharacterRelated_Call { +func (_c *PersonRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, subjectID model.CharacterID)) *PersonRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *PersonRepo_GetCharacterRelated_Call) Return(_a0 []domain.PersonCharacterRelation, _a1 error) *PersonRepo_GetCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonRepo_GetCharacterRelated_Call) Return(personCharacterRelations []domain.PersonCharacterRelation, err error) *PersonRepo_GetCharacterRelated_Call { + _c.Call.Return(personCharacterRelations, err) return _c } -func (_c *PersonRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)) *PersonRepo_GetCharacterRelated_Call { +func (_c *PersonRepo_GetCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.CharacterID) ([]domain.PersonCharacterRelation, error)) *PersonRepo_GetCharacterRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, subjectID -func (_m *PersonRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectPersonRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetSubjectRelated provides a mock function for the type PersonRepo +func (_mock *PersonRepo) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectPersonRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") @@ -209,23 +218,21 @@ func (_m *PersonRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ( var r0 []domain.SubjectPersonRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) ([]domain.SubjectPersonRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectPersonRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) []domain.SubjectPersonRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectPersonRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -235,39 +242,25 @@ type PersonRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *PersonRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *PersonRepo_GetSubjectRelated_Call { return &PersonRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } -func (_c *PersonRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *PersonRepo_GetSubjectRelated_Call { +func (_c *PersonRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *PersonRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *PersonRepo_GetSubjectRelated_Call) Return(_a0 []domain.SubjectPersonRelation, _a1 error) *PersonRepo_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonRepo_GetSubjectRelated_Call) Return(subjectPersonRelations []domain.SubjectPersonRelation, err error) *PersonRepo_GetSubjectRelated_Call { + _c.Call.Return(subjectPersonRelations, err) return _c } -func (_c *PersonRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)) *PersonRepo_GetSubjectRelated_Call { +func (_c *PersonRepo_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectPersonRelation, error)) *PersonRepo_GetSubjectRelated_Call { _c.Call.Return(run) return _c } - -// NewPersonRepo creates a new instance of PersonRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewPersonRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *PersonRepo { - mock := &PersonRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/PersonService.go b/internal/mocks/PersonService.go index 8f31cfb2a..8323d4695 100644 --- a/internal/mocks/PersonService.go +++ b/internal/mocks/PersonService.go @@ -1,17 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - domain "github.com/bangumi/server/domain" + "github.com/bangumi/server/internal/model" mock "github.com/stretchr/testify/mock" - - model "github.com/bangumi/server/internal/model" ) -// PersonService is an autogenerated mock type for the Repo type +// NewPersonService creates a new instance of PersonService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPersonService(t interface { + mock.TestingT + Cleanup(func()) +}) *PersonService { + mock := &PersonService{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + +// PersonService is an autogenerated mock type for the Service type type PersonService struct { mock.Mock } @@ -24,9 +38,9 @@ func (_m *PersonService) EXPECT() *PersonService_Expecter { return &PersonService_Expecter{mock: &_m.Mock} } -// Get provides a mock function with given fields: ctx, id -func (_m *PersonService) Get(ctx context.Context, id uint32) (model.Person, error) { - ret := _m.Called(ctx, id) +// Get provides a mock function for the type PersonService +func (_mock *PersonService) Get(ctx context.Context, id model.PersonID) (model.Person, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Get") @@ -34,21 +48,19 @@ func (_m *PersonService) Get(ctx context.Context, id uint32) (model.Person, erro var r0 model.Person var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.Person, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) (model.Person, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.Person); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) model.Person); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.Person) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -58,115 +70,54 @@ type PersonService_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *PersonService_Expecter) Get(ctx interface{}, id interface{}) *PersonService_Get_Call { return &PersonService_Get_Call{Call: _e.mock.On("Get", ctx, id)} } -func (_c *PersonService_Get_Call) Run(run func(ctx context.Context, id uint32)) *PersonService_Get_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) - }) - return _c -} - -func (_c *PersonService_Get_Call) Return(_a0 model.Person, _a1 error) *PersonService_Get_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *PersonService_Get_Call) RunAndReturn(run func(context.Context, uint32) (model.Person, error)) *PersonService_Get_Call { - _c.Call.Return(run) - return _c -} - -// GetByIDs provides a mock function with given fields: ctx, ids -func (_m *PersonService) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]model.Person, error) { - ret := _m.Called(ctx, ids) - - if len(ret) == 0 { - panic("no return value specified for GetByIDs") - } - - var r0 map[uint32]model.Person - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]model.Person, error)); ok { - return rf(ctx, ids) - } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32]model.Person); ok { - r0 = rf(ctx, ids) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]model.Person) - } - } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// PersonService_GetByIDs_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetByIDs' -type PersonService_GetByIDs_Call struct { - *mock.Call -} - -// GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 -func (_e *PersonService_Expecter) GetByIDs(ctx interface{}, ids interface{}) *PersonService_GetByIDs_Call { - return &PersonService_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} -} - -func (_c *PersonService_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *PersonService_GetByIDs_Call { +func (_c *PersonService_Get_Call) Run(run func(ctx context.Context, id model.PersonID)) *PersonService_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *PersonService_GetByIDs_Call) Return(_a0 map[uint32]model.Person, _a1 error) *PersonService_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonService_Get_Call) Return(person model.Person, err error) *PersonService_Get_Call { + _c.Call.Return(person, err) return _c } -func (_c *PersonService_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32]model.Person, error)) *PersonService_GetByIDs_Call { +func (_c *PersonService_Get_Call) RunAndReturn(run func(ctx context.Context, id model.PersonID) (model.Person, error)) *PersonService_Get_Call { _c.Call.Return(run) return _c } -// GetCharacterRelated provides a mock function with given fields: ctx, subjectID -func (_m *PersonService) GetCharacterRelated(ctx context.Context, subjectID uint32) ([]domain.PersonCharacterRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetCharacterRelated provides a mock function for the type PersonService +func (_mock *PersonService) GetCharacterRelated(ctx context.Context, characterID model.CharacterID) ([]model.PersonCharacterRelation, error) { + ret := _mock.Called(ctx, characterID) if len(ret) == 0 { panic("no return value specified for GetCharacterRelated") } - var r0 []domain.PersonCharacterRelation + var r0 []model.PersonCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) ([]model.PersonCharacterRelation, error)); ok { + return returnFunc(ctx, characterID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.PersonCharacterRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) []model.PersonCharacterRelation); ok { + r0 = returnFunc(ctx, characterID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]domain.PersonCharacterRelation) + r0 = ret.Get(0).([]model.PersonCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, characterID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -176,56 +127,54 @@ type PersonService_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 -func (_e *PersonService_Expecter) GetCharacterRelated(ctx interface{}, subjectID interface{}) *PersonService_GetCharacterRelated_Call { - return &PersonService_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, subjectID)} +// - ctx +// - characterID +func (_e *PersonService_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *PersonService_GetCharacterRelated_Call { + return &PersonService_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } -func (_c *PersonService_GetCharacterRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *PersonService_GetCharacterRelated_Call { +func (_c *PersonService_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *PersonService_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *PersonService_GetCharacterRelated_Call) Return(_a0 []domain.PersonCharacterRelation, _a1 error) *PersonService_GetCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonService_GetCharacterRelated_Call) Return(personCharacterRelations []model.PersonCharacterRelation, err error) *PersonService_GetCharacterRelated_Call { + _c.Call.Return(personCharacterRelations, err) return _c } -func (_c *PersonService_GetCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.PersonCharacterRelation, error)) *PersonService_GetCharacterRelated_Call { +func (_c *PersonService_GetCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, characterID model.CharacterID) ([]model.PersonCharacterRelation, error)) *PersonService_GetCharacterRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, subjectID -func (_m *PersonService) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectPersonRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetSubjectRelated provides a mock function for the type PersonService +func (_mock *PersonService) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]model.SubjectPersonRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") } - var r0 []domain.SubjectPersonRelation + var r0 []model.SubjectPersonRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) ([]model.SubjectPersonRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectPersonRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) []model.SubjectPersonRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]domain.SubjectPersonRelation) + r0 = ret.Get(0).([]model.SubjectPersonRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -235,39 +184,25 @@ type PersonService_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *PersonService_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *PersonService_GetSubjectRelated_Call { return &PersonService_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } -func (_c *PersonService_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *PersonService_GetSubjectRelated_Call { +func (_c *PersonService_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *PersonService_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *PersonService_GetSubjectRelated_Call) Return(_a0 []domain.SubjectPersonRelation, _a1 error) *PersonService_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *PersonService_GetSubjectRelated_Call) Return(subjectPersonRelations []model.SubjectPersonRelation, err error) *PersonService_GetSubjectRelated_Call { + _c.Call.Return(subjectPersonRelations, err) return _c } -func (_c *PersonService_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)) *PersonService_GetSubjectRelated_Call { +func (_c *PersonService_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID) ([]model.SubjectPersonRelation, error)) *PersonService_GetSubjectRelated_Call { _c.Call.Return(run) return _c } - -// NewPersonService creates a new instance of PersonService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewPersonService(t interface { - mock.TestingT - Cleanup(func()) -}) *PersonService { - mock := &PersonService{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/RevisionRepo.go b/internal/mocks/RevisionRepo.go index 2e4c2eeec..70e2d07af 100644 --- a/internal/mocks/RevisionRepo.go +++ b/internal/mocks/RevisionRepo.go @@ -1,14 +1,30 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - model "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/model" mock "github.com/stretchr/testify/mock" ) +// NewRevisionRepo creates a new instance of RevisionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewRevisionRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *RevisionRepo { + mock := &RevisionRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // RevisionRepo is an autogenerated mock type for the Repo type type RevisionRepo struct { mock.Mock @@ -22,9 +38,9 @@ func (_m *RevisionRepo) EXPECT() *RevisionRepo_Expecter { return &RevisionRepo_Expecter{mock: &_m.Mock} } -// CountCharacterRelated provides a mock function with given fields: ctx, characterID -func (_m *RevisionRepo) CountCharacterRelated(ctx context.Context, characterID uint32) (int64, error) { - ret := _m.Called(ctx, characterID) +// CountCharacterRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) CountCharacterRelated(ctx context.Context, characterID model.CharacterID) (int64, error) { + ret := _mock.Called(ctx, characterID) if len(ret) == 0 { panic("no return value specified for CountCharacterRelated") @@ -32,21 +48,19 @@ func (_m *RevisionRepo) CountCharacterRelated(ctx context.Context, characterID u var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { - return rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) (int64, error)); ok { + return returnFunc(ctx, characterID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) int64); ok { - r0 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) int64); ok { + r0 = returnFunc(ctx, characterID) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, characterID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -56,32 +70,32 @@ type RevisionRepo_CountCharacterRelated_Call struct { } // CountCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - characterID uint32 +// - ctx +// - characterID func (_e *RevisionRepo_Expecter) CountCharacterRelated(ctx interface{}, characterID interface{}) *RevisionRepo_CountCharacterRelated_Call { return &RevisionRepo_CountCharacterRelated_Call{Call: _e.mock.On("CountCharacterRelated", ctx, characterID)} } -func (_c *RevisionRepo_CountCharacterRelated_Call) Run(run func(ctx context.Context, characterID uint32)) *RevisionRepo_CountCharacterRelated_Call { +func (_c *RevisionRepo_CountCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *RevisionRepo_CountCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *RevisionRepo_CountCharacterRelated_Call) Return(_a0 int64, _a1 error) *RevisionRepo_CountCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_CountCharacterRelated_Call) Return(n int64, err error) *RevisionRepo_CountCharacterRelated_Call { + _c.Call.Return(n, err) return _c } -func (_c *RevisionRepo_CountCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) (int64, error)) *RevisionRepo_CountCharacterRelated_Call { +func (_c *RevisionRepo_CountCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, characterID model.CharacterID) (int64, error)) *RevisionRepo_CountCharacterRelated_Call { _c.Call.Return(run) return _c } -// CountEpisodeRelated provides a mock function with given fields: ctx, episodeID -func (_m *RevisionRepo) CountEpisodeRelated(ctx context.Context, episodeID uint32) (int64, error) { - ret := _m.Called(ctx, episodeID) +// CountEpisodeRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) CountEpisodeRelated(ctx context.Context, episodeID model.EpisodeID) (int64, error) { + ret := _mock.Called(ctx, episodeID) if len(ret) == 0 { panic("no return value specified for CountEpisodeRelated") @@ -89,21 +103,19 @@ func (_m *RevisionRepo) CountEpisodeRelated(ctx context.Context, episodeID uint3 var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { - return rf(ctx, episodeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID) (int64, error)); ok { + return returnFunc(ctx, episodeID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) int64); ok { - r0 = rf(ctx, episodeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID) int64); ok { + r0 = returnFunc(ctx, episodeID) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, episodeID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.EpisodeID) error); ok { + r1 = returnFunc(ctx, episodeID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -113,32 +125,32 @@ type RevisionRepo_CountEpisodeRelated_Call struct { } // CountEpisodeRelated is a helper method to define mock.On call -// - ctx context.Context -// - episodeID uint32 +// - ctx +// - episodeID func (_e *RevisionRepo_Expecter) CountEpisodeRelated(ctx interface{}, episodeID interface{}) *RevisionRepo_CountEpisodeRelated_Call { return &RevisionRepo_CountEpisodeRelated_Call{Call: _e.mock.On("CountEpisodeRelated", ctx, episodeID)} } -func (_c *RevisionRepo_CountEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID uint32)) *RevisionRepo_CountEpisodeRelated_Call { +func (_c *RevisionRepo_CountEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID)) *RevisionRepo_CountEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.EpisodeID)) }) return _c } -func (_c *RevisionRepo_CountEpisodeRelated_Call) Return(_a0 int64, _a1 error) *RevisionRepo_CountEpisodeRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_CountEpisodeRelated_Call) Return(n int64, err error) *RevisionRepo_CountEpisodeRelated_Call { + _c.Call.Return(n, err) return _c } -func (_c *RevisionRepo_CountEpisodeRelated_Call) RunAndReturn(run func(context.Context, uint32) (int64, error)) *RevisionRepo_CountEpisodeRelated_Call { +func (_c *RevisionRepo_CountEpisodeRelated_Call) RunAndReturn(run func(ctx context.Context, episodeID model.EpisodeID) (int64, error)) *RevisionRepo_CountEpisodeRelated_Call { _c.Call.Return(run) return _c } -// CountPersonRelated provides a mock function with given fields: ctx, personID -func (_m *RevisionRepo) CountPersonRelated(ctx context.Context, personID uint32) (int64, error) { - ret := _m.Called(ctx, personID) +// CountPersonRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) CountPersonRelated(ctx context.Context, personID model.PersonID) (int64, error) { + ret := _mock.Called(ctx, personID) if len(ret) == 0 { panic("no return value specified for CountPersonRelated") @@ -146,21 +158,19 @@ func (_m *RevisionRepo) CountPersonRelated(ctx context.Context, personID uint32) var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { - return rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) (int64, error)); ok { + return returnFunc(ctx, personID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) int64); ok { - r0 = rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) int64); ok { + r0 = returnFunc(ctx, personID) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, personID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, personID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -170,32 +180,32 @@ type RevisionRepo_CountPersonRelated_Call struct { } // CountPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - personID uint32 +// - ctx +// - personID func (_e *RevisionRepo_Expecter) CountPersonRelated(ctx interface{}, personID interface{}) *RevisionRepo_CountPersonRelated_Call { return &RevisionRepo_CountPersonRelated_Call{Call: _e.mock.On("CountPersonRelated", ctx, personID)} } -func (_c *RevisionRepo_CountPersonRelated_Call) Run(run func(ctx context.Context, personID uint32)) *RevisionRepo_CountPersonRelated_Call { +func (_c *RevisionRepo_CountPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *RevisionRepo_CountPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *RevisionRepo_CountPersonRelated_Call) Return(_a0 int64, _a1 error) *RevisionRepo_CountPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_CountPersonRelated_Call) Return(n int64, err error) *RevisionRepo_CountPersonRelated_Call { + _c.Call.Return(n, err) return _c } -func (_c *RevisionRepo_CountPersonRelated_Call) RunAndReturn(run func(context.Context, uint32) (int64, error)) *RevisionRepo_CountPersonRelated_Call { +func (_c *RevisionRepo_CountPersonRelated_Call) RunAndReturn(run func(ctx context.Context, personID model.PersonID) (int64, error)) *RevisionRepo_CountPersonRelated_Call { _c.Call.Return(run) return _c } -// CountSubjectRelated provides a mock function with given fields: ctx, id -func (_m *RevisionRepo) CountSubjectRelated(ctx context.Context, id uint32) (int64, error) { - ret := _m.Called(ctx, id) +// CountSubjectRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) CountSubjectRelated(ctx context.Context, id model.SubjectID) (int64, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for CountSubjectRelated") @@ -203,21 +213,19 @@ func (_m *RevisionRepo) CountSubjectRelated(ctx context.Context, id uint32) (int var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (int64, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) (int64, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) int64); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) int64); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -227,32 +235,32 @@ type RevisionRepo_CountSubjectRelated_Call struct { } // CountSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *RevisionRepo_Expecter) CountSubjectRelated(ctx interface{}, id interface{}) *RevisionRepo_CountSubjectRelated_Call { return &RevisionRepo_CountSubjectRelated_Call{Call: _e.mock.On("CountSubjectRelated", ctx, id)} } -func (_c *RevisionRepo_CountSubjectRelated_Call) Run(run func(ctx context.Context, id uint32)) *RevisionRepo_CountSubjectRelated_Call { +func (_c *RevisionRepo_CountSubjectRelated_Call) Run(run func(ctx context.Context, id model.SubjectID)) *RevisionRepo_CountSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *RevisionRepo_CountSubjectRelated_Call) Return(_a0 int64, _a1 error) *RevisionRepo_CountSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_CountSubjectRelated_Call) Return(n int64, err error) *RevisionRepo_CountSubjectRelated_Call { + _c.Call.Return(n, err) return _c } -func (_c *RevisionRepo_CountSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) (int64, error)) *RevisionRepo_CountSubjectRelated_Call { +func (_c *RevisionRepo_CountSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, id model.SubjectID) (int64, error)) *RevisionRepo_CountSubjectRelated_Call { _c.Call.Return(run) return _c } -// GetCharacterRelated provides a mock function with given fields: ctx, id -func (_m *RevisionRepo) GetCharacterRelated(ctx context.Context, id uint32) (model.CharacterRevision, error) { - ret := _m.Called(ctx, id) +// GetCharacterRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) GetCharacterRelated(ctx context.Context, id model.RevisionID) (model.CharacterRevision, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for GetCharacterRelated") @@ -260,21 +268,19 @@ func (_m *RevisionRepo) GetCharacterRelated(ctx context.Context, id uint32) (mod var r0 model.CharacterRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.CharacterRevision, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) (model.CharacterRevision, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.CharacterRevision); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) model.CharacterRevision); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.CharacterRevision) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.RevisionID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -284,32 +290,32 @@ type RevisionRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *RevisionRepo_Expecter) GetCharacterRelated(ctx interface{}, id interface{}) *RevisionRepo_GetCharacterRelated_Call { return &RevisionRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, id)} } -func (_c *RevisionRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, id uint32)) *RevisionRepo_GetCharacterRelated_Call { +func (_c *RevisionRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.RevisionID)) }) return _c } -func (_c *RevisionRepo_GetCharacterRelated_Call) Return(_a0 model.CharacterRevision, _a1 error) *RevisionRepo_GetCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_GetCharacterRelated_Call) Return(characterRevision model.CharacterRevision, err error) *RevisionRepo_GetCharacterRelated_Call { + _c.Call.Return(characterRevision, err) return _c } -func (_c *RevisionRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) (model.CharacterRevision, error)) *RevisionRepo_GetCharacterRelated_Call { +func (_c *RevisionRepo_GetCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, id model.RevisionID) (model.CharacterRevision, error)) *RevisionRepo_GetCharacterRelated_Call { _c.Call.Return(run) return _c } -// GetEpisodeRelated provides a mock function with given fields: ctx, id -func (_m *RevisionRepo) GetEpisodeRelated(ctx context.Context, id uint32) (model.EpisodeRevision, error) { - ret := _m.Called(ctx, id) +// GetEpisodeRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) GetEpisodeRelated(ctx context.Context, id model.RevisionID) (model.EpisodeRevision, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for GetEpisodeRelated") @@ -317,21 +323,19 @@ func (_m *RevisionRepo) GetEpisodeRelated(ctx context.Context, id uint32) (model var r0 model.EpisodeRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.EpisodeRevision, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) (model.EpisodeRevision, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.EpisodeRevision); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) model.EpisodeRevision); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.EpisodeRevision) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.RevisionID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -341,32 +345,32 @@ type RevisionRepo_GetEpisodeRelated_Call struct { } // GetEpisodeRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *RevisionRepo_Expecter) GetEpisodeRelated(ctx interface{}, id interface{}) *RevisionRepo_GetEpisodeRelated_Call { return &RevisionRepo_GetEpisodeRelated_Call{Call: _e.mock.On("GetEpisodeRelated", ctx, id)} } -func (_c *RevisionRepo_GetEpisodeRelated_Call) Run(run func(ctx context.Context, id uint32)) *RevisionRepo_GetEpisodeRelated_Call { +func (_c *RevisionRepo_GetEpisodeRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.RevisionID)) }) return _c } -func (_c *RevisionRepo_GetEpisodeRelated_Call) Return(_a0 model.EpisodeRevision, _a1 error) *RevisionRepo_GetEpisodeRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_GetEpisodeRelated_Call) Return(episodeRevision model.EpisodeRevision, err error) *RevisionRepo_GetEpisodeRelated_Call { + _c.Call.Return(episodeRevision, err) return _c } -func (_c *RevisionRepo_GetEpisodeRelated_Call) RunAndReturn(run func(context.Context, uint32) (model.EpisodeRevision, error)) *RevisionRepo_GetEpisodeRelated_Call { +func (_c *RevisionRepo_GetEpisodeRelated_Call) RunAndReturn(run func(ctx context.Context, id model.RevisionID) (model.EpisodeRevision, error)) *RevisionRepo_GetEpisodeRelated_Call { _c.Call.Return(run) return _c } -// GetPersonRelated provides a mock function with given fields: ctx, id -func (_m *RevisionRepo) GetPersonRelated(ctx context.Context, id uint32) (model.PersonRevision, error) { - ret := _m.Called(ctx, id) +// GetPersonRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) GetPersonRelated(ctx context.Context, id model.RevisionID) (model.PersonRevision, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for GetPersonRelated") @@ -374,21 +378,19 @@ func (_m *RevisionRepo) GetPersonRelated(ctx context.Context, id uint32) (model. var r0 model.PersonRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.PersonRevision, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) (model.PersonRevision, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.PersonRevision); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) model.PersonRevision); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.PersonRevision) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.RevisionID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -398,32 +400,32 @@ type RevisionRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *RevisionRepo_Expecter) GetPersonRelated(ctx interface{}, id interface{}) *RevisionRepo_GetPersonRelated_Call { return &RevisionRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, id)} } -func (_c *RevisionRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, id uint32)) *RevisionRepo_GetPersonRelated_Call { +func (_c *RevisionRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.RevisionID)) }) return _c } -func (_c *RevisionRepo_GetPersonRelated_Call) Return(_a0 model.PersonRevision, _a1 error) *RevisionRepo_GetPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_GetPersonRelated_Call) Return(personRevision model.PersonRevision, err error) *RevisionRepo_GetPersonRelated_Call { + _c.Call.Return(personRevision, err) return _c } -func (_c *RevisionRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Context, uint32) (model.PersonRevision, error)) *RevisionRepo_GetPersonRelated_Call { +func (_c *RevisionRepo_GetPersonRelated_Call) RunAndReturn(run func(ctx context.Context, id model.RevisionID) (model.PersonRevision, error)) *RevisionRepo_GetPersonRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, id -func (_m *RevisionRepo) GetSubjectRelated(ctx context.Context, id uint32) (model.SubjectRevision, error) { - ret := _m.Called(ctx, id) +// GetSubjectRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) GetSubjectRelated(ctx context.Context, id model.RevisionID) (model.SubjectRevision, error) { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") @@ -431,21 +433,19 @@ func (_m *RevisionRepo) GetSubjectRelated(ctx context.Context, id uint32) (model var r0 model.SubjectRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (model.SubjectRevision, error)); ok { - return rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) (model.SubjectRevision, error)); ok { + return returnFunc(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) model.SubjectRevision); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.RevisionID) model.SubjectRevision); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Get(0).(model.SubjectRevision) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, id) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.RevisionID) error); ok { + r1 = returnFunc(ctx, id) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -455,32 +455,32 @@ type RevisionRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *RevisionRepo_Expecter) GetSubjectRelated(ctx interface{}, id interface{}) *RevisionRepo_GetSubjectRelated_Call { return &RevisionRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, id)} } -func (_c *RevisionRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, id uint32)) *RevisionRepo_GetSubjectRelated_Call { +func (_c *RevisionRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.RevisionID)) }) return _c } -func (_c *RevisionRepo_GetSubjectRelated_Call) Return(_a0 model.SubjectRevision, _a1 error) *RevisionRepo_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_GetSubjectRelated_Call) Return(subjectRevision model.SubjectRevision, err error) *RevisionRepo_GetSubjectRelated_Call { + _c.Call.Return(subjectRevision, err) return _c } -func (_c *RevisionRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) (model.SubjectRevision, error)) *RevisionRepo_GetSubjectRelated_Call { +func (_c *RevisionRepo_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, id model.RevisionID) (model.SubjectRevision, error)) *RevisionRepo_GetSubjectRelated_Call { _c.Call.Return(run) return _c } -// ListCharacterRelated provides a mock function with given fields: ctx, characterID, limit, offset -func (_m *RevisionRepo) ListCharacterRelated(ctx context.Context, characterID uint32, limit int, offset int) ([]model.CharacterRevision, error) { - ret := _m.Called(ctx, characterID, limit, offset) +// ListCharacterRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) ListCharacterRelated(ctx context.Context, characterID model.CharacterID, limit int, offset int) ([]model.CharacterRevision, error) { + ret := _mock.Called(ctx, characterID, limit, offset) if len(ret) == 0 { panic("no return value specified for ListCharacterRelated") @@ -488,23 +488,21 @@ func (_m *RevisionRepo) ListCharacterRelated(ctx context.Context, characterID ui var r0 []model.CharacterRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.CharacterRevision, error)); ok { - return rf(ctx, characterID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID, int, int) ([]model.CharacterRevision, error)); ok { + return returnFunc(ctx, characterID, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) []model.CharacterRevision); ok { - r0 = rf(ctx, characterID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID, int, int) []model.CharacterRevision); ok { + r0 = returnFunc(ctx, characterID, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.CharacterRevision) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, int, int) error); ok { - r1 = rf(ctx, characterID, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID, int, int) error); ok { + r1 = returnFunc(ctx, characterID, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -514,34 +512,34 @@ type RevisionRepo_ListCharacterRelated_Call struct { } // ListCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - characterID uint32 -// - limit int -// - offset int +// - ctx +// - characterID +// - limit +// - offset func (_e *RevisionRepo_Expecter) ListCharacterRelated(ctx interface{}, characterID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListCharacterRelated_Call { return &RevisionRepo_ListCharacterRelated_Call{Call: _e.mock.On("ListCharacterRelated", ctx, characterID, limit, offset)} } -func (_c *RevisionRepo_ListCharacterRelated_Call) Run(run func(ctx context.Context, characterID uint32, limit int, offset int)) *RevisionRepo_ListCharacterRelated_Call { +func (_c *RevisionRepo_ListCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID, limit int, offset int)) *RevisionRepo_ListCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(int), args[3].(int)) + run(args[0].(context.Context), args[1].(model.CharacterID), args[2].(int), args[3].(int)) }) return _c } -func (_c *RevisionRepo_ListCharacterRelated_Call) Return(_a0 []model.CharacterRevision, _a1 error) *RevisionRepo_ListCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_ListCharacterRelated_Call) Return(characterRevisions []model.CharacterRevision, err error) *RevisionRepo_ListCharacterRelated_Call { + _c.Call.Return(characterRevisions, err) return _c } -func (_c *RevisionRepo_ListCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32, int, int) ([]model.CharacterRevision, error)) *RevisionRepo_ListCharacterRelated_Call { +func (_c *RevisionRepo_ListCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, characterID model.CharacterID, limit int, offset int) ([]model.CharacterRevision, error)) *RevisionRepo_ListCharacterRelated_Call { _c.Call.Return(run) return _c } -// ListEpisodeRelated provides a mock function with given fields: ctx, episodeID, limit, offset -func (_m *RevisionRepo) ListEpisodeRelated(ctx context.Context, episodeID uint32, limit int, offset int) ([]model.EpisodeRevision, error) { - ret := _m.Called(ctx, episodeID, limit, offset) +// ListEpisodeRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) ListEpisodeRelated(ctx context.Context, episodeID model.EpisodeID, limit int, offset int) ([]model.EpisodeRevision, error) { + ret := _mock.Called(ctx, episodeID, limit, offset) if len(ret) == 0 { panic("no return value specified for ListEpisodeRelated") @@ -549,23 +547,21 @@ func (_m *RevisionRepo) ListEpisodeRelated(ctx context.Context, episodeID uint32 var r0 []model.EpisodeRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.EpisodeRevision, error)); ok { - return rf(ctx, episodeID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID, int, int) ([]model.EpisodeRevision, error)); ok { + return returnFunc(ctx, episodeID, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) []model.EpisodeRevision); ok { - r0 = rf(ctx, episodeID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.EpisodeID, int, int) []model.EpisodeRevision); ok { + r0 = returnFunc(ctx, episodeID, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.EpisodeRevision) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, int, int) error); ok { - r1 = rf(ctx, episodeID, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.EpisodeID, int, int) error); ok { + r1 = returnFunc(ctx, episodeID, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -575,34 +571,34 @@ type RevisionRepo_ListEpisodeRelated_Call struct { } // ListEpisodeRelated is a helper method to define mock.On call -// - ctx context.Context -// - episodeID uint32 -// - limit int -// - offset int +// - ctx +// - episodeID +// - limit +// - offset func (_e *RevisionRepo_Expecter) ListEpisodeRelated(ctx interface{}, episodeID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListEpisodeRelated_Call { return &RevisionRepo_ListEpisodeRelated_Call{Call: _e.mock.On("ListEpisodeRelated", ctx, episodeID, limit, offset)} } -func (_c *RevisionRepo_ListEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID uint32, limit int, offset int)) *RevisionRepo_ListEpisodeRelated_Call { +func (_c *RevisionRepo_ListEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID, limit int, offset int)) *RevisionRepo_ListEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(int), args[3].(int)) + run(args[0].(context.Context), args[1].(model.EpisodeID), args[2].(int), args[3].(int)) }) return _c } -func (_c *RevisionRepo_ListEpisodeRelated_Call) Return(_a0 []model.EpisodeRevision, _a1 error) *RevisionRepo_ListEpisodeRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_ListEpisodeRelated_Call) Return(episodeRevisions []model.EpisodeRevision, err error) *RevisionRepo_ListEpisodeRelated_Call { + _c.Call.Return(episodeRevisions, err) return _c } -func (_c *RevisionRepo_ListEpisodeRelated_Call) RunAndReturn(run func(context.Context, uint32, int, int) ([]model.EpisodeRevision, error)) *RevisionRepo_ListEpisodeRelated_Call { +func (_c *RevisionRepo_ListEpisodeRelated_Call) RunAndReturn(run func(ctx context.Context, episodeID model.EpisodeID, limit int, offset int) ([]model.EpisodeRevision, error)) *RevisionRepo_ListEpisodeRelated_Call { _c.Call.Return(run) return _c } -// ListPersonRelated provides a mock function with given fields: ctx, personID, limit, offset -func (_m *RevisionRepo) ListPersonRelated(ctx context.Context, personID uint32, limit int, offset int) ([]model.PersonRevision, error) { - ret := _m.Called(ctx, personID, limit, offset) +// ListPersonRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) ListPersonRelated(ctx context.Context, personID model.PersonID, limit int, offset int) ([]model.PersonRevision, error) { + ret := _mock.Called(ctx, personID, limit, offset) if len(ret) == 0 { panic("no return value specified for ListPersonRelated") @@ -610,23 +606,21 @@ func (_m *RevisionRepo) ListPersonRelated(ctx context.Context, personID uint32, var r0 []model.PersonRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.PersonRevision, error)); ok { - return rf(ctx, personID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID, int, int) ([]model.PersonRevision, error)); ok { + return returnFunc(ctx, personID, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) []model.PersonRevision); ok { - r0 = rf(ctx, personID, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID, int, int) []model.PersonRevision); ok { + r0 = returnFunc(ctx, personID, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.PersonRevision) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, int, int) error); ok { - r1 = rf(ctx, personID, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID, int, int) error); ok { + r1 = returnFunc(ctx, personID, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -636,34 +630,34 @@ type RevisionRepo_ListPersonRelated_Call struct { } // ListPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - personID uint32 -// - limit int -// - offset int +// - ctx +// - personID +// - limit +// - offset func (_e *RevisionRepo_Expecter) ListPersonRelated(ctx interface{}, personID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListPersonRelated_Call { return &RevisionRepo_ListPersonRelated_Call{Call: _e.mock.On("ListPersonRelated", ctx, personID, limit, offset)} } -func (_c *RevisionRepo_ListPersonRelated_Call) Run(run func(ctx context.Context, personID uint32, limit int, offset int)) *RevisionRepo_ListPersonRelated_Call { +func (_c *RevisionRepo_ListPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID, limit int, offset int)) *RevisionRepo_ListPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(int), args[3].(int)) + run(args[0].(context.Context), args[1].(model.PersonID), args[2].(int), args[3].(int)) }) return _c } -func (_c *RevisionRepo_ListPersonRelated_Call) Return(_a0 []model.PersonRevision, _a1 error) *RevisionRepo_ListPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_ListPersonRelated_Call) Return(personRevisions []model.PersonRevision, err error) *RevisionRepo_ListPersonRelated_Call { + _c.Call.Return(personRevisions, err) return _c } -func (_c *RevisionRepo_ListPersonRelated_Call) RunAndReturn(run func(context.Context, uint32, int, int) ([]model.PersonRevision, error)) *RevisionRepo_ListPersonRelated_Call { +func (_c *RevisionRepo_ListPersonRelated_Call) RunAndReturn(run func(ctx context.Context, personID model.PersonID, limit int, offset int) ([]model.PersonRevision, error)) *RevisionRepo_ListPersonRelated_Call { _c.Call.Return(run) return _c } -// ListSubjectRelated provides a mock function with given fields: ctx, id, limit, offset -func (_m *RevisionRepo) ListSubjectRelated(ctx context.Context, id uint32, limit int, offset int) ([]model.SubjectRevision, error) { - ret := _m.Called(ctx, id, limit, offset) +// ListSubjectRelated provides a mock function for the type RevisionRepo +func (_mock *RevisionRepo) ListSubjectRelated(ctx context.Context, id model.SubjectID, limit int, offset int) ([]model.SubjectRevision, error) { + ret := _mock.Called(ctx, id, limit, offset) if len(ret) == 0 { panic("no return value specified for ListSubjectRelated") @@ -671,23 +665,21 @@ func (_m *RevisionRepo) ListSubjectRelated(ctx context.Context, id uint32, limit var r0 []model.SubjectRevision var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) ([]model.SubjectRevision, error)); ok { - return rf(ctx, id, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, int, int) ([]model.SubjectRevision, error)); ok { + return returnFunc(ctx, id, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, int, int) []model.SubjectRevision); ok { - r0 = rf(ctx, id, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, int, int) []model.SubjectRevision); ok { + r0 = returnFunc(ctx, id, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.SubjectRevision) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, int, int) error); ok { - r1 = rf(ctx, id, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, int, int) error); ok { + r1 = returnFunc(ctx, id, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -697,41 +689,27 @@ type RevisionRepo_ListSubjectRelated_Call struct { } // ListSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - limit int -// - offset int +// - ctx +// - id +// - limit +// - offset func (_e *RevisionRepo_Expecter) ListSubjectRelated(ctx interface{}, id interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListSubjectRelated_Call { return &RevisionRepo_ListSubjectRelated_Call{Call: _e.mock.On("ListSubjectRelated", ctx, id, limit, offset)} } -func (_c *RevisionRepo_ListSubjectRelated_Call) Run(run func(ctx context.Context, id uint32, limit int, offset int)) *RevisionRepo_ListSubjectRelated_Call { +func (_c *RevisionRepo_ListSubjectRelated_Call) Run(run func(ctx context.Context, id model.SubjectID, limit int, offset int)) *RevisionRepo_ListSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(int), args[3].(int)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(int), args[3].(int)) }) return _c } -func (_c *RevisionRepo_ListSubjectRelated_Call) Return(_a0 []model.SubjectRevision, _a1 error) *RevisionRepo_ListSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *RevisionRepo_ListSubjectRelated_Call) Return(subjectRevisions []model.SubjectRevision, err error) *RevisionRepo_ListSubjectRelated_Call { + _c.Call.Return(subjectRevisions, err) return _c } -func (_c *RevisionRepo_ListSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32, int, int) ([]model.SubjectRevision, error)) *RevisionRepo_ListSubjectRelated_Call { +func (_c *RevisionRepo_ListSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, id model.SubjectID, limit int, offset int) ([]model.SubjectRevision, error)) *RevisionRepo_ListSubjectRelated_Call { _c.Call.Return(run) return _c } - -// NewRevisionRepo creates a new instance of RevisionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewRevisionRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *RevisionRepo { - mock := &RevisionRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index b63ea51d4..7b5292dc5 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -1,16 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - echo "github.com/labstack/echo/v4" + "github.com/bangumi/server/internal/search" + "github.com/labstack/echo/v4" mock "github.com/stretchr/testify/mock" - - search "github.com/bangumi/server/internal/search" ) +// NewSearchClient creates a new instance of SearchClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSearchClient(t interface { + mock.TestingT + Cleanup(func()) +}) *SearchClient { + mock := &SearchClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // SearchClient is an autogenerated mock type for the Client type type SearchClient struct { mock.Mock @@ -24,9 +39,10 @@ func (_m *SearchClient) EXPECT() *SearchClient_Expecter { return &SearchClient_Expecter{mock: &_m.Mock} } -// Close provides a mock function with no fields -func (_m *SearchClient) Close() { - _m.Called() +// Close provides a mock function for the type SearchClient +func (_mock *SearchClient) Close() { + _mock.Called() + return } // SearchClient_Close_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Close' @@ -56,21 +72,20 @@ func (_c *SearchClient_Close_Call) RunAndReturn(run func()) *SearchClient_Close_ return _c } -// EventAdded provides a mock function with given fields: ctx, id, target -func (_m *SearchClient) EventAdded(ctx context.Context, id uint32, target search.SearchTarget) error { - ret := _m.Called(ctx, id, target) +// EventAdded provides a mock function for the type SearchClient +func (_mock *SearchClient) EventAdded(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _mock.Called(ctx, id, target) if len(ret) == 0 { panic("no return value specified for EventAdded") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { - r0 = rf(ctx, id, target) + if returnFunc, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = returnFunc(ctx, id, target) } else { r0 = ret.Error(0) } - return r0 } @@ -80,9 +95,9 @@ type SearchClient_EventAdded_Call struct { } // EventAdded is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - target search.SearchTarget +// - ctx +// - id +// - target func (_e *SearchClient_Expecter) EventAdded(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventAdded_Call { return &SearchClient_EventAdded_Call{Call: _e.mock.On("EventAdded", ctx, id, target)} } @@ -94,31 +109,30 @@ func (_c *SearchClient_EventAdded_Call) Run(run func(ctx context.Context, id uin return _c } -func (_c *SearchClient_EventAdded_Call) Return(_a0 error) *SearchClient_EventAdded_Call { - _c.Call.Return(_a0) +func (_c *SearchClient_EventAdded_Call) Return(err error) *SearchClient_EventAdded_Call { + _c.Call.Return(err) return _c } -func (_c *SearchClient_EventAdded_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventAdded_Call { +func (_c *SearchClient_EventAdded_Call) RunAndReturn(run func(ctx context.Context, id uint32, target search.SearchTarget) error) *SearchClient_EventAdded_Call { _c.Call.Return(run) return _c } -// EventDelete provides a mock function with given fields: ctx, id, target -func (_m *SearchClient) EventDelete(ctx context.Context, id uint32, target search.SearchTarget) error { - ret := _m.Called(ctx, id, target) +// EventDelete provides a mock function for the type SearchClient +func (_mock *SearchClient) EventDelete(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _mock.Called(ctx, id, target) if len(ret) == 0 { panic("no return value specified for EventDelete") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { - r0 = rf(ctx, id, target) + if returnFunc, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = returnFunc(ctx, id, target) } else { r0 = ret.Error(0) } - return r0 } @@ -128,9 +142,9 @@ type SearchClient_EventDelete_Call struct { } // EventDelete is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - target search.SearchTarget +// - ctx +// - id +// - target func (_e *SearchClient_Expecter) EventDelete(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventDelete_Call { return &SearchClient_EventDelete_Call{Call: _e.mock.On("EventDelete", ctx, id, target)} } @@ -142,31 +156,30 @@ func (_c *SearchClient_EventDelete_Call) Run(run func(ctx context.Context, id ui return _c } -func (_c *SearchClient_EventDelete_Call) Return(_a0 error) *SearchClient_EventDelete_Call { - _c.Call.Return(_a0) +func (_c *SearchClient_EventDelete_Call) Return(err error) *SearchClient_EventDelete_Call { + _c.Call.Return(err) return _c } -func (_c *SearchClient_EventDelete_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventDelete_Call { +func (_c *SearchClient_EventDelete_Call) RunAndReturn(run func(ctx context.Context, id uint32, target search.SearchTarget) error) *SearchClient_EventDelete_Call { _c.Call.Return(run) return _c } -// EventUpdate provides a mock function with given fields: ctx, id, target -func (_m *SearchClient) EventUpdate(ctx context.Context, id uint32, target search.SearchTarget) error { - ret := _m.Called(ctx, id, target) +// EventUpdate provides a mock function for the type SearchClient +func (_mock *SearchClient) EventUpdate(ctx context.Context, id uint32, target search.SearchTarget) error { + ret := _mock.Called(ctx, id, target) if len(ret) == 0 { panic("no return value specified for EventUpdate") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { - r0 = rf(ctx, id, target) + if returnFunc, ok := ret.Get(0).(func(context.Context, uint32, search.SearchTarget) error); ok { + r0 = returnFunc(ctx, id, target) } else { r0 = ret.Error(0) } - return r0 } @@ -176,9 +189,9 @@ type SearchClient_EventUpdate_Call struct { } // EventUpdate is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - target search.SearchTarget +// - ctx +// - id +// - target func (_e *SearchClient_Expecter) EventUpdate(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventUpdate_Call { return &SearchClient_EventUpdate_Call{Call: _e.mock.On("EventUpdate", ctx, id, target)} } @@ -190,31 +203,30 @@ func (_c *SearchClient_EventUpdate_Call) Run(run func(ctx context.Context, id ui return _c } -func (_c *SearchClient_EventUpdate_Call) Return(_a0 error) *SearchClient_EventUpdate_Call { - _c.Call.Return(_a0) +func (_c *SearchClient_EventUpdate_Call) Return(err error) *SearchClient_EventUpdate_Call { + _c.Call.Return(err) return _c } -func (_c *SearchClient_EventUpdate_Call) RunAndReturn(run func(context.Context, uint32, search.SearchTarget) error) *SearchClient_EventUpdate_Call { +func (_c *SearchClient_EventUpdate_Call) RunAndReturn(run func(ctx context.Context, id uint32, target search.SearchTarget) error) *SearchClient_EventUpdate_Call { _c.Call.Return(run) return _c } -// Handle provides a mock function with given fields: c, target -func (_m *SearchClient) Handle(c echo.Context, target search.SearchTarget) error { - ret := _m.Called(c, target) +// Handle provides a mock function for the type SearchClient +func (_mock *SearchClient) Handle(c echo.Context, target search.SearchTarget) error { + ret := _mock.Called(c, target) if len(ret) == 0 { panic("no return value specified for Handle") } var r0 error - if rf, ok := ret.Get(0).(func(echo.Context, search.SearchTarget) error); ok { - r0 = rf(c, target) + if returnFunc, ok := ret.Get(0).(func(echo.Context, search.SearchTarget) error); ok { + r0 = returnFunc(c, target) } else { r0 = ret.Error(0) } - return r0 } @@ -224,8 +236,8 @@ type SearchClient_Handle_Call struct { } // Handle is a helper method to define mock.On call -// - c echo.Context -// - target search.SearchTarget +// - c +// - target func (_e *SearchClient_Expecter) Handle(c interface{}, target interface{}) *SearchClient_Handle_Call { return &SearchClient_Handle_Call{Call: _e.mock.On("Handle", c, target)} } @@ -237,26 +249,12 @@ func (_c *SearchClient_Handle_Call) Run(run func(c echo.Context, target search.S return _c } -func (_c *SearchClient_Handle_Call) Return(_a0 error) *SearchClient_Handle_Call { - _c.Call.Return(_a0) +func (_c *SearchClient_Handle_Call) Return(err error) *SearchClient_Handle_Call { + _c.Call.Return(err) return _c } -func (_c *SearchClient_Handle_Call) RunAndReturn(run func(echo.Context, search.SearchTarget) error) *SearchClient_Handle_Call { +func (_c *SearchClient_Handle_Call) RunAndReturn(run func(c echo.Context, target search.SearchTarget) error) *SearchClient_Handle_Call { _c.Call.Return(run) return _c } - -// NewSearchClient creates a new instance of SearchClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSearchClient(t interface { - mock.TestingT - Cleanup(func()) -}) *SearchClient { - mock := &SearchClient{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/SessionManager.go b/internal/mocks/SessionManager.go index 460926370..c3ee48328 100644 --- a/internal/mocks/SessionManager.go +++ b/internal/mocks/SessionManager.go @@ -1,17 +1,32 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" - - auth "github.com/bangumi/server/internal/auth" + "context" + "github.com/bangumi/server/internal/auth" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/web/session" mock "github.com/stretchr/testify/mock" - - session "github.com/bangumi/server/web/session" ) +// NewSessionManager creates a new instance of SessionManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSessionManager(t interface { + mock.TestingT + Cleanup(func()) +}) *SessionManager { + mock := &SessionManager{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // SessionManager is an autogenerated mock type for the Manager type type SessionManager struct { mock.Mock @@ -25,9 +40,9 @@ func (_m *SessionManager) EXPECT() *SessionManager_Expecter { return &SessionManager_Expecter{mock: &_m.Mock} } -// Create provides a mock function with given fields: ctx, a -func (_m *SessionManager) Create(ctx context.Context, a auth.Auth) (string, session.Session, error) { - ret := _m.Called(ctx, a) +// Create provides a mock function for the type SessionManager +func (_mock *SessionManager) Create(ctx context.Context, a auth.Auth) (string, session.Session, error) { + ret := _mock.Called(ctx, a) if len(ret) == 0 { panic("no return value specified for Create") @@ -36,27 +51,24 @@ func (_m *SessionManager) Create(ctx context.Context, a auth.Auth) (string, sess var r0 string var r1 session.Session var r2 error - if rf, ok := ret.Get(0).(func(context.Context, auth.Auth) (string, session.Session, error)); ok { - return rf(ctx, a) + if returnFunc, ok := ret.Get(0).(func(context.Context, auth.Auth) (string, session.Session, error)); ok { + return returnFunc(ctx, a) } - if rf, ok := ret.Get(0).(func(context.Context, auth.Auth) string); ok { - r0 = rf(ctx, a) + if returnFunc, ok := ret.Get(0).(func(context.Context, auth.Auth) string); ok { + r0 = returnFunc(ctx, a) } else { r0 = ret.Get(0).(string) } - - if rf, ok := ret.Get(1).(func(context.Context, auth.Auth) session.Session); ok { - r1 = rf(ctx, a) + if returnFunc, ok := ret.Get(1).(func(context.Context, auth.Auth) session.Session); ok { + r1 = returnFunc(ctx, a) } else { r1 = ret.Get(1).(session.Session) } - - if rf, ok := ret.Get(2).(func(context.Context, auth.Auth) error); ok { - r2 = rf(ctx, a) + if returnFunc, ok := ret.Get(2).(func(context.Context, auth.Auth) error); ok { + r2 = returnFunc(ctx, a) } else { r2 = ret.Error(2) } - return r0, r1, r2 } @@ -66,8 +78,8 @@ type SessionManager_Create_Call struct { } // Create is a helper method to define mock.On call -// - ctx context.Context -// - a auth.Auth +// - ctx +// - a func (_e *SessionManager_Expecter) Create(ctx interface{}, a interface{}) *SessionManager_Create_Call { return &SessionManager_Create_Call{Call: _e.mock.On("Create", ctx, a)} } @@ -79,19 +91,19 @@ func (_c *SessionManager_Create_Call) Run(run func(ctx context.Context, a auth.A return _c } -func (_c *SessionManager_Create_Call) Return(_a0 string, _a1 session.Session, _a2 error) *SessionManager_Create_Call { - _c.Call.Return(_a0, _a1, _a2) +func (_c *SessionManager_Create_Call) Return(s string, session1 session.Session, err error) *SessionManager_Create_Call { + _c.Call.Return(s, session1, err) return _c } -func (_c *SessionManager_Create_Call) RunAndReturn(run func(context.Context, auth.Auth) (string, session.Session, error)) *SessionManager_Create_Call { +func (_c *SessionManager_Create_Call) RunAndReturn(run func(ctx context.Context, a auth.Auth) (string, session.Session, error)) *SessionManager_Create_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, key -func (_m *SessionManager) Get(ctx context.Context, key string) (session.Session, error) { - ret := _m.Called(ctx, key) +// Get provides a mock function for the type SessionManager +func (_mock *SessionManager) Get(ctx context.Context, key string) (session.Session, error) { + ret := _mock.Called(ctx, key) if len(ret) == 0 { panic("no return value specified for Get") @@ -99,21 +111,19 @@ func (_m *SessionManager) Get(ctx context.Context, key string) (session.Session, var r0 session.Session var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { - return rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { + return returnFunc(ctx, key) } - if rf, ok := ret.Get(0).(func(context.Context, string) session.Session); ok { - r0 = rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) session.Session); ok { + r0 = returnFunc(ctx, key) } else { r0 = ret.Get(0).(session.Session) } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, key) + if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = returnFunc(ctx, key) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -123,8 +133,8 @@ type SessionManager_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - key string +// - ctx +// - key func (_e *SessionManager_Expecter) Get(ctx interface{}, key interface{}) *SessionManager_Get_Call { return &SessionManager_Get_Call{Call: _e.mock.On("Get", ctx, key)} } @@ -136,31 +146,30 @@ func (_c *SessionManager_Get_Call) Run(run func(ctx context.Context, key string) return _c } -func (_c *SessionManager_Get_Call) Return(_a0 session.Session, _a1 error) *SessionManager_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *SessionManager_Get_Call) Return(session1 session.Session, err error) *SessionManager_Get_Call { + _c.Call.Return(session1, err) return _c } -func (_c *SessionManager_Get_Call) RunAndReturn(run func(context.Context, string) (session.Session, error)) *SessionManager_Get_Call { +func (_c *SessionManager_Get_Call) RunAndReturn(run func(ctx context.Context, key string) (session.Session, error)) *SessionManager_Get_Call { _c.Call.Return(run) return _c } -// Revoke provides a mock function with given fields: ctx, key -func (_m *SessionManager) Revoke(ctx context.Context, key string) error { - ret := _m.Called(ctx, key) +// Revoke provides a mock function for the type SessionManager +func (_mock *SessionManager) Revoke(ctx context.Context, key string) error { + ret := _mock.Called(ctx, key) if len(ret) == 0 { panic("no return value specified for Revoke") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { - r0 = rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) error); ok { + r0 = returnFunc(ctx, key) } else { r0 = ret.Error(0) } - return r0 } @@ -170,8 +179,8 @@ type SessionManager_Revoke_Call struct { } // Revoke is a helper method to define mock.On call -// - ctx context.Context -// - key string +// - ctx +// - key func (_e *SessionManager_Expecter) Revoke(ctx interface{}, key interface{}) *SessionManager_Revoke_Call { return &SessionManager_Revoke_Call{Call: _e.mock.On("Revoke", ctx, key)} } @@ -183,31 +192,30 @@ func (_c *SessionManager_Revoke_Call) Run(run func(ctx context.Context, key stri return _c } -func (_c *SessionManager_Revoke_Call) Return(_a0 error) *SessionManager_Revoke_Call { - _c.Call.Return(_a0) +func (_c *SessionManager_Revoke_Call) Return(err error) *SessionManager_Revoke_Call { + _c.Call.Return(err) return _c } -func (_c *SessionManager_Revoke_Call) RunAndReturn(run func(context.Context, string) error) *SessionManager_Revoke_Call { +func (_c *SessionManager_Revoke_Call) RunAndReturn(run func(ctx context.Context, key string) error) *SessionManager_Revoke_Call { _c.Call.Return(run) return _c } -// RevokeUser provides a mock function with given fields: ctx, id -func (_m *SessionManager) RevokeUser(ctx context.Context, id uint32) error { - ret := _m.Called(ctx, id) +// RevokeUser provides a mock function for the type SessionManager +func (_mock *SessionManager) RevokeUser(ctx context.Context, id model.UserID) error { + ret := _mock.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for RevokeUser") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) error); ok { - r0 = rf(ctx, id) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) error); ok { + r0 = returnFunc(ctx, id) } else { r0 = ret.Error(0) } - return r0 } @@ -217,39 +225,25 @@ type SessionManager_RevokeUser_Call struct { } // RevokeUser is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 +// - ctx +// - id func (_e *SessionManager_Expecter) RevokeUser(ctx interface{}, id interface{}) *SessionManager_RevokeUser_Call { return &SessionManager_RevokeUser_Call{Call: _e.mock.On("RevokeUser", ctx, id)} } -func (_c *SessionManager_RevokeUser_Call) Run(run func(ctx context.Context, id uint32)) *SessionManager_RevokeUser_Call { +func (_c *SessionManager_RevokeUser_Call) Run(run func(ctx context.Context, id model.UserID)) *SessionManager_RevokeUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID)) }) return _c } -func (_c *SessionManager_RevokeUser_Call) Return(_a0 error) *SessionManager_RevokeUser_Call { - _c.Call.Return(_a0) +func (_c *SessionManager_RevokeUser_Call) Return(err error) *SessionManager_RevokeUser_Call { + _c.Call.Return(err) return _c } -func (_c *SessionManager_RevokeUser_Call) RunAndReturn(run func(context.Context, uint32) error) *SessionManager_RevokeUser_Call { +func (_c *SessionManager_RevokeUser_Call) RunAndReturn(run func(ctx context.Context, id model.UserID) error) *SessionManager_RevokeUser_Call { _c.Call.Return(run) return _c } - -// NewSessionManager creates a new instance of SessionManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSessionManager(t interface { - mock.TestingT - Cleanup(func()) -}) *SessionManager { - mock := &SessionManager{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/SessionRepo.go b/internal/mocks/SessionRepo.go index a41f7e546..39d747b5a 100644 --- a/internal/mocks/SessionRepo.go +++ b/internal/mocks/SessionRepo.go @@ -1,16 +1,32 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" + "time" - session "github.com/bangumi/server/web/session" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/web/session" mock "github.com/stretchr/testify/mock" - - time "time" ) +// NewSessionRepo creates a new instance of SessionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSessionRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *SessionRepo { + mock := &SessionRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // SessionRepo is an autogenerated mock type for the Repo type type SessionRepo struct { mock.Mock @@ -24,9 +40,9 @@ func (_m *SessionRepo) EXPECT() *SessionRepo_Expecter { return &SessionRepo_Expecter{mock: &_m.Mock} } -// Create provides a mock function with given fields: ctx, userID, regTime, keyGen -func (_m *SessionRepo) Create(ctx context.Context, userID uint32, regTime time.Time, keyGen func() string) (string, session.Session, error) { - ret := _m.Called(ctx, userID, regTime, keyGen) +// Create provides a mock function for the type SessionRepo +func (_mock *SessionRepo) Create(ctx context.Context, userID model.UserID, regTime time.Time, keyGen func() string) (string, session.Session, error) { + ret := _mock.Called(ctx, userID, regTime, keyGen) if len(ret) == 0 { panic("no return value specified for Create") @@ -35,27 +51,24 @@ func (_m *SessionRepo) Create(ctx context.Context, userID uint32, regTime time.T var r0 string var r1 session.Session var r2 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, time.Time, func() string) (string, session.Session, error)); ok { - return rf(ctx, userID, regTime, keyGen) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, time.Time, func() string) (string, session.Session, error)); ok { + return returnFunc(ctx, userID, regTime, keyGen) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, time.Time, func() string) string); ok { - r0 = rf(ctx, userID, regTime, keyGen) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, time.Time, func() string) string); ok { + r0 = returnFunc(ctx, userID, regTime, keyGen) } else { r0 = ret.Get(0).(string) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, time.Time, func() string) session.Session); ok { - r1 = rf(ctx, userID, regTime, keyGen) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, time.Time, func() string) session.Session); ok { + r1 = returnFunc(ctx, userID, regTime, keyGen) } else { r1 = ret.Get(1).(session.Session) } - - if rf, ok := ret.Get(2).(func(context.Context, uint32, time.Time, func() string) error); ok { - r2 = rf(ctx, userID, regTime, keyGen) + if returnFunc, ok := ret.Get(2).(func(context.Context, model.UserID, time.Time, func() string) error); ok { + r2 = returnFunc(ctx, userID, regTime, keyGen) } else { r2 = ret.Error(2) } - return r0, r1, r2 } @@ -65,17 +78,17 @@ type SessionRepo_Create_Call struct { } // Create is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 -// - regTime time.Time -// - keyGen func() string +// - ctx +// - userID +// - regTime +// - keyGen func (_e *SessionRepo_Expecter) Create(ctx interface{}, userID interface{}, regTime interface{}, keyGen interface{}) *SessionRepo_Create_Call { return &SessionRepo_Create_Call{Call: _e.mock.On("Create", ctx, userID, regTime, keyGen)} } -func (_c *SessionRepo_Create_Call) Run(run func(ctx context.Context, userID uint32, regTime time.Time, keyGen func() string)) *SessionRepo_Create_Call { +func (_c *SessionRepo_Create_Call) Run(run func(ctx context.Context, userID model.UserID, regTime time.Time, keyGen func() string)) *SessionRepo_Create_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(time.Time), args[3].(func() string)) + run(args[0].(context.Context), args[1].(model.UserID), args[2].(time.Time), args[3].(func() string)) }) return _c } @@ -85,14 +98,14 @@ func (_c *SessionRepo_Create_Call) Return(key string, s session.Session, err err return _c } -func (_c *SessionRepo_Create_Call) RunAndReturn(run func(context.Context, uint32, time.Time, func() string) (string, session.Session, error)) *SessionRepo_Create_Call { +func (_c *SessionRepo_Create_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID, regTime time.Time, keyGen func() string) (string, session.Session, error)) *SessionRepo_Create_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, key -func (_m *SessionRepo) Get(ctx context.Context, key string) (session.Session, error) { - ret := _m.Called(ctx, key) +// Get provides a mock function for the type SessionRepo +func (_mock *SessionRepo) Get(ctx context.Context, key string) (session.Session, error) { + ret := _mock.Called(ctx, key) if len(ret) == 0 { panic("no return value specified for Get") @@ -100,21 +113,19 @@ func (_m *SessionRepo) Get(ctx context.Context, key string) (session.Session, er var r0 session.Session var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { - return rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) (session.Session, error)); ok { + return returnFunc(ctx, key) } - if rf, ok := ret.Get(0).(func(context.Context, string) session.Session); ok { - r0 = rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) session.Session); ok { + r0 = returnFunc(ctx, key) } else { r0 = ret.Get(0).(session.Session) } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, key) + if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = returnFunc(ctx, key) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -124,8 +135,8 @@ type SessionRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - key string +// - ctx +// - key func (_e *SessionRepo_Expecter) Get(ctx interface{}, key interface{}) *SessionRepo_Get_Call { return &SessionRepo_Get_Call{Call: _e.mock.On("Get", ctx, key)} } @@ -137,31 +148,30 @@ func (_c *SessionRepo_Get_Call) Run(run func(ctx context.Context, key string)) * return _c } -func (_c *SessionRepo_Get_Call) Return(_a0 session.Session, _a1 error) *SessionRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *SessionRepo_Get_Call) Return(session1 session.Session, err error) *SessionRepo_Get_Call { + _c.Call.Return(session1, err) return _c } -func (_c *SessionRepo_Get_Call) RunAndReturn(run func(context.Context, string) (session.Session, error)) *SessionRepo_Get_Call { +func (_c *SessionRepo_Get_Call) RunAndReturn(run func(ctx context.Context, key string) (session.Session, error)) *SessionRepo_Get_Call { _c.Call.Return(run) return _c } -// Revoke provides a mock function with given fields: ctx, key -func (_m *SessionRepo) Revoke(ctx context.Context, key string) error { - ret := _m.Called(ctx, key) +// Revoke provides a mock function for the type SessionRepo +func (_mock *SessionRepo) Revoke(ctx context.Context, key string) error { + ret := _mock.Called(ctx, key) if len(ret) == 0 { panic("no return value specified for Revoke") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, string) error); ok { - r0 = rf(ctx, key) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) error); ok { + r0 = returnFunc(ctx, key) } else { r0 = ret.Error(0) } - return r0 } @@ -171,8 +181,8 @@ type SessionRepo_Revoke_Call struct { } // Revoke is a helper method to define mock.On call -// - ctx context.Context -// - key string +// - ctx +// - key func (_e *SessionRepo_Expecter) Revoke(ctx interface{}, key interface{}) *SessionRepo_Revoke_Call { return &SessionRepo_Revoke_Call{Call: _e.mock.On("Revoke", ctx, key)} } @@ -184,19 +194,19 @@ func (_c *SessionRepo_Revoke_Call) Run(run func(ctx context.Context, key string) return _c } -func (_c *SessionRepo_Revoke_Call) Return(_a0 error) *SessionRepo_Revoke_Call { - _c.Call.Return(_a0) +func (_c *SessionRepo_Revoke_Call) Return(err error) *SessionRepo_Revoke_Call { + _c.Call.Return(err) return _c } -func (_c *SessionRepo_Revoke_Call) RunAndReturn(run func(context.Context, string) error) *SessionRepo_Revoke_Call { +func (_c *SessionRepo_Revoke_Call) RunAndReturn(run func(ctx context.Context, key string) error) *SessionRepo_Revoke_Call { _c.Call.Return(run) return _c } -// RevokeUser provides a mock function with given fields: ctx, userID -func (_m *SessionRepo) RevokeUser(ctx context.Context, userID uint32) ([]string, error) { - ret := _m.Called(ctx, userID) +// RevokeUser provides a mock function for the type SessionRepo +func (_mock *SessionRepo) RevokeUser(ctx context.Context, userID model.UserID) ([]string, error) { + ret := _mock.Called(ctx, userID) if len(ret) == 0 { panic("no return value specified for RevokeUser") @@ -204,23 +214,21 @@ func (_m *SessionRepo) RevokeUser(ctx context.Context, userID uint32) ([]string, var r0 []string var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]string, error)); ok { - return rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) ([]string, error)); ok { + return returnFunc(ctx, userID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []string); ok { - r0 = rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) []string); ok { + r0 = returnFunc(ctx, userID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]string) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID) error); ok { + r1 = returnFunc(ctx, userID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -230,15 +238,15 @@ type SessionRepo_RevokeUser_Call struct { } // RevokeUser is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 +// - ctx +// - userID func (_e *SessionRepo_Expecter) RevokeUser(ctx interface{}, userID interface{}) *SessionRepo_RevokeUser_Call { return &SessionRepo_RevokeUser_Call{Call: _e.mock.On("RevokeUser", ctx, userID)} } -func (_c *SessionRepo_RevokeUser_Call) Run(run func(ctx context.Context, userID uint32)) *SessionRepo_RevokeUser_Call { +func (_c *SessionRepo_RevokeUser_Call) Run(run func(ctx context.Context, userID model.UserID)) *SessionRepo_RevokeUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID)) }) return _c } @@ -248,21 +256,7 @@ func (_c *SessionRepo_RevokeUser_Call) Return(keys []string, err error) *Session return _c } -func (_c *SessionRepo_RevokeUser_Call) RunAndReturn(run func(context.Context, uint32) ([]string, error)) *SessionRepo_RevokeUser_Call { +func (_c *SessionRepo_RevokeUser_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID) ([]string, error)) *SessionRepo_RevokeUser_Call { _c.Call.Return(run) return _c } - -// NewSessionRepo creates a new instance of SessionRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSessionRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *SessionRepo { - mock := &SessionRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index c46c30418..bf3ed39a0 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -1,17 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - domain "github.com/bangumi/server/domain" + "github.com/bangumi/server/domain" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/subject" mock "github.com/stretchr/testify/mock" +) - model "github.com/bangumi/server/internal/model" +// NewSubjectCachedRepo creates a new instance of SubjectCachedRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSubjectCachedRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *SubjectCachedRepo { + mock := &SubjectCachedRepo{} + mock.Mock.Test(t) - subject "github.com/bangumi/server/internal/subject" -) + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} // SubjectCachedRepo is an autogenerated mock type for the CachedRepo type type SubjectCachedRepo struct { @@ -26,9 +40,9 @@ func (_m *SubjectCachedRepo) EXPECT() *SubjectCachedRepo_Expecter { return &SubjectCachedRepo_Expecter{mock: &_m.Mock} } -// Browse provides a mock function with given fields: ctx, filter, limit, offset -func (_m *SubjectCachedRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { - ret := _m.Called(ctx, filter, limit, offset) +// Browse provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { + ret := _mock.Called(ctx, filter, limit, offset) if len(ret) == 0 { panic("no return value specified for Browse") @@ -36,23 +50,21 @@ func (_m *SubjectCachedRepo) Browse(ctx context.Context, filter subject.BrowseFi var r0 []model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { - return rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { + return returnFunc(ctx, filter, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { - r0 = rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { + r0 = returnFunc(ctx, filter, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { - r1 = rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { + r1 = returnFunc(ctx, filter, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -62,10 +74,10 @@ type SubjectCachedRepo_Browse_Call struct { } // Browse is a helper method to define mock.On call -// - ctx context.Context -// - filter subject.BrowseFilter -// - limit int -// - offset int +// - ctx +// - filter +// - limit +// - offset func (_e *SubjectCachedRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectCachedRepo_Browse_Call { return &SubjectCachedRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} } @@ -77,19 +89,19 @@ func (_c *SubjectCachedRepo_Browse_Call) Run(run func(ctx context.Context, filte return _c } -func (_c *SubjectCachedRepo_Browse_Call) Return(_a0 []model.Subject, _a1 error) *SubjectCachedRepo_Browse_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_Browse_Call) Return(subjects []model.Subject, err error) *SubjectCachedRepo_Browse_Call { + _c.Call.Return(subjects, err) return _c } -func (_c *SubjectCachedRepo_Browse_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)) *SubjectCachedRepo_Browse_Call { +func (_c *SubjectCachedRepo_Browse_Call) RunAndReturn(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error)) *SubjectCachedRepo_Browse_Call { _c.Call.Return(run) return _c } -// Count provides a mock function with given fields: ctx, filter -func (_m *SubjectCachedRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { - ret := _m.Called(ctx, filter) +// Count provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { + ret := _mock.Called(ctx, filter) if len(ret) == 0 { panic("no return value specified for Count") @@ -97,21 +109,19 @@ func (_m *SubjectCachedRepo) Count(ctx context.Context, filter subject.BrowseFil var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { - return rf(ctx, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { + return returnFunc(ctx, filter) } - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { - r0 = rf(ctx, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { + r0 = returnFunc(ctx, filter) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { - r1 = rf(ctx, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { + r1 = returnFunc(ctx, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -121,8 +131,8 @@ type SubjectCachedRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx context.Context -// - filter subject.BrowseFilter +// - ctx +// - filter func (_e *SubjectCachedRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectCachedRepo_Count_Call { return &SubjectCachedRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} } @@ -134,19 +144,19 @@ func (_c *SubjectCachedRepo_Count_Call) Run(run func(ctx context.Context, filter return _c } -func (_c *SubjectCachedRepo_Count_Call) Return(_a0 int64, _a1 error) *SubjectCachedRepo_Count_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_Count_Call) Return(n int64, err error) *SubjectCachedRepo_Count_Call { + _c.Call.Return(n, err) return _c } -func (_c *SubjectCachedRepo_Count_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter) (int64, error)) *SubjectCachedRepo_Count_Call { +func (_c *SubjectCachedRepo_Count_Call) RunAndReturn(run func(ctx context.Context, filter subject.BrowseFilter) (int64, error)) *SubjectCachedRepo_Count_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, id, filter -func (_m *SubjectCachedRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { - ret := _m.Called(ctx, id, filter) +// Get provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) Get(ctx context.Context, id model.SubjectID, filter subject.Filter) (model.Subject, error) { + ret := _mock.Called(ctx, id, filter) if len(ret) == 0 { panic("no return value specified for Get") @@ -154,21 +164,19 @@ func (_m *SubjectCachedRepo) Get(ctx context.Context, id uint32, filter subject. var r0 model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) (model.Subject, error)); ok { - return rf(ctx, id, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, subject.Filter) (model.Subject, error)); ok { + return returnFunc(ctx, id, filter) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) model.Subject); ok { - r0 = rf(ctx, id, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, subject.Filter) model.Subject); ok { + r0 = returnFunc(ctx, id, filter) } else { r0 = ret.Get(0).(model.Subject) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, subject.Filter) error); ok { - r1 = rf(ctx, id, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, subject.Filter) error); ok { + r1 = returnFunc(ctx, id, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -178,57 +186,55 @@ type SubjectCachedRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - filter subject.Filter +// - ctx +// - id +// - filter func (_e *SubjectCachedRepo_Expecter) Get(ctx interface{}, id interface{}, filter interface{}) *SubjectCachedRepo_Get_Call { return &SubjectCachedRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, filter)} } -func (_c *SubjectCachedRepo_Get_Call) Run(run func(ctx context.Context, id uint32, filter subject.Filter)) *SubjectCachedRepo_Get_Call { +func (_c *SubjectCachedRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, filter subject.Filter)) *SubjectCachedRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(subject.Filter)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(subject.Filter)) }) return _c } -func (_c *SubjectCachedRepo_Get_Call) Return(_a0 model.Subject, _a1 error) *SubjectCachedRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_Get_Call) Return(subject1 model.Subject, err error) *SubjectCachedRepo_Get_Call { + _c.Call.Return(subject1, err) return _c } -func (_c *SubjectCachedRepo_Get_Call) RunAndReturn(run func(context.Context, uint32, subject.Filter) (model.Subject, error)) *SubjectCachedRepo_Get_Call { +func (_c *SubjectCachedRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.SubjectID, filter subject.Filter) (model.Subject, error)) *SubjectCachedRepo_Get_Call { _c.Call.Return(run) return _c } -// GetActors provides a mock function with given fields: ctx, subjectID, characterIDs -func (_m *SubjectCachedRepo) GetActors(ctx context.Context, subjectID uint32, characterIDs []uint32) (map[uint32][]uint32, error) { - ret := _m.Called(ctx, subjectID, characterIDs) +// GetActors provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) GetActors(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID) (map[model.CharacterID][]model.PersonID, error) { + ret := _mock.Called(ctx, subjectID, characterIDs) if len(ret) == 0 { panic("no return value specified for GetActors") } - var r0 map[uint32][]uint32 + var r0 map[model.CharacterID][]model.PersonID var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)); ok { - return rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, []model.CharacterID) (map[model.CharacterID][]model.PersonID, error)); ok { + return returnFunc(ctx, subjectID, characterIDs) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) map[uint32][]uint32); ok { - r0 = rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, []model.CharacterID) map[model.CharacterID][]model.PersonID); ok { + r0 = returnFunc(ctx, subjectID, characterIDs) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32][]uint32) + r0 = ret.Get(0).(map[model.CharacterID][]model.PersonID) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, []uint32) error); ok { - r1 = rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, []model.CharacterID) error); ok { + r1 = returnFunc(ctx, subjectID, characterIDs) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -238,57 +244,55 @@ type SubjectCachedRepo_GetActors_Call struct { } // GetActors is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 -// - characterIDs []uint32 +// - ctx +// - subjectID +// - characterIDs func (_e *SubjectCachedRepo_Expecter) GetActors(ctx interface{}, subjectID interface{}, characterIDs interface{}) *SubjectCachedRepo_GetActors_Call { return &SubjectCachedRepo_GetActors_Call{Call: _e.mock.On("GetActors", ctx, subjectID, characterIDs)} } -func (_c *SubjectCachedRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID uint32, characterIDs []uint32)) *SubjectCachedRepo_GetActors_Call { +func (_c *SubjectCachedRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID)) *SubjectCachedRepo_GetActors_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].([]uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].([]model.CharacterID)) }) return _c } -func (_c *SubjectCachedRepo_GetActors_Call) Return(_a0 map[uint32][]uint32, _a1 error) *SubjectCachedRepo_GetActors_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_GetActors_Call) Return(vToVs map[model.CharacterID][]model.PersonID, err error) *SubjectCachedRepo_GetActors_Call { + _c.Call.Return(vToVs, err) return _c } -func (_c *SubjectCachedRepo_GetActors_Call) RunAndReturn(run func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)) *SubjectCachedRepo_GetActors_Call { +func (_c *SubjectCachedRepo_GetActors_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID) (map[model.CharacterID][]model.PersonID, error)) *SubjectCachedRepo_GetActors_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids, filter -func (_m *SubjectCachedRepo) GetByIDs(ctx context.Context, ids []uint32, filter subject.Filter) (map[uint32]model.Subject, error) { - ret := _m.Called(ctx, ids, filter) +// GetByIDs provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) GetByIDs(ctx context.Context, ids []model.SubjectID, filter subject.Filter) (map[model.SubjectID]model.Subject, error) { + ret := _mock.Called(ctx, ids, filter) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32]model.Subject + var r0 map[model.SubjectID]model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)); ok { - return rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID, subject.Filter) (map[model.SubjectID]model.Subject, error)); ok { + return returnFunc(ctx, ids, filter) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) map[uint32]model.Subject); ok { - r0 = rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID, subject.Filter) map[model.SubjectID]model.Subject); ok { + r0 = returnFunc(ctx, ids, filter) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]model.Subject) + r0 = ret.Get(0).(map[model.SubjectID]model.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32, subject.Filter) error); ok { - r1 = rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.SubjectID, subject.Filter) error); ok { + r1 = returnFunc(ctx, ids, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -298,33 +302,33 @@ type SubjectCachedRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 -// - filter subject.Filter +// - ctx +// - ids +// - filter func (_e *SubjectCachedRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}, filter interface{}) *SubjectCachedRepo_GetByIDs_Call { return &SubjectCachedRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids, filter)} } -func (_c *SubjectCachedRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32, filter subject.Filter)) *SubjectCachedRepo_GetByIDs_Call { +func (_c *SubjectCachedRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter)) *SubjectCachedRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32), args[2].(subject.Filter)) + run(args[0].(context.Context), args[1].([]model.SubjectID), args[2].(subject.Filter)) }) return _c } -func (_c *SubjectCachedRepo_GetByIDs_Call) Return(_a0 map[uint32]model.Subject, _a1 error) *SubjectCachedRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_GetByIDs_Call) Return(vToSubject map[model.SubjectID]model.Subject, err error) *SubjectCachedRepo_GetByIDs_Call { + _c.Call.Return(vToSubject, err) return _c } -func (_c *SubjectCachedRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)) *SubjectCachedRepo_GetByIDs_Call { +func (_c *SubjectCachedRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter) (map[model.SubjectID]model.Subject, error)) *SubjectCachedRepo_GetByIDs_Call { _c.Call.Return(run) return _c } -// GetCharacterRelated provides a mock function with given fields: ctx, characterID -func (_m *SubjectCachedRepo) GetCharacterRelated(ctx context.Context, characterID uint32) ([]domain.SubjectCharacterRelation, error) { - ret := _m.Called(ctx, characterID) +// GetCharacterRelated provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) GetCharacterRelated(ctx context.Context, characterID model.CharacterID) ([]domain.SubjectCharacterRelation, error) { + ret := _mock.Called(ctx, characterID) if len(ret) == 0 { panic("no return value specified for GetCharacterRelated") @@ -332,23 +336,21 @@ func (_m *SubjectCachedRepo) GetCharacterRelated(ctx context.Context, characterI var r0 []domain.SubjectCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { - return rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) ([]domain.SubjectCharacterRelation, error)); ok { + return returnFunc(ctx, characterID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectCharacterRelation); ok { - r0 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) []domain.SubjectCharacterRelation); ok { + r0 = returnFunc(ctx, characterID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, characterID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -358,32 +360,32 @@ type SubjectCachedRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - characterID uint32 +// - ctx +// - characterID func (_e *SubjectCachedRepo_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *SubjectCachedRepo_GetCharacterRelated_Call { return &SubjectCachedRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } -func (_c *SubjectCachedRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID uint32)) *SubjectCachedRepo_GetCharacterRelated_Call { +func (_c *SubjectCachedRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *SubjectCachedRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *SubjectCachedRepo_GetCharacterRelated_Call) Return(_a0 []domain.SubjectCharacterRelation, _a1 error) *SubjectCachedRepo_GetCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_GetCharacterRelated_Call) Return(subjectCharacterRelations []domain.SubjectCharacterRelation, err error) *SubjectCachedRepo_GetCharacterRelated_Call { + _c.Call.Return(subjectCharacterRelations, err) return _c } -func (_c *SubjectCachedRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)) *SubjectCachedRepo_GetCharacterRelated_Call { +func (_c *SubjectCachedRepo_GetCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, characterID model.CharacterID) ([]domain.SubjectCharacterRelation, error)) *SubjectCachedRepo_GetCharacterRelated_Call { _c.Call.Return(run) return _c } -// GetPersonRelated provides a mock function with given fields: ctx, personID -func (_m *SubjectCachedRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.SubjectPersonRelation, error) { - ret := _m.Called(ctx, personID) +// GetPersonRelated provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) GetPersonRelated(ctx context.Context, personID model.PersonID) ([]domain.SubjectPersonRelation, error) { + ret := _mock.Called(ctx, personID) if len(ret) == 0 { panic("no return value specified for GetPersonRelated") @@ -391,23 +393,21 @@ func (_m *SubjectCachedRepo) GetPersonRelated(ctx context.Context, personID uint var r0 []domain.SubjectPersonRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { - return rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) ([]domain.SubjectPersonRelation, error)); ok { + return returnFunc(ctx, personID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectPersonRelation); ok { - r0 = rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) []domain.SubjectPersonRelation); ok { + r0 = returnFunc(ctx, personID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectPersonRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, personID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, personID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -417,32 +417,32 @@ type SubjectCachedRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - personID uint32 +// - ctx +// - personID func (_e *SubjectCachedRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *SubjectCachedRepo_GetPersonRelated_Call { return &SubjectCachedRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } -func (_c *SubjectCachedRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID uint32)) *SubjectCachedRepo_GetPersonRelated_Call { +func (_c *SubjectCachedRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *SubjectCachedRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *SubjectCachedRepo_GetPersonRelated_Call) Return(_a0 []domain.SubjectPersonRelation, _a1 error) *SubjectCachedRepo_GetPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_GetPersonRelated_Call) Return(subjectPersonRelations []domain.SubjectPersonRelation, err error) *SubjectCachedRepo_GetPersonRelated_Call { + _c.Call.Return(subjectPersonRelations, err) return _c } -func (_c *SubjectCachedRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)) *SubjectCachedRepo_GetPersonRelated_Call { +func (_c *SubjectCachedRepo_GetPersonRelated_Call) RunAndReturn(run func(ctx context.Context, personID model.PersonID) ([]domain.SubjectPersonRelation, error)) *SubjectCachedRepo_GetPersonRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, subjectID -func (_m *SubjectCachedRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectInternalRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetSubjectRelated provides a mock function for the type SubjectCachedRepo +func (_mock *SubjectCachedRepo) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectInternalRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") @@ -450,23 +450,21 @@ func (_m *SubjectCachedRepo) GetSubjectRelated(ctx context.Context, subjectID ui var r0 []domain.SubjectInternalRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) ([]domain.SubjectInternalRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectInternalRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) []domain.SubjectInternalRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectInternalRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -476,39 +474,25 @@ type SubjectCachedRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *SubjectCachedRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *SubjectCachedRepo_GetSubjectRelated_Call { return &SubjectCachedRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } -func (_c *SubjectCachedRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *SubjectCachedRepo_GetSubjectRelated_Call { +func (_c *SubjectCachedRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *SubjectCachedRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *SubjectCachedRepo_GetSubjectRelated_Call) Return(_a0 []domain.SubjectInternalRelation, _a1 error) *SubjectCachedRepo_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectCachedRepo_GetSubjectRelated_Call) Return(subjectInternalRelations []domain.SubjectInternalRelation, err error) *SubjectCachedRepo_GetSubjectRelated_Call { + _c.Call.Return(subjectInternalRelations, err) return _c } -func (_c *SubjectCachedRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)) *SubjectCachedRepo_GetSubjectRelated_Call { +func (_c *SubjectCachedRepo_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectInternalRelation, error)) *SubjectCachedRepo_GetSubjectRelated_Call { _c.Call.Return(run) return _c } - -// NewSubjectCachedRepo creates a new instance of SubjectCachedRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSubjectCachedRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *SubjectCachedRepo { - mock := &SubjectCachedRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index ce253471c..a18a7517c 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -1,17 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - domain "github.com/bangumi/server/domain" + "github.com/bangumi/server/domain" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/subject" mock "github.com/stretchr/testify/mock" +) - model "github.com/bangumi/server/internal/model" +// NewSubjectRepo creates a new instance of SubjectRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSubjectRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *SubjectRepo { + mock := &SubjectRepo{} + mock.Mock.Test(t) - subject "github.com/bangumi/server/internal/subject" -) + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} // SubjectRepo is an autogenerated mock type for the Repo type type SubjectRepo struct { @@ -26,9 +40,9 @@ func (_m *SubjectRepo) EXPECT() *SubjectRepo_Expecter { return &SubjectRepo_Expecter{mock: &_m.Mock} } -// Browse provides a mock function with given fields: ctx, filter, limit, offset -func (_m *SubjectRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { - ret := _m.Called(ctx, filter, limit, offset) +// Browse provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) Browse(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error) { + ret := _mock.Called(ctx, filter, limit, offset) if len(ret) == 0 { panic("no return value specified for Browse") @@ -36,23 +50,21 @@ func (_m *SubjectRepo) Browse(ctx context.Context, filter subject.BrowseFilter, var r0 []model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { - return rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)); ok { + return returnFunc(ctx, filter, limit, offset) } - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { - r0 = rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter, int, int) []model.Subject); ok { + r0 = returnFunc(ctx, filter, limit, offset) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]model.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { - r1 = rf(ctx, filter, limit, offset) + if returnFunc, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter, int, int) error); ok { + r1 = returnFunc(ctx, filter, limit, offset) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -62,10 +74,10 @@ type SubjectRepo_Browse_Call struct { } // Browse is a helper method to define mock.On call -// - ctx context.Context -// - filter subject.BrowseFilter -// - limit int -// - offset int +// - ctx +// - filter +// - limit +// - offset func (_e *SubjectRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectRepo_Browse_Call { return &SubjectRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} } @@ -77,19 +89,19 @@ func (_c *SubjectRepo_Browse_Call) Run(run func(ctx context.Context, filter subj return _c } -func (_c *SubjectRepo_Browse_Call) Return(_a0 []model.Subject, _a1 error) *SubjectRepo_Browse_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_Browse_Call) Return(subjects []model.Subject, err error) *SubjectRepo_Browse_Call { + _c.Call.Return(subjects, err) return _c } -func (_c *SubjectRepo_Browse_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter, int, int) ([]model.Subject, error)) *SubjectRepo_Browse_Call { +func (_c *SubjectRepo_Browse_Call) RunAndReturn(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int) ([]model.Subject, error)) *SubjectRepo_Browse_Call { _c.Call.Return(run) return _c } -// Count provides a mock function with given fields: ctx, filter -func (_m *SubjectRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { - ret := _m.Called(ctx, filter) +// Count provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) Count(ctx context.Context, filter subject.BrowseFilter) (int64, error) { + ret := _mock.Called(ctx, filter) if len(ret) == 0 { panic("no return value specified for Count") @@ -97,21 +109,19 @@ func (_m *SubjectRepo) Count(ctx context.Context, filter subject.BrowseFilter) ( var r0 int64 var r1 error - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { - return rf(ctx, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) (int64, error)); ok { + return returnFunc(ctx, filter) } - if rf, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { - r0 = rf(ctx, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, subject.BrowseFilter) int64); ok { + r0 = returnFunc(ctx, filter) } else { r0 = ret.Get(0).(int64) } - - if rf, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { - r1 = rf(ctx, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, subject.BrowseFilter) error); ok { + r1 = returnFunc(ctx, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -121,8 +131,8 @@ type SubjectRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx context.Context -// - filter subject.BrowseFilter +// - ctx +// - filter func (_e *SubjectRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectRepo_Count_Call { return &SubjectRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} } @@ -134,19 +144,19 @@ func (_c *SubjectRepo_Count_Call) Run(run func(ctx context.Context, filter subje return _c } -func (_c *SubjectRepo_Count_Call) Return(_a0 int64, _a1 error) *SubjectRepo_Count_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_Count_Call) Return(n int64, err error) *SubjectRepo_Count_Call { + _c.Call.Return(n, err) return _c } -func (_c *SubjectRepo_Count_Call) RunAndReturn(run func(context.Context, subject.BrowseFilter) (int64, error)) *SubjectRepo_Count_Call { +func (_c *SubjectRepo_Count_Call) RunAndReturn(run func(ctx context.Context, filter subject.BrowseFilter) (int64, error)) *SubjectRepo_Count_Call { _c.Call.Return(run) return _c } -// Get provides a mock function with given fields: ctx, id, filter -func (_m *SubjectRepo) Get(ctx context.Context, id uint32, filter subject.Filter) (model.Subject, error) { - ret := _m.Called(ctx, id, filter) +// Get provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) Get(ctx context.Context, id model.SubjectID, filter subject.Filter) (model.Subject, error) { + ret := _mock.Called(ctx, id, filter) if len(ret) == 0 { panic("no return value specified for Get") @@ -154,21 +164,19 @@ func (_m *SubjectRepo) Get(ctx context.Context, id uint32, filter subject.Filter var r0 model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) (model.Subject, error)); ok { - return rf(ctx, id, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, subject.Filter) (model.Subject, error)); ok { + return returnFunc(ctx, id, filter) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, subject.Filter) model.Subject); ok { - r0 = rf(ctx, id, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, subject.Filter) model.Subject); ok { + r0 = returnFunc(ctx, id, filter) } else { r0 = ret.Get(0).(model.Subject) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, subject.Filter) error); ok { - r1 = rf(ctx, id, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, subject.Filter) error); ok { + r1 = returnFunc(ctx, id, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -178,57 +186,55 @@ type SubjectRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - filter subject.Filter +// - ctx +// - id +// - filter func (_e *SubjectRepo_Expecter) Get(ctx interface{}, id interface{}, filter interface{}) *SubjectRepo_Get_Call { return &SubjectRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, filter)} } -func (_c *SubjectRepo_Get_Call) Run(run func(ctx context.Context, id uint32, filter subject.Filter)) *SubjectRepo_Get_Call { +func (_c *SubjectRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, filter subject.Filter)) *SubjectRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(subject.Filter)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(subject.Filter)) }) return _c } -func (_c *SubjectRepo_Get_Call) Return(_a0 model.Subject, _a1 error) *SubjectRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_Get_Call) Return(subject1 model.Subject, err error) *SubjectRepo_Get_Call { + _c.Call.Return(subject1, err) return _c } -func (_c *SubjectRepo_Get_Call) RunAndReturn(run func(context.Context, uint32, subject.Filter) (model.Subject, error)) *SubjectRepo_Get_Call { +func (_c *SubjectRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.SubjectID, filter subject.Filter) (model.Subject, error)) *SubjectRepo_Get_Call { _c.Call.Return(run) return _c } -// GetActors provides a mock function with given fields: ctx, subjectID, characterIDs -func (_m *SubjectRepo) GetActors(ctx context.Context, subjectID uint32, characterIDs []uint32) (map[uint32][]uint32, error) { - ret := _m.Called(ctx, subjectID, characterIDs) +// GetActors provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) GetActors(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID) (map[model.CharacterID][]model.PersonID, error) { + ret := _mock.Called(ctx, subjectID, characterIDs) if len(ret) == 0 { panic("no return value specified for GetActors") } - var r0 map[uint32][]uint32 + var r0 map[model.CharacterID][]model.PersonID var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)); ok { - return rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, []model.CharacterID) (map[model.CharacterID][]model.PersonID, error)); ok { + return returnFunc(ctx, subjectID, characterIDs) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, []uint32) map[uint32][]uint32); ok { - r0 = rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, []model.CharacterID) map[model.CharacterID][]model.PersonID); ok { + r0 = returnFunc(ctx, subjectID, characterIDs) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32][]uint32) + r0 = ret.Get(0).(map[model.CharacterID][]model.PersonID) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, []uint32) error); ok { - r1 = rf(ctx, subjectID, characterIDs) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, []model.CharacterID) error); ok { + r1 = returnFunc(ctx, subjectID, characterIDs) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -238,57 +244,55 @@ type SubjectRepo_GetActors_Call struct { } // GetActors is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 -// - characterIDs []uint32 +// - ctx +// - subjectID +// - characterIDs func (_e *SubjectRepo_Expecter) GetActors(ctx interface{}, subjectID interface{}, characterIDs interface{}) *SubjectRepo_GetActors_Call { return &SubjectRepo_GetActors_Call{Call: _e.mock.On("GetActors", ctx, subjectID, characterIDs)} } -func (_c *SubjectRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID uint32, characterIDs []uint32)) *SubjectRepo_GetActors_Call { +func (_c *SubjectRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID)) *SubjectRepo_GetActors_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].([]uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].([]model.CharacterID)) }) return _c } -func (_c *SubjectRepo_GetActors_Call) Return(_a0 map[uint32][]uint32, _a1 error) *SubjectRepo_GetActors_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_GetActors_Call) Return(vToVs map[model.CharacterID][]model.PersonID, err error) *SubjectRepo_GetActors_Call { + _c.Call.Return(vToVs, err) return _c } -func (_c *SubjectRepo_GetActors_Call) RunAndReturn(run func(context.Context, uint32, []uint32) (map[uint32][]uint32, error)) *SubjectRepo_GetActors_Call { +func (_c *SubjectRepo_GetActors_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID) (map[model.CharacterID][]model.PersonID, error)) *SubjectRepo_GetActors_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids, filter -func (_m *SubjectRepo) GetByIDs(ctx context.Context, ids []uint32, filter subject.Filter) (map[uint32]model.Subject, error) { - ret := _m.Called(ctx, ids, filter) +// GetByIDs provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) GetByIDs(ctx context.Context, ids []model.SubjectID, filter subject.Filter) (map[model.SubjectID]model.Subject, error) { + ret := _mock.Called(ctx, ids, filter) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32]model.Subject + var r0 map[model.SubjectID]model.Subject var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)); ok { - return rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID, subject.Filter) (map[model.SubjectID]model.Subject, error)); ok { + return returnFunc(ctx, ids, filter) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32, subject.Filter) map[uint32]model.Subject); ok { - r0 = rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID, subject.Filter) map[model.SubjectID]model.Subject); ok { + r0 = returnFunc(ctx, ids, filter) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]model.Subject) + r0 = ret.Get(0).(map[model.SubjectID]model.Subject) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32, subject.Filter) error); ok { - r1 = rf(ctx, ids, filter) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.SubjectID, subject.Filter) error); ok { + r1 = returnFunc(ctx, ids, filter) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -298,33 +302,33 @@ type SubjectRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 -// - filter subject.Filter +// - ctx +// - ids +// - filter func (_e *SubjectRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}, filter interface{}) *SubjectRepo_GetByIDs_Call { return &SubjectRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids, filter)} } -func (_c *SubjectRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32, filter subject.Filter)) *SubjectRepo_GetByIDs_Call { +func (_c *SubjectRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter)) *SubjectRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32), args[2].(subject.Filter)) + run(args[0].(context.Context), args[1].([]model.SubjectID), args[2].(subject.Filter)) }) return _c } -func (_c *SubjectRepo_GetByIDs_Call) Return(_a0 map[uint32]model.Subject, _a1 error) *SubjectRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_GetByIDs_Call) Return(vToSubject map[model.SubjectID]model.Subject, err error) *SubjectRepo_GetByIDs_Call { + _c.Call.Return(vToSubject, err) return _c } -func (_c *SubjectRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32, subject.Filter) (map[uint32]model.Subject, error)) *SubjectRepo_GetByIDs_Call { +func (_c *SubjectRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter) (map[model.SubjectID]model.Subject, error)) *SubjectRepo_GetByIDs_Call { _c.Call.Return(run) return _c } -// GetCharacterRelated provides a mock function with given fields: ctx, characterID -func (_m *SubjectRepo) GetCharacterRelated(ctx context.Context, characterID uint32) ([]domain.SubjectCharacterRelation, error) { - ret := _m.Called(ctx, characterID) +// GetCharacterRelated provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) GetCharacterRelated(ctx context.Context, characterID model.CharacterID) ([]domain.SubjectCharacterRelation, error) { + ret := _mock.Called(ctx, characterID) if len(ret) == 0 { panic("no return value specified for GetCharacterRelated") @@ -332,23 +336,21 @@ func (_m *SubjectRepo) GetCharacterRelated(ctx context.Context, characterID uint var r0 []domain.SubjectCharacterRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)); ok { - return rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) ([]domain.SubjectCharacterRelation, error)); ok { + return returnFunc(ctx, characterID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectCharacterRelation); ok { - r0 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.CharacterID) []domain.SubjectCharacterRelation); ok { + r0 = returnFunc(ctx, characterID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectCharacterRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, characterID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.CharacterID) error); ok { + r1 = returnFunc(ctx, characterID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -358,32 +360,32 @@ type SubjectRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx context.Context -// - characterID uint32 +// - ctx +// - characterID func (_e *SubjectRepo_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *SubjectRepo_GetCharacterRelated_Call { return &SubjectRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } -func (_c *SubjectRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID uint32)) *SubjectRepo_GetCharacterRelated_Call { +func (_c *SubjectRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *SubjectRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.CharacterID)) }) return _c } -func (_c *SubjectRepo_GetCharacterRelated_Call) Return(_a0 []domain.SubjectCharacterRelation, _a1 error) *SubjectRepo_GetCharacterRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_GetCharacterRelated_Call) Return(subjectCharacterRelations []domain.SubjectCharacterRelation, err error) *SubjectRepo_GetCharacterRelated_Call { + _c.Call.Return(subjectCharacterRelations, err) return _c } -func (_c *SubjectRepo_GetCharacterRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectCharacterRelation, error)) *SubjectRepo_GetCharacterRelated_Call { +func (_c *SubjectRepo_GetCharacterRelated_Call) RunAndReturn(run func(ctx context.Context, characterID model.CharacterID) ([]domain.SubjectCharacterRelation, error)) *SubjectRepo_GetCharacterRelated_Call { _c.Call.Return(run) return _c } -// GetPersonRelated provides a mock function with given fields: ctx, personID -func (_m *SubjectRepo) GetPersonRelated(ctx context.Context, personID uint32) ([]domain.SubjectPersonRelation, error) { - ret := _m.Called(ctx, personID) +// GetPersonRelated provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) GetPersonRelated(ctx context.Context, personID model.PersonID) ([]domain.SubjectPersonRelation, error) { + ret := _mock.Called(ctx, personID) if len(ret) == 0 { panic("no return value specified for GetPersonRelated") @@ -391,23 +393,21 @@ func (_m *SubjectRepo) GetPersonRelated(ctx context.Context, personID uint32) ([ var r0 []domain.SubjectPersonRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)); ok { - return rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) ([]domain.SubjectPersonRelation, error)); ok { + return returnFunc(ctx, personID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectPersonRelation); ok { - r0 = rf(ctx, personID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.PersonID) []domain.SubjectPersonRelation); ok { + r0 = returnFunc(ctx, personID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectPersonRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, personID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.PersonID) error); ok { + r1 = returnFunc(ctx, personID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -417,32 +417,32 @@ type SubjectRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx context.Context -// - personID uint32 +// - ctx +// - personID func (_e *SubjectRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *SubjectRepo_GetPersonRelated_Call { return &SubjectRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } -func (_c *SubjectRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID uint32)) *SubjectRepo_GetPersonRelated_Call { +func (_c *SubjectRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *SubjectRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.PersonID)) }) return _c } -func (_c *SubjectRepo_GetPersonRelated_Call) Return(_a0 []domain.SubjectPersonRelation, _a1 error) *SubjectRepo_GetPersonRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_GetPersonRelated_Call) Return(subjectPersonRelations []domain.SubjectPersonRelation, err error) *SubjectRepo_GetPersonRelated_Call { + _c.Call.Return(subjectPersonRelations, err) return _c } -func (_c *SubjectRepo_GetPersonRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectPersonRelation, error)) *SubjectRepo_GetPersonRelated_Call { +func (_c *SubjectRepo_GetPersonRelated_Call) RunAndReturn(run func(ctx context.Context, personID model.PersonID) ([]domain.SubjectPersonRelation, error)) *SubjectRepo_GetPersonRelated_Call { _c.Call.Return(run) return _c } -// GetSubjectRelated provides a mock function with given fields: ctx, subjectID -func (_m *SubjectRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) ([]domain.SubjectInternalRelation, error) { - ret := _m.Called(ctx, subjectID) +// GetSubjectRelated provides a mock function for the type SubjectRepo +func (_mock *SubjectRepo) GetSubjectRelated(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectInternalRelation, error) { + ret := _mock.Called(ctx, subjectID) if len(ret) == 0 { panic("no return value specified for GetSubjectRelated") @@ -450,23 +450,21 @@ func (_m *SubjectRepo) GetSubjectRelated(ctx context.Context, subjectID uint32) var r0 []domain.SubjectInternalRelation var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)); ok { - return rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) ([]domain.SubjectInternalRelation, error)); ok { + return returnFunc(ctx, subjectID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) []domain.SubjectInternalRelation); ok { - r0 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID) []domain.SubjectInternalRelation); ok { + r0 = returnFunc(ctx, subjectID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]domain.SubjectInternalRelation) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, subjectID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID) error); ok { + r1 = returnFunc(ctx, subjectID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -476,39 +474,25 @@ type SubjectRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx context.Context -// - subjectID uint32 +// - ctx +// - subjectID func (_e *SubjectRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *SubjectRepo_GetSubjectRelated_Call { return &SubjectRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } -func (_c *SubjectRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID uint32)) *SubjectRepo_GetSubjectRelated_Call { +func (_c *SubjectRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *SubjectRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.SubjectID)) }) return _c } -func (_c *SubjectRepo_GetSubjectRelated_Call) Return(_a0 []domain.SubjectInternalRelation, _a1 error) *SubjectRepo_GetSubjectRelated_Call { - _c.Call.Return(_a0, _a1) +func (_c *SubjectRepo_GetSubjectRelated_Call) Return(subjectInternalRelations []domain.SubjectInternalRelation, err error) *SubjectRepo_GetSubjectRelated_Call { + _c.Call.Return(subjectInternalRelations, err) return _c } -func (_c *SubjectRepo_GetSubjectRelated_Call) RunAndReturn(run func(context.Context, uint32) ([]domain.SubjectInternalRelation, error)) *SubjectRepo_GetSubjectRelated_Call { +func (_c *SubjectRepo_GetSubjectRelated_Call) RunAndReturn(run func(ctx context.Context, subjectID model.SubjectID) ([]domain.SubjectInternalRelation, error)) *SubjectRepo_GetSubjectRelated_Call { _c.Call.Return(run) return _c } - -// NewSubjectRepo creates a new instance of SubjectRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewSubjectRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *SubjectRepo { - mock := &SubjectRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/TagRepo.go b/internal/mocks/TagRepo.go index 94c53797d..1dac041f4 100644 --- a/internal/mocks/TagRepo.go +++ b/internal/mocks/TagRepo.go @@ -1,14 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - tag "github.com/bangumi/server/internal/tag" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/tag" mock "github.com/stretchr/testify/mock" ) +// NewTagRepo creates a new instance of TagRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTagRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *TagRepo { + mock := &TagRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // TagRepo is an autogenerated mock type for the Repo type type TagRepo struct { mock.Mock @@ -22,9 +39,9 @@ func (_m *TagRepo) EXPECT() *TagRepo_Expecter { return &TagRepo_Expecter{mock: &_m.Mock} } -// Get provides a mock function with given fields: ctx, id, typeID -func (_m *TagRepo) Get(ctx context.Context, id uint32, typeID uint8) ([]tag.Tag, error) { - ret := _m.Called(ctx, id, typeID) +// Get provides a mock function for the type TagRepo +func (_mock *TagRepo) Get(ctx context.Context, id model.SubjectID, typeID model.SubjectType) ([]tag.Tag, error) { + ret := _mock.Called(ctx, id, typeID) if len(ret) == 0 { panic("no return value specified for Get") @@ -32,23 +49,21 @@ func (_m *TagRepo) Get(ctx context.Context, id uint32, typeID uint8) ([]tag.Tag, var r0 []tag.Tag var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) ([]tag.Tag, error)); ok { - return rf(ctx, id, typeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, model.SubjectType) ([]tag.Tag, error)); ok { + return returnFunc(ctx, id, typeID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, uint8) []tag.Tag); ok { - r0 = rf(ctx, id, typeID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.SubjectID, model.SubjectType) []tag.Tag); ok { + r0 = returnFunc(ctx, id, typeID) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]tag.Tag) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, uint8) error); ok { - r1 = rf(ctx, id, typeID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.SubjectID, model.SubjectType) error); ok { + r1 = returnFunc(ctx, id, typeID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -58,57 +73,55 @@ type TagRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx context.Context -// - id uint32 -// - typeID uint8 +// - ctx +// - id +// - typeID func (_e *TagRepo_Expecter) Get(ctx interface{}, id interface{}, typeID interface{}) *TagRepo_Get_Call { return &TagRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, typeID)} } -func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id uint32, typeID uint8)) *TagRepo_Get_Call { +func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, typeID model.SubjectType)) *TagRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(uint8)) + run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(model.SubjectType)) }) return _c } -func (_c *TagRepo_Get_Call) Return(_a0 []tag.Tag, _a1 error) *TagRepo_Get_Call { - _c.Call.Return(_a0, _a1) +func (_c *TagRepo_Get_Call) Return(tags []tag.Tag, err error) *TagRepo_Get_Call { + _c.Call.Return(tags, err) return _c } -func (_c *TagRepo_Get_Call) RunAndReturn(run func(context.Context, uint32, uint8) ([]tag.Tag, error)) *TagRepo_Get_Call { +func (_c *TagRepo_Get_Call) RunAndReturn(run func(ctx context.Context, id model.SubjectID, typeID model.SubjectType) ([]tag.Tag, error)) *TagRepo_Get_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids -func (_m *TagRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32][]tag.Tag, error) { - ret := _m.Called(ctx, ids) +// GetByIDs provides a mock function for the type TagRepo +func (_mock *TagRepo) GetByIDs(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]tag.Tag, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32][]tag.Tag + var r0 map[model.SubjectID][]tag.Tag var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32][]tag.Tag, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID) (map[model.SubjectID][]tag.Tag, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32][]tag.Tag); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.SubjectID) map[model.SubjectID][]tag.Tag); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32][]tag.Tag) + r0 = ret.Get(0).(map[model.SubjectID][]tag.Tag) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.SubjectID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -118,39 +131,25 @@ type TagRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 +// - ctx +// - ids func (_e *TagRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *TagRepo_GetByIDs_Call { return &TagRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } -func (_c *TagRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *TagRepo_GetByIDs_Call { +func (_c *TagRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID)) *TagRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].([]model.SubjectID)) }) return _c } -func (_c *TagRepo_GetByIDs_Call) Return(_a0 map[uint32][]tag.Tag, _a1 error) *TagRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *TagRepo_GetByIDs_Call) Return(vToTags map[model.SubjectID][]tag.Tag, err error) *TagRepo_GetByIDs_Call { + _c.Call.Return(vToTags, err) return _c } -func (_c *TagRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32][]tag.Tag, error)) *TagRepo_GetByIDs_Call { +func (_c *TagRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.SubjectID) (map[model.SubjectID][]tag.Tag, error)) *TagRepo_GetByIDs_Call { _c.Call.Return(run) return _c } - -// NewTagRepo creates a new instance of TagRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewTagRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *TagRepo { - mock := &TagRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index 5faaffbc1..51dab090a 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -1,195 +1,191 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - auth "github.com/bangumi/server/internal/auth" - collection "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/auth" + "github.com/bangumi/server/internal/collections/domain/collection" + "github.com/bangumi/server/internal/episode" + "github.com/bangumi/server/internal/model" + mock "github.com/stretchr/testify/mock" +) - episode "github.com/bangumi/server/internal/episode" +// NewTimelineService creates a new instance of TimelineService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTimelineService(t interface { + mock.TestingT + Cleanup(func()) +}) *TimelineService { + mock := &TimelineService{} + mock.Mock.Test(t) - mock "github.com/stretchr/testify/mock" + t.Cleanup(func() { mock.AssertExpectations(t) }) - model "github.com/bangumi/server/internal/model" -) + return mock +} -// TimeLineService is an autogenerated mock type for the Service type -type TimeLineService struct { +// TimelineService is an autogenerated mock type for the Service type +type TimelineService struct { mock.Mock } -type TimeLineService_Expecter struct { +type TimelineService_Expecter struct { mock *mock.Mock } -func (_m *TimeLineService) EXPECT() *TimeLineService_Expecter { - return &TimeLineService_Expecter{mock: &_m.Mock} +func (_m *TimelineService) EXPECT() *TimelineService_Expecter { + return &TimelineService_Expecter{mock: &_m.Mock} } -// ChangeEpisodeStatus provides a mock function with given fields: ctx, u, sbj, _a3, t -func (_m *TimeLineService) ChangeEpisodeStatus(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode, t collection.EpisodeCollection) error { - ret := _m.Called(ctx, u, sbj, _a3, t) +// ChangeEpisodeStatus provides a mock function for the type TimelineService +func (_mock *TimelineService) ChangeEpisodeStatus(ctx context.Context, u auth.Auth, sbj model.Subject, episode1 episode.Episode, t collection.EpisodeCollection) error { + ret := _mock.Called(ctx, u, sbj, episode1, t) if len(ret) == 0 { panic("no return value specified for ChangeEpisodeStatus") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, auth.Auth, model.Subject, episode.Episode, collection.EpisodeCollection) error); ok { - r0 = rf(ctx, u, sbj, _a3, t) + if returnFunc, ok := ret.Get(0).(func(context.Context, auth.Auth, model.Subject, episode.Episode, collection.EpisodeCollection) error); ok { + r0 = returnFunc(ctx, u, sbj, episode1, t) } else { r0 = ret.Error(0) } - return r0 } -// TimeLineService_ChangeEpisodeStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeEpisodeStatus' -type TimeLineService_ChangeEpisodeStatus_Call struct { +// TimelineService_ChangeEpisodeStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeEpisodeStatus' +type TimelineService_ChangeEpisodeStatus_Call struct { *mock.Call } // ChangeEpisodeStatus is a helper method to define mock.On call -// - ctx context.Context -// - u auth.Auth -// - sbj model.Subject -// - _a3 episode.Episode -// - t collection.EpisodeCollection -func (_e *TimeLineService_Expecter) ChangeEpisodeStatus(ctx interface{}, u interface{}, sbj interface{}, _a3 interface{}, t interface{}) *TimeLineService_ChangeEpisodeStatus_Call { - return &TimeLineService_ChangeEpisodeStatus_Call{Call: _e.mock.On("ChangeEpisodeStatus", ctx, u, sbj, _a3, t)} +// - ctx +// - u +// - sbj +// - episode1 +// - t +func (_e *TimelineService_Expecter) ChangeEpisodeStatus(ctx interface{}, u interface{}, sbj interface{}, episode1 interface{}, t interface{}) *TimelineService_ChangeEpisodeStatus_Call { + return &TimelineService_ChangeEpisodeStatus_Call{Call: _e.mock.On("ChangeEpisodeStatus", ctx, u, sbj, episode1, t)} } -func (_c *TimeLineService_ChangeEpisodeStatus_Call) Run(run func(ctx context.Context, u auth.Auth, sbj model.Subject, _a3 episode.Episode, t collection.EpisodeCollection)) *TimeLineService_ChangeEpisodeStatus_Call { +func (_c *TimelineService_ChangeEpisodeStatus_Call) Run(run func(ctx context.Context, u auth.Auth, sbj model.Subject, episode1 episode.Episode, t collection.EpisodeCollection)) *TimelineService_ChangeEpisodeStatus_Call { _c.Call.Run(func(args mock.Arguments) { run(args[0].(context.Context), args[1].(auth.Auth), args[2].(model.Subject), args[3].(episode.Episode), args[4].(collection.EpisodeCollection)) }) return _c } -func (_c *TimeLineService_ChangeEpisodeStatus_Call) Return(_a0 error) *TimeLineService_ChangeEpisodeStatus_Call { - _c.Call.Return(_a0) +func (_c *TimelineService_ChangeEpisodeStatus_Call) Return(err error) *TimelineService_ChangeEpisodeStatus_Call { + _c.Call.Return(err) return _c } -func (_c *TimeLineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(context.Context, auth.Auth, model.Subject, episode.Episode, collection.EpisodeCollection) error) *TimeLineService_ChangeEpisodeStatus_Call { +func (_c *TimelineService_ChangeEpisodeStatus_Call) RunAndReturn(run func(ctx context.Context, u auth.Auth, sbj model.Subject, episode1 episode.Episode, t collection.EpisodeCollection) error) *TimelineService_ChangeEpisodeStatus_Call { _c.Call.Return(run) return _c } -// ChangeSubjectCollection provides a mock function with given fields: ctx, u, sbj, collect, collectID, comment, rate -func (_m *TimeLineService) ChangeSubjectCollection(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8) error { - ret := _m.Called(ctx, u, sbj, collect, collectID, comment, rate) +// ChangeSubjectCollection provides a mock function for the type TimelineService +func (_mock *TimelineService) ChangeSubjectCollection(ctx context.Context, u model.UserID, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8) error { + ret := _mock.Called(ctx, u, sbj, collect, collectID, comment, rate) if len(ret) == 0 { panic("no return value specified for ChangeSubjectCollection") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, collection.SubjectCollection, uint64, string, uint8) error); ok { - r0 = rf(ctx, u, sbj, collect, collectID, comment, rate) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.Subject, collection.SubjectCollection, uint64, string, uint8) error); ok { + r0 = returnFunc(ctx, u, sbj, collect, collectID, comment, rate) } else { r0 = ret.Error(0) } - return r0 } -// TimeLineService_ChangeSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeSubjectCollection' -type TimeLineService_ChangeSubjectCollection_Call struct { +// TimelineService_ChangeSubjectCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeSubjectCollection' +type TimelineService_ChangeSubjectCollection_Call struct { *mock.Call } // ChangeSubjectCollection is a helper method to define mock.On call -// - ctx context.Context -// - u uint32 -// - sbj model.Subject -// - collect collection.SubjectCollection -// - collectID uint64 -// - comment string -// - rate uint8 -func (_e *TimeLineService_Expecter) ChangeSubjectCollection(ctx interface{}, u interface{}, sbj interface{}, collect interface{}, collectID interface{}, comment interface{}, rate interface{}) *TimeLineService_ChangeSubjectCollection_Call { - return &TimeLineService_ChangeSubjectCollection_Call{Call: _e.mock.On("ChangeSubjectCollection", ctx, u, sbj, collect, collectID, comment, rate)} -} - -func (_c *TimeLineService_ChangeSubjectCollection_Call) Run(run func(ctx context.Context, u uint32, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8)) *TimeLineService_ChangeSubjectCollection_Call { +// - ctx +// - u +// - sbj +// - collect +// - collectID +// - comment +// - rate +func (_e *TimelineService_Expecter) ChangeSubjectCollection(ctx interface{}, u interface{}, sbj interface{}, collect interface{}, collectID interface{}, comment interface{}, rate interface{}) *TimelineService_ChangeSubjectCollection_Call { + return &TimelineService_ChangeSubjectCollection_Call{Call: _e.mock.On("ChangeSubjectCollection", ctx, u, sbj, collect, collectID, comment, rate)} +} + +func (_c *TimelineService_ChangeSubjectCollection_Call) Run(run func(ctx context.Context, u model.UserID, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8)) *TimelineService_ChangeSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(collection.SubjectCollection), args[4].(uint64), args[5].(string), args[6].(uint8)) + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(collection.SubjectCollection), args[4].(uint64), args[5].(string), args[6].(uint8)) }) return _c } -func (_c *TimeLineService_ChangeSubjectCollection_Call) Return(_a0 error) *TimeLineService_ChangeSubjectCollection_Call { - _c.Call.Return(_a0) +func (_c *TimelineService_ChangeSubjectCollection_Call) Return(err error) *TimelineService_ChangeSubjectCollection_Call { + _c.Call.Return(err) return _c } -func (_c *TimeLineService_ChangeSubjectCollection_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, collection.SubjectCollection, uint64, string, uint8) error) *TimeLineService_ChangeSubjectCollection_Call { +func (_c *TimelineService_ChangeSubjectCollection_Call) RunAndReturn(run func(ctx context.Context, u model.UserID, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8) error) *TimelineService_ChangeSubjectCollection_Call { _c.Call.Return(run) return _c } -// ChangeSubjectProgress provides a mock function with given fields: ctx, u, sbj, epsUpdate, volsUpdate -func (_m *TimeLineService) ChangeSubjectProgress(ctx context.Context, u uint32, sbj model.Subject, epsUpdate uint32, volsUpdate uint32) error { - ret := _m.Called(ctx, u, sbj, epsUpdate, volsUpdate) +// ChangeSubjectProgress provides a mock function for the type TimelineService +func (_mock *TimelineService) ChangeSubjectProgress(ctx context.Context, u model.UserID, sbj model.Subject, epsUpdate uint32, volsUpdate uint32) error { + ret := _mock.Called(ctx, u, sbj, epsUpdate, volsUpdate) if len(ret) == 0 { panic("no return value specified for ChangeSubjectProgress") } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, model.Subject, uint32, uint32) error); ok { - r0 = rf(ctx, u, sbj, epsUpdate, volsUpdate) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, model.Subject, uint32, uint32) error); ok { + r0 = returnFunc(ctx, u, sbj, epsUpdate, volsUpdate) } else { r0 = ret.Error(0) } - return r0 } -// TimeLineService_ChangeSubjectProgress_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeSubjectProgress' -type TimeLineService_ChangeSubjectProgress_Call struct { +// TimelineService_ChangeSubjectProgress_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChangeSubjectProgress' +type TimelineService_ChangeSubjectProgress_Call struct { *mock.Call } // ChangeSubjectProgress is a helper method to define mock.On call -// - ctx context.Context -// - u uint32 -// - sbj model.Subject -// - epsUpdate uint32 -// - volsUpdate uint32 -func (_e *TimeLineService_Expecter) ChangeSubjectProgress(ctx interface{}, u interface{}, sbj interface{}, epsUpdate interface{}, volsUpdate interface{}) *TimeLineService_ChangeSubjectProgress_Call { - return &TimeLineService_ChangeSubjectProgress_Call{Call: _e.mock.On("ChangeSubjectProgress", ctx, u, sbj, epsUpdate, volsUpdate)} +// - ctx +// - u +// - sbj +// - epsUpdate +// - volsUpdate +func (_e *TimelineService_Expecter) ChangeSubjectProgress(ctx interface{}, u interface{}, sbj interface{}, epsUpdate interface{}, volsUpdate interface{}) *TimelineService_ChangeSubjectProgress_Call { + return &TimelineService_ChangeSubjectProgress_Call{Call: _e.mock.On("ChangeSubjectProgress", ctx, u, sbj, epsUpdate, volsUpdate)} } -func (_c *TimeLineService_ChangeSubjectProgress_Call) Run(run func(ctx context.Context, u uint32, sbj model.Subject, epsUpdate uint32, volsUpdate uint32)) *TimeLineService_ChangeSubjectProgress_Call { +func (_c *TimelineService_ChangeSubjectProgress_Call) Run(run func(ctx context.Context, u model.UserID, sbj model.Subject, epsUpdate uint32, volsUpdate uint32)) *TimelineService_ChangeSubjectProgress_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(model.Subject), args[3].(uint32), args[4].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(uint32), args[4].(uint32)) }) return _c } -func (_c *TimeLineService_ChangeSubjectProgress_Call) Return(_a0 error) *TimeLineService_ChangeSubjectProgress_Call { - _c.Call.Return(_a0) +func (_c *TimelineService_ChangeSubjectProgress_Call) Return(err error) *TimelineService_ChangeSubjectProgress_Call { + _c.Call.Return(err) return _c } -func (_c *TimeLineService_ChangeSubjectProgress_Call) RunAndReturn(run func(context.Context, uint32, model.Subject, uint32, uint32) error) *TimeLineService_ChangeSubjectProgress_Call { +func (_c *TimelineService_ChangeSubjectProgress_Call) RunAndReturn(run func(ctx context.Context, u model.UserID, sbj model.Subject, epsUpdate uint32, volsUpdate uint32) error) *TimelineService_ChangeSubjectProgress_Call { _c.Call.Return(run) return _c } - -// NewTimeLineService creates a new instance of TimeLineService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewTimeLineService(t interface { - mock.TestingT - Cleanup(func()) -}) *TimeLineService { - mock := &TimeLineService{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index f713aeb29..37f3b0452 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -1,14 +1,31 @@ -// Code generated by mockery v2.53.2. DO NOT EDIT. +// Code generated by mockery; DO NOT EDIT. +// github.com/vektra/mockery +// template: testify package mocks import ( - context "context" + "context" - user "github.com/bangumi/server/internal/user" + "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/user" mock "github.com/stretchr/testify/mock" ) +// NewUserRepo creates a new instance of UserRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewUserRepo(t interface { + mock.TestingT + Cleanup(func()) +}) *UserRepo { + mock := &UserRepo{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} + // UserRepo is an autogenerated mock type for the Repo type type UserRepo struct { mock.Mock @@ -22,16 +39,15 @@ func (_m *UserRepo) EXPECT() *UserRepo_Expecter { return &UserRepo_Expecter{mock: &_m.Mock} } -// CheckIsFriendToOthers provides a mock function with given fields: ctx, selfID, otherIDs -func (_m *UserRepo) CheckIsFriendToOthers(ctx context.Context, selfID uint32, otherIDs ...uint32) (bool, error) { - _va := make([]interface{}, len(otherIDs)) - for _i := range otherIDs { - _va[_i] = otherIDs[_i] +// CheckIsFriendToOthers provides a mock function for the type UserRepo +func (_mock *UserRepo) CheckIsFriendToOthers(ctx context.Context, selfID model.UserID, otherIDs ...model.UserID) (bool, error) { + var tmpRet mock.Arguments + if len(otherIDs) > 0 { + tmpRet = _mock.Called(ctx, selfID, otherIDs) + } else { + tmpRet = _mock.Called(ctx, selfID) } - var _ca []interface{} - _ca = append(_ca, ctx, selfID) - _ca = append(_ca, _va...) - ret := _m.Called(_ca...) + ret := tmpRet if len(ret) == 0 { panic("no return value specified for CheckIsFriendToOthers") @@ -39,21 +55,19 @@ func (_m *UserRepo) CheckIsFriendToOthers(ctx context.Context, selfID uint32, ot var r0 bool var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32, ...uint32) (bool, error)); ok { - return rf(ctx, selfID, otherIDs...) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, []model.UserID) (bool, error)); ok { + return returnFunc(ctx, selfID, otherIDs) } - if rf, ok := ret.Get(0).(func(context.Context, uint32, ...uint32) bool); ok { - r0 = rf(ctx, selfID, otherIDs...) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, ...model.UserID) bool); ok { + r0 = returnFunc(ctx, selfID, otherIDs...) } else { r0 = ret.Get(0).(bool) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32, ...uint32) error); ok { - r1 = rf(ctx, selfID, otherIDs...) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID, ...model.UserID) error); ok { + r1 = returnFunc(ctx, selfID, otherIDs...) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -63,40 +77,40 @@ type UserRepo_CheckIsFriendToOthers_Call struct { } // CheckIsFriendToOthers is a helper method to define mock.On call -// - ctx context.Context -// - selfID uint32 -// - otherIDs ...uint32 +// - ctx +// - selfID +// - otherIDs func (_e *UserRepo_Expecter) CheckIsFriendToOthers(ctx interface{}, selfID interface{}, otherIDs ...interface{}) *UserRepo_CheckIsFriendToOthers_Call { return &UserRepo_CheckIsFriendToOthers_Call{Call: _e.mock.On("CheckIsFriendToOthers", append([]interface{}{ctx, selfID}, otherIDs...)...)} } -func (_c *UserRepo_CheckIsFriendToOthers_Call) Run(run func(ctx context.Context, selfID uint32, otherIDs ...uint32)) *UserRepo_CheckIsFriendToOthers_Call { +func (_c *UserRepo_CheckIsFriendToOthers_Call) Run(run func(ctx context.Context, selfID model.UserID, otherIDs ...model.UserID)) *UserRepo_CheckIsFriendToOthers_Call { _c.Call.Run(func(args mock.Arguments) { - variadicArgs := make([]uint32, len(args)-2) + variadicArgs := make([]model.UserID, len(args)-2) for i, a := range args[2:] { if a != nil { - variadicArgs[i] = a.(uint32) + variadicArgs[i] = a.(model.UserID) } } - run(args[0].(context.Context), args[1].(uint32), variadicArgs...) + run(args[0].(context.Context), args[1].(model.UserID), variadicArgs...) }) return _c } -func (_c *UserRepo_CheckIsFriendToOthers_Call) Return(_a0 bool, _a1 error) *UserRepo_CheckIsFriendToOthers_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_CheckIsFriendToOthers_Call) Return(b bool, err error) *UserRepo_CheckIsFriendToOthers_Call { + _c.Call.Return(b, err) return _c } -func (_c *UserRepo_CheckIsFriendToOthers_Call) RunAndReturn(run func(context.Context, uint32, ...uint32) (bool, error)) *UserRepo_CheckIsFriendToOthers_Call { +func (_c *UserRepo_CheckIsFriendToOthers_Call) RunAndReturn(run func(ctx context.Context, selfID model.UserID, otherIDs ...model.UserID) (bool, error)) *UserRepo_CheckIsFriendToOthers_Call { _c.Call.Return(run) return _c } -// GetByID provides a mock function with given fields: ctx, userID -func (_m *UserRepo) GetByID(ctx context.Context, userID uint32) (user.User, error) { - ret := _m.Called(ctx, userID) +// GetByID provides a mock function for the type UserRepo +func (_mock *UserRepo) GetByID(ctx context.Context, userID model.UserID) (user.User, error) { + ret := _mock.Called(ctx, userID) if len(ret) == 0 { panic("no return value specified for GetByID") @@ -104,21 +118,19 @@ func (_m *UserRepo) GetByID(ctx context.Context, userID uint32) (user.User, erro var r0 user.User var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (user.User, error)); ok { - return rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) (user.User, error)); ok { + return returnFunc(ctx, userID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) user.User); ok { - r0 = rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) user.User); ok { + r0 = returnFunc(ctx, userID) } else { r0 = ret.Get(0).(user.User) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID) error); ok { + r1 = returnFunc(ctx, userID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -128,56 +140,54 @@ type UserRepo_GetByID_Call struct { } // GetByID is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 +// - ctx +// - userID func (_e *UserRepo_Expecter) GetByID(ctx interface{}, userID interface{}) *UserRepo_GetByID_Call { return &UserRepo_GetByID_Call{Call: _e.mock.On("GetByID", ctx, userID)} } -func (_c *UserRepo_GetByID_Call) Run(run func(ctx context.Context, userID uint32)) *UserRepo_GetByID_Call { +func (_c *UserRepo_GetByID_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetByID_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID)) }) return _c } -func (_c *UserRepo_GetByID_Call) Return(_a0 user.User, _a1 error) *UserRepo_GetByID_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetByID_Call) Return(user1 user.User, err error) *UserRepo_GetByID_Call { + _c.Call.Return(user1, err) return _c } -func (_c *UserRepo_GetByID_Call) RunAndReturn(run func(context.Context, uint32) (user.User, error)) *UserRepo_GetByID_Call { +func (_c *UserRepo_GetByID_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID) (user.User, error)) *UserRepo_GetByID_Call { _c.Call.Return(run) return _c } -// GetByIDs provides a mock function with given fields: ctx, ids -func (_m *UserRepo) GetByIDs(ctx context.Context, ids []uint32) (map[uint32]user.User, error) { - ret := _m.Called(ctx, ids) +// GetByIDs provides a mock function for the type UserRepo +func (_mock *UserRepo) GetByIDs(ctx context.Context, ids []model.UserID) (map[model.UserID]user.User, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetByIDs") } - var r0 map[uint32]user.User + var r0 map[model.UserID]user.User var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]user.User, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.UserID) (map[model.UserID]user.User, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32]user.User); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.UserID) map[model.UserID]user.User); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]user.User) + r0 = ret.Get(0).(map[model.UserID]user.User) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.UserID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -187,32 +197,32 @@ type UserRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 +// - ctx +// - ids func (_e *UserRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *UserRepo_GetByIDs_Call { return &UserRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } -func (_c *UserRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *UserRepo_GetByIDs_Call { +func (_c *UserRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.UserID)) *UserRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].([]model.UserID)) }) return _c } -func (_c *UserRepo_GetByIDs_Call) Return(_a0 map[uint32]user.User, _a1 error) *UserRepo_GetByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetByIDs_Call) Return(vToUser map[model.UserID]user.User, err error) *UserRepo_GetByIDs_Call { + _c.Call.Return(vToUser, err) return _c } -func (_c *UserRepo_GetByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32]user.User, error)) *UserRepo_GetByIDs_Call { +func (_c *UserRepo_GetByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.UserID) (map[model.UserID]user.User, error)) *UserRepo_GetByIDs_Call { _c.Call.Return(run) return _c } -// GetByName provides a mock function with given fields: ctx, username -func (_m *UserRepo) GetByName(ctx context.Context, username string) (user.User, error) { - ret := _m.Called(ctx, username) +// GetByName provides a mock function for the type UserRepo +func (_mock *UserRepo) GetByName(ctx context.Context, username string) (user.User, error) { + ret := _mock.Called(ctx, username) if len(ret) == 0 { panic("no return value specified for GetByName") @@ -220,21 +230,19 @@ func (_m *UserRepo) GetByName(ctx context.Context, username string) (user.User, var r0 user.User var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (user.User, error)); ok { - return rf(ctx, username) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) (user.User, error)); ok { + return returnFunc(ctx, username) } - if rf, ok := ret.Get(0).(func(context.Context, string) user.User); ok { - r0 = rf(ctx, username) + if returnFunc, ok := ret.Get(0).(func(context.Context, string) user.User); ok { + r0 = returnFunc(ctx, username) } else { r0 = ret.Get(0).(user.User) } - - if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { - r1 = rf(ctx, username) + if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = returnFunc(ctx, username) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -244,8 +252,8 @@ type UserRepo_GetByName_Call struct { } // GetByName is a helper method to define mock.On call -// - ctx context.Context -// - username string +// - ctx +// - username func (_e *UserRepo_Expecter) GetByName(ctx interface{}, username interface{}) *UserRepo_GetByName_Call { return &UserRepo_GetByName_Call{Call: _e.mock.On("GetByName", ctx, username)} } @@ -257,43 +265,41 @@ func (_c *UserRepo_GetByName_Call) Run(run func(ctx context.Context, username st return _c } -func (_c *UserRepo_GetByName_Call) Return(_a0 user.User, _a1 error) *UserRepo_GetByName_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetByName_Call) Return(user1 user.User, err error) *UserRepo_GetByName_Call { + _c.Call.Return(user1, err) return _c } -func (_c *UserRepo_GetByName_Call) RunAndReturn(run func(context.Context, string) (user.User, error)) *UserRepo_GetByName_Call { +func (_c *UserRepo_GetByName_Call) RunAndReturn(run func(ctx context.Context, username string) (user.User, error)) *UserRepo_GetByName_Call { _c.Call.Return(run) return _c } -// GetFieldsByIDs provides a mock function with given fields: ctx, ids -func (_m *UserRepo) GetFieldsByIDs(ctx context.Context, ids []uint32) (map[uint32]user.Fields, error) { - ret := _m.Called(ctx, ids) +// GetFieldsByIDs provides a mock function for the type UserRepo +func (_mock *UserRepo) GetFieldsByIDs(ctx context.Context, ids []model.UserID) (map[model.UserID]user.Fields, error) { + ret := _mock.Called(ctx, ids) if len(ret) == 0 { panic("no return value specified for GetFieldsByIDs") } - var r0 map[uint32]user.Fields + var r0 map[model.UserID]user.Fields var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []uint32) (map[uint32]user.Fields, error)); ok { - return rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.UserID) (map[model.UserID]user.Fields, error)); ok { + return returnFunc(ctx, ids) } - if rf, ok := ret.Get(0).(func(context.Context, []uint32) map[uint32]user.Fields); ok { - r0 = rf(ctx, ids) + if returnFunc, ok := ret.Get(0).(func(context.Context, []model.UserID) map[model.UserID]user.Fields); ok { + r0 = returnFunc(ctx, ids) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]user.Fields) + r0 = ret.Get(0).(map[model.UserID]user.Fields) } } - - if rf, ok := ret.Get(1).(func(context.Context, []uint32) error); ok { - r1 = rf(ctx, ids) + if returnFunc, ok := ret.Get(1).(func(context.Context, []model.UserID) error); ok { + r1 = returnFunc(ctx, ids) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -303,56 +309,54 @@ type UserRepo_GetFieldsByIDs_Call struct { } // GetFieldsByIDs is a helper method to define mock.On call -// - ctx context.Context -// - ids []uint32 +// - ctx +// - ids func (_e *UserRepo_Expecter) GetFieldsByIDs(ctx interface{}, ids interface{}) *UserRepo_GetFieldsByIDs_Call { return &UserRepo_GetFieldsByIDs_Call{Call: _e.mock.On("GetFieldsByIDs", ctx, ids)} } -func (_c *UserRepo_GetFieldsByIDs_Call) Run(run func(ctx context.Context, ids []uint32)) *UserRepo_GetFieldsByIDs_Call { +func (_c *UserRepo_GetFieldsByIDs_Call) Run(run func(ctx context.Context, ids []model.UserID)) *UserRepo_GetFieldsByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]uint32)) + run(args[0].(context.Context), args[1].([]model.UserID)) }) return _c } -func (_c *UserRepo_GetFieldsByIDs_Call) Return(_a0 map[uint32]user.Fields, _a1 error) *UserRepo_GetFieldsByIDs_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetFieldsByIDs_Call) Return(vToFields map[model.UserID]user.Fields, err error) *UserRepo_GetFieldsByIDs_Call { + _c.Call.Return(vToFields, err) return _c } -func (_c *UserRepo_GetFieldsByIDs_Call) RunAndReturn(run func(context.Context, []uint32) (map[uint32]user.Fields, error)) *UserRepo_GetFieldsByIDs_Call { +func (_c *UserRepo_GetFieldsByIDs_Call) RunAndReturn(run func(ctx context.Context, ids []model.UserID) (map[model.UserID]user.Fields, error)) *UserRepo_GetFieldsByIDs_Call { _c.Call.Return(run) return _c } -// GetFriends provides a mock function with given fields: ctx, userID -func (_m *UserRepo) GetFriends(ctx context.Context, userID uint32) (map[uint32]user.FriendItem, error) { - ret := _m.Called(ctx, userID) +// GetFriends provides a mock function for the type UserRepo +func (_mock *UserRepo) GetFriends(ctx context.Context, userID model.UserID) (map[model.UserID]user.FriendItem, error) { + ret := _mock.Called(ctx, userID) if len(ret) == 0 { panic("no return value specified for GetFriends") } - var r0 map[uint32]user.FriendItem + var r0 map[model.UserID]user.FriendItem var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (map[uint32]user.FriendItem, error)); ok { - return rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) (map[model.UserID]user.FriendItem, error)); ok { + return returnFunc(ctx, userID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) map[uint32]user.FriendItem); ok { - r0 = rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) map[model.UserID]user.FriendItem); ok { + r0 = returnFunc(ctx, userID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(map[uint32]user.FriendItem) + r0 = ret.Get(0).(map[model.UserID]user.FriendItem) } } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID) error); ok { + r1 = returnFunc(ctx, userID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -362,32 +366,32 @@ type UserRepo_GetFriends_Call struct { } // GetFriends is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 +// - ctx +// - userID func (_e *UserRepo_Expecter) GetFriends(ctx interface{}, userID interface{}) *UserRepo_GetFriends_Call { return &UserRepo_GetFriends_Call{Call: _e.mock.On("GetFriends", ctx, userID)} } -func (_c *UserRepo_GetFriends_Call) Run(run func(ctx context.Context, userID uint32)) *UserRepo_GetFriends_Call { +func (_c *UserRepo_GetFriends_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetFriends_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID)) }) return _c } -func (_c *UserRepo_GetFriends_Call) Return(_a0 map[uint32]user.FriendItem, _a1 error) *UserRepo_GetFriends_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetFriends_Call) Return(vToFriendItem map[model.UserID]user.FriendItem, err error) *UserRepo_GetFriends_Call { + _c.Call.Return(vToFriendItem, err) return _c } -func (_c *UserRepo_GetFriends_Call) RunAndReturn(run func(context.Context, uint32) (map[uint32]user.FriendItem, error)) *UserRepo_GetFriends_Call { +func (_c *UserRepo_GetFriends_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID) (map[model.UserID]user.FriendItem, error)) *UserRepo_GetFriends_Call { _c.Call.Return(run) return _c } -// GetFullUser provides a mock function with given fields: ctx, userID -func (_m *UserRepo) GetFullUser(ctx context.Context, userID uint32) (user.FullUser, error) { - ret := _m.Called(ctx, userID) +// GetFullUser provides a mock function for the type UserRepo +func (_mock *UserRepo) GetFullUser(ctx context.Context, userID model.UserID) (user.FullUser, error) { + ret := _mock.Called(ctx, userID) if len(ret) == 0 { panic("no return value specified for GetFullUser") @@ -395,21 +399,19 @@ func (_m *UserRepo) GetFullUser(ctx context.Context, userID uint32) (user.FullUs var r0 user.FullUser var r1 error - if rf, ok := ret.Get(0).(func(context.Context, uint32) (user.FullUser, error)); ok { - return rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) (user.FullUser, error)); ok { + return returnFunc(ctx, userID) } - if rf, ok := ret.Get(0).(func(context.Context, uint32) user.FullUser); ok { - r0 = rf(ctx, userID) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID) user.FullUser); ok { + r0 = returnFunc(ctx, userID) } else { r0 = ret.Get(0).(user.FullUser) } - - if rf, ok := ret.Get(1).(func(context.Context, uint32) error); ok { - r1 = rf(ctx, userID) + if returnFunc, ok := ret.Get(1).(func(context.Context, model.UserID) error); ok { + r1 = returnFunc(ctx, userID) } else { r1 = ret.Error(1) } - return r0, r1 } @@ -419,39 +421,25 @@ type UserRepo_GetFullUser_Call struct { } // GetFullUser is a helper method to define mock.On call -// - ctx context.Context -// - userID uint32 +// - ctx +// - userID func (_e *UserRepo_Expecter) GetFullUser(ctx interface{}, userID interface{}) *UserRepo_GetFullUser_Call { return &UserRepo_GetFullUser_Call{Call: _e.mock.On("GetFullUser", ctx, userID)} } -func (_c *UserRepo_GetFullUser_Call) Run(run func(ctx context.Context, userID uint32)) *UserRepo_GetFullUser_Call { +func (_c *UserRepo_GetFullUser_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetFullUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32)) + run(args[0].(context.Context), args[1].(model.UserID)) }) return _c } -func (_c *UserRepo_GetFullUser_Call) Return(_a0 user.FullUser, _a1 error) *UserRepo_GetFullUser_Call { - _c.Call.Return(_a0, _a1) +func (_c *UserRepo_GetFullUser_Call) Return(fullUser user.FullUser, err error) *UserRepo_GetFullUser_Call { + _c.Call.Return(fullUser, err) return _c } -func (_c *UserRepo_GetFullUser_Call) RunAndReturn(run func(context.Context, uint32) (user.FullUser, error)) *UserRepo_GetFullUser_Call { +func (_c *UserRepo_GetFullUser_Call) RunAndReturn(run func(ctx context.Context, userID model.UserID) (user.FullUser, error)) *UserRepo_GetFullUser_Call { _c.Call.Return(run) return _c } - -// NewUserRepo creates a new instance of UserRepo. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewUserRepo(t interface { - mock.TestingT - Cleanup(func()) -}) *UserRepo { - mock := &UserRepo{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 0f8f327a5..c25e56579 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -249,7 +249,7 @@ func MockSubjectReadRepo(m subject.CachedRepo) fx.Option { func MockTimeLineSrv(m timeline.Service) fx.Option { if m == nil { - mocker := &mocks.TimeLineService{} + mocker := &mocks.TimelineService{} mocker.EXPECT().ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil) diff --git a/Taskfile.yaml b/taskfile.yaml similarity index 94% rename from Taskfile.yaml rename to taskfile.yaml index d24a0f9e8..6270e18b7 100644 --- a/Taskfile.yaml +++ b/taskfile.yaml @@ -2,11 +2,6 @@ version: "3" dotenv: [".env", ".envrc"] -includes: - mock: - taskfile: "./etc/mock.task.yaml" - internal: true - tasks: default: silent: true @@ -92,8 +87,9 @@ tasks: mock: desc: Generate Mocks. - deps: - - mock:all + cmds: + - rm ./internal/mocks/ -rf + - go run github.com/vektra/mockery/v3 --config ./.mockery.yaml gorm: desc: Run gorm-gen to generate go struct from mysql database. diff --git a/web/handler/user/collection_test.go b/web/handler/user/collection_test.go index e25c85dcf..8ceb3e5a9 100644 --- a/web/handler/user/collection_test.go +++ b/web/handler/user/collection_test.go @@ -43,7 +43,7 @@ func TestUser_ListCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().ListSubjectCollection(mock.Anything, userID, mock.Anything, mock.Anything, mock.Anything, 10, 0). Return([]collection.UserSubjectCollection{{SubjectID: subjectID, Type: 1}}, nil) c.EXPECT().CountSubjectCollections(mock.Anything, userID, mock.Anything, mock.Anything, mock.Anything). @@ -86,7 +86,7 @@ func TestUser_GetSubjectCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetSubjectCollection(mock.Anything, userID, mock.Anything). Return(collection.UserSubjectCollection{SubjectID: subjectID, Type: 1}, nil) @@ -119,7 +119,7 @@ func TestUser_ListSubjectCollection_other_user(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetSubjectCollection(mock.Anything, userID, mock.Anything). Return(collection.UserSubjectCollection{SubjectID: subjectID, Private: true}, nil) @@ -139,7 +139,7 @@ func TestUser_GetPersonCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetPersonCollection(mock.Anything, userID, mock.Anything, mock.Anything). Return(collection.UserPersonCollection{UserID: userID, Category: "prsn", TargetID: personID}, nil) @@ -170,7 +170,7 @@ func TestUser_ListPersonCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().ListPersonCollection(mock.Anything, userID, mock.Anything, 10, 0). Return([]collection.UserPersonCollection{{UserID: userID, Category: "prsn", TargetID: personID}}, nil) c.EXPECT().CountPersonCollections(mock.Anything, userID, mock.Anything). @@ -213,7 +213,7 @@ func TestUser_GetCharacterCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetPersonCollection(mock.Anything, userID, mock.Anything, mock.Anything). Return(collection.UserPersonCollection{UserID: userID, Category: "crt", TargetID: characterID}, nil) @@ -244,7 +244,7 @@ func TestUser_ListCharacterCollection(t *testing.T) { m := mocks.NewUserRepo(t) m.EXPECT().GetByName(mock.Anything, username).Return(user.User{ID: userID, UserName: username}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().ListPersonCollection(mock.Anything, userID, mock.Anything, 10, 0). Return([]collection.UserPersonCollection{{UserID: userID, Category: "crt", TargetID: characterID}}, nil) c.EXPECT().CountPersonCollections(mock.Anything, userID, mock.Anything). diff --git a/web/handler/user/get_episode_collection_test.go b/web/handler/user/get_episode_collection_test.go index 1d0f1205c..7439ba27f 100644 --- a/web/handler/user/get_episode_collection_test.go +++ b/web/handler/user/get_episode_collection_test.go @@ -38,7 +38,7 @@ func TestUser_GetEpisodeCollection(t *testing.T) { mockAuth := mocks.NewAuthService(t) mockAuth.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 3}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetSubjectEpisodesCollection(mock.Anything, mock.Anything, mock.Anything). Return(map[model.EpisodeID]collection.UserEpisodeCollection{}, nil) @@ -63,7 +63,7 @@ func TestUser_GetSubjectEpisodeCollection(t *testing.T) { mockAuth := mocks.NewAuthService(t) mockAuth.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 3}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().GetSubjectEpisodesCollection(mock.Anything, mock.Anything, mock.Anything). Return(map[model.EpisodeID]collection.UserEpisodeCollection{}, nil) diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 86c3ab3b2..1cc40c5cd 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -49,13 +49,13 @@ func TestUser_PatchSubjectCollection(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) - tl := mocks.NewTimeLineService(t) + tl := mocks.NewTimelineService(t) tl.EXPECT(). ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return(nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, @@ -100,9 +100,9 @@ func TestUser_PatchToNonExistsSubjectCollection(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) - tl := mocks.NewTimeLineService(t) + tl := mocks.NewTimelineService(t) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().UpdateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Return(gerr.ErrSubjectNotCollected) @@ -130,8 +130,8 @@ func TestUser_PatchSubjectCollection_badID(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - tl := mocks.NewTimeLineService(t) - c := mocks.NewCollectionRepo(t) + tl := mocks.NewTimelineService(t) + c := mocks.NewCollectionsRepo(t) d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) require.NoError(t, err) diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index 32dc5ea6b..2a399c40b 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -48,13 +48,13 @@ func TestUser_PostSubjectCollection(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) - tl := mocks.NewTimeLineService(t) + tl := mocks.NewTimelineService(t) tl.EXPECT(). ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return(nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, @@ -100,13 +100,13 @@ func TestUser_PostSubjectCollectionPartialData(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: uid}, nil) - tl := mocks.NewTimeLineService(t) + tl := mocks.NewTimelineService(t) tl.EXPECT(). ChangeSubjectCollection(mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything). Return(nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().UpdateOrCreateSubjectCollection(mock.Anything, uid, subject, mock.Anything, mock.Anything, mock.Anything). Run(func(ctx context.Context, userID uint32, subject model.Subject, at time.Time, ip string, @@ -165,8 +165,8 @@ func TestUser_PostSubjectCollection_badID(t *testing.T) { a := mocks.NewAuthService(t) a.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.Auth{ID: 1}, nil) - tl := mocks.NewTimeLineService(t) - c := mocks.NewCollectionRepo(t) + tl := mocks.NewTimelineService(t) + c := mocks.NewCollectionsRepo(t) d, err := dam.New(config.AppConfig{NsfwWord: "", DisableWords: "test_content", BannedDomain: ""}) require.NoError(t, err) diff --git a/web/handler/user/update_episode_collection_test.go b/web/handler/user/update_episode_collection_test.go index eaf5364d2..5c0aaf942 100644 --- a/web/handler/user/update_episode_collection_test.go +++ b/web/handler/user/update_episode_collection_test.go @@ -54,7 +54,7 @@ func TestUser_PatchEpisodeCollectionBatch(t *testing.T) { {ID: 4}, }, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().WithQuery(mock.Anything).Return(c) c.EXPECT().UpdateEpisodeCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). Run(func(_ context.Context, _ model.UserID, _ model.SubjectID, @@ -97,7 +97,7 @@ func TestUser_PutEpisodeCollection(t *testing.T) { e := mocks.NewEpisodeRepo(t) e.EXPECT().Get(mock.Anything, eid).Return(episode.Episode{ID: eid, SubjectID: sid}, nil) - c := mocks.NewCollectionRepo(t) + c := mocks.NewCollectionsRepo(t) c.EXPECT().WithQuery(mock.Anything).Return(c) c.EXPECT().GetSubjectCollection(mock.Anything, uid, sid).Return(collection.UserSubjectCollection{SubjectID: sid}, nil) c.EXPECT().UpdateEpisodeCollection(mock.Anything, uid, sid, mock.Anything, mock.Anything, mock.Anything). From ec4ac39dfec3e411b344c805d246a7977d1b7487 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Apr 2025 19:38:40 +0800 Subject: [PATCH 609/888] build(deps): update aws-sdk-go-v2 monorepo (#783) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 11a238f23..b11bf61cd 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.66 - github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1 + github.com/aws/aws-sdk-go-v2/credentials v1.17.67 + github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 diff --git a/go.sum b/go.sum index 31484bc31..caa81c1e3 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38y github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/credentials v1.17.66 h1:aKpEKaTy6n4CEJeYI1MNj97oSDLi4xro3UzQfwf5RWE= -github.com/aws/aws-sdk-go-v2/credentials v1.17.66/go.mod h1:xQ5SusDmHb/fy55wU0QqTy0yNfLqxzec59YcsRZB+rI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= @@ -27,8 +27,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1 h1:2Ku1xwAohSSXHR1tpAnyVDSQSxoDMA+/NZBytW+f4qg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.1/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 h1:tWUG+4wZqdMl/znThEk9tcCy8tTMxq8dW0JTgamohrY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 06c2451acbd38c987202885b48658263b265d68c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Apr 2025 19:13:08 +0800 Subject: [PATCH 610/888] fix: add rate limit (#787) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- web/new.go | 30 ++++++++++++++----------- web/req/ban.lua | 24 ++++++++++++++++++++ web/req/rate-limit.go | 51 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 13 deletions(-) create mode 100644 web/req/ban.lua create mode 100644 web/req/rate-limit.go diff --git a/web/new.go b/web/new.go index 97b902520..d4d53e0d3 100644 --- a/web/new.go +++ b/web/new.go @@ -28,6 +28,7 @@ import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/prometheus/client_golang/prometheus/promhttp" + "github.com/redis/rueidis" "github.com/trim21/errgo" "github.com/bangumi/server/config" @@ -37,6 +38,7 @@ import ( "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/openapi" "github.com/bangumi/server/web/mw/recovery" + "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/req/cf" ) @@ -44,7 +46,7 @@ const headerProcessTime = "x-process-time-ms" const headerServerVersion = "x-server-version" //nolint:funlen -func New() *echo.Echo { +func New(r rueidis.Client) *echo.Echo { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() app.HideBanner = true @@ -62,6 +64,20 @@ func New() *echo.Echo { return ip } + if env.Development { + // fasthttp bug, it uses an internal global variable and causing data race here + app.Static("/openapi/", "./openapi/") + app.GET("/debug", func(c echo.Context) error { + return c.JSON(http.StatusOK, echo.Map{ + "ip": c.RealIP(), + }) + }) + } else { + app.StaticFS("/openapi/", openapi.Static) + } + + app.Use(req.RateLimit(r)) + app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { metrics.RequestCount.Inc() @@ -125,18 +141,6 @@ func New() *echo.Echo { return c.Redirect(http.StatusFound, "/openapi/") }) - if env.Development { - // fasthttp bug, it uses an internal global variable and causing data race here - app.Static("/openapi/", "./openapi/") - app.GET("/debug", func(c echo.Context) error { - return c.JSON(http.StatusOK, echo.Map{ - "ip": c.RealIP(), - }) - }) - } else { - app.StaticFS("/openapi/", openapi.Static) - } - return app } diff --git a/web/req/ban.lua b/web/req/ban.lua new file mode 100644 index 000000000..929f66110 --- /dev/null +++ b/web/req/ban.lua @@ -0,0 +1,24 @@ +-- apply a rate limit by key +-- first check "long ban key" exists, when check request rate limit +-- if the request rate is too high, ban it with a long time. + +local LONG_BAN_KEY = KEYS[1]; +local RATE_KEY = KEYS[2]; + +local long_ban = redis.call('EXISTS', LONG_BAN_KEY) + +if long_ban == 1 then + return 1 +end + +local current = redis.call("incr", RATE_KEY) +if current == 1 then + redis.call("expire", RATE_KEY, 60) +end + +if current <= 60 then + return 0 +end + +redis.call("set", LONG_BAN_KEY, 1, 'ex', 86400) +return 1 diff --git a/web/req/rate-limit.go b/web/req/rate-limit.go new file mode 100644 index 000000000..395110138 --- /dev/null +++ b/web/req/rate-limit.go @@ -0,0 +1,51 @@ +package req + +import ( + "context" + _ "embed" + "errors" + "net/http" + + "github.com/labstack/echo/v4" + "github.com/redis/rueidis" + "go.uber.org/zap" + + "github.com/bangumi/server/internal/pkg/logger" + "github.com/bangumi/server/web/res" +) + +//go:embed ban.lua +var rateLimitLua string + +func RateLimit(r rueidis.Client) echo.MiddlewareFunc { + script := rueidis.NewLuaScript(rateLimitLua) + + return func(next echo.HandlerFunc) echo.HandlerFunc { + return func(c echo.Context) error { + ip := c.RealIP() + + var longBanKey = "chii-rate-limit:long:" + ip + var rateLimitKey = "chii-rate-limit:rate:" + ip + + banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, nil).ToInt64() + if err != nil { + if errors.Is(err, context.Canceled) { + return err + } + logger.Error("failed to apply rate limit", zap.Error(err)) + return err + } + + if banned != 0 { + return c.JSON(http.StatusTooManyRequests, + res.Error{ + Title: "Too Many Request", + Description: `too many request, you have be rate limited`, + }, + ) + } + + return next(c) + } + } +} From 41da80c67a8779c397a34c5bc44bdb844c392654 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Apr 2025 21:13:27 +0800 Subject: [PATCH 611/888] ci: ignore non-master branches --- .github/workflows/build.yaml | 4 ++-- .github/workflows/lint.yaml | 4 ++-- .github/workflows/security.yaml | 4 ++-- .github/workflows/test-openapi.yaml | 4 ++-- .github/workflows/test.yaml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f03273b50..5fca614f9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -2,8 +2,8 @@ name: Build on: push: - branches-ignore: - - renovate/** + branches: + - master paths: - ".github/workflows/build.yaml" - "go.mod" diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 48d297db2..5447da2b2 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -2,8 +2,8 @@ name: Lint on: push: - branches-ignore: - - renovate/** + branches: + - master paths: - "**.go" - "**.go.json" diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index d3cb1f6fe..df87b80dc 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -2,8 +2,8 @@ name: Security Vulnerability Check on: push: - branches-ignore: - - renovate/** + branches: + - master paths: - "**.go" - "go.mod" diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 33a9fbd45..d4fa80f99 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -2,8 +2,8 @@ name: Test(openapi) on: push: - branches-ignore: - - renovate/** + branches: + - master paths: - "openapi/**" - "package.json" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 81d53a0c1..d5350cb60 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -2,8 +2,8 @@ name: Test on: push: - branches-ignore: - - renovate/** + branches: + - master paths: - ".github/workflows/test.yaml" - "go.mod" From dac1e91e350a79cf1aa977351b8dd180786d5b20 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Apr 2025 21:13:33 +0800 Subject: [PATCH 612/888] fix: relax rate limit (#789) --- web/{req => mw}/ban.lua | 4 ++-- web/{req => mw}/rate-limit.go | 20 +++++++++++++++++--- web/new.go | 4 ++-- 3 files changed, 21 insertions(+), 7 deletions(-) rename web/{req => mw}/ban.lua (82%) rename web/{req => mw}/rate-limit.go (56%) diff --git a/web/req/ban.lua b/web/mw/ban.lua similarity index 82% rename from web/req/ban.lua rename to web/mw/ban.lua index 929f66110..3b769ea97 100644 --- a/web/req/ban.lua +++ b/web/mw/ban.lua @@ -16,9 +16,9 @@ if current == 1 then redis.call("expire", RATE_KEY, 60) end -if current <= 60 then +if current <= 300 then return 0 end -redis.call("set", LONG_BAN_KEY, 1, 'ex', 86400) +redis.call("set", LONG_BAN_KEY, 1, 'ex', 3600) return 1 diff --git a/web/req/rate-limit.go b/web/mw/rate-limit.go similarity index 56% rename from web/req/rate-limit.go rename to web/mw/rate-limit.go index 395110138..458b25e61 100644 --- a/web/req/rate-limit.go +++ b/web/mw/rate-limit.go @@ -1,4 +1,18 @@ -package req +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package mw import ( "context" @@ -24,8 +38,8 @@ func RateLimit(r rueidis.Client) echo.MiddlewareFunc { return func(c echo.Context) error { ip := c.RealIP() - var longBanKey = "chii-rate-limit:long:" + ip - var rateLimitKey = "chii-rate-limit:rate:" + ip + var longBanKey = "chii-rate-limit:long:2:" + ip + var rateLimitKey = "chii-rate-limit:rate:2:" + ip banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, nil).ToInt64() if err != nil { diff --git a/web/new.go b/web/new.go index d4d53e0d3..456673624 100644 --- a/web/new.go +++ b/web/new.go @@ -37,8 +37,8 @@ import ( "github.com/bangumi/server/internal/pkg/gtime" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/openapi" + "github.com/bangumi/server/web/mw" "github.com/bangumi/server/web/mw/recovery" - "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/req/cf" ) @@ -76,7 +76,7 @@ func New(r rueidis.Client) *echo.Echo { app.StaticFS("/openapi/", openapi.Static) } - app.Use(req.RateLimit(r)) + app.Use(mw.RateLimit(r)) app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { From 6c2d7175ee2e11464b7f4cd5f6f2528be4c6cd22 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Apr 2025 22:36:43 +0800 Subject: [PATCH 613/888] fix: cache subject (#788) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- internal/pkg/driver/mysql.go | 2 +- web/handler/subject/get_test.go | 12 ++++++------ web/handler/subject/related_subjects_test.go | 2 +- web/handler/subject/subject.go | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/pkg/driver/mysql.go b/internal/pkg/driver/mysql.go index b553a8d38..b05a31421 100644 --- a/internal/pkg/driver/mysql.go +++ b/internal/pkg/driver/mysql.go @@ -52,7 +52,7 @@ func NewMysqlDriver(c config.AppConfig) (*sql.DB, error) { return nil, errgo.Wrap(err, "mysql: failed to create sql connection pool") } - ctx, cancel := context.WithTimeout(context.Background(), time.Second) + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) defer cancel() if err = db.PingContext(ctx); err != nil { diff --git a/web/handler/subject/get_test.go b/web/handler/subject/get_test.go index 6982d800d..08ab1e9ec 100644 --- a/web/handler/subject/get_test.go +++ b/web/handler/subject/get_test.go @@ -81,7 +81,7 @@ func TestSubject_Get_Redirect(t *testing.T) { app := test.GetWebApp(t, test.Mock{ - SubjectRepo: m, + SubjectCachedRepo: m, }, ) @@ -105,8 +105,8 @@ func TestSubject_Get_NSFW_200(t *testing.T) { app := test.GetWebApp(t, test.Mock{ - AuthRepo: mockAuth, - SubjectRepo: m, + AuthRepo: mockAuth, + SubjectCachedRepo: m, }, ) @@ -123,7 +123,7 @@ func TestSubject_Get_NSFW_404(t *testing.T) { Return(model.Subject{}, gerr.ErrSubjectNotFound) app := test.GetWebApp(t, - test.Mock{SubjectRepo: m}, + test.Mock{SubjectCachedRepo: m}, ) resp := htest.New(t, app).Get("/v0/subjects/7") @@ -154,7 +154,7 @@ func TestSubject_GetImage_302(t *testing.T) { m.EXPECT().Get(mock.Anything, model.SubjectID(1), mock.Anything).Return(model.Subject{ID: 1, Image: "temp"}, nil) m.EXPECT().Get(mock.Anything, model.SubjectID(3), mock.Anything).Return(model.Subject{ID: 1}, nil) - app := test.GetWebApp(t, test.Mock{SubjectRepo: m}) + app := test.GetWebApp(t, test.Mock{SubjectCachedRepo: m}) for _, imageType := range []string{"small", "grid", "large", "medium", "common"} { t.Run(imageType, func(t *testing.T) { @@ -178,7 +178,7 @@ func TestSubject_GetImage_400(t *testing.T) { m := mocks.NewSubjectRepo(t) m.EXPECT().Get(mock.Anything, mock.Anything, mock.Anything).Return(model.Subject{Image: "temp"}, nil) - app := test.GetWebApp(t, test.Mock{SubjectRepo: m}) + app := test.GetWebApp(t, test.Mock{SubjectCachedRepo: m}) htest.New(t, app).Get("/v0/subjects/1/image").ExpectCode(http.StatusBadRequest) } diff --git a/web/handler/subject/related_subjects_test.go b/web/handler/subject/related_subjects_test.go index 3d3a4eb12..97bc6a4d3 100644 --- a/web/handler/subject/related_subjects_test.go +++ b/web/handler/subject/related_subjects_test.go @@ -46,7 +46,7 @@ func TestSubject_GetRelatedSubjects(t *testing.T) { app := test.GetWebApp(t, test.Mock{ - SubjectRepo: m, + SubjectCachedRepo: m, }, ) diff --git a/web/handler/subject/subject.go b/web/handler/subject/subject.go index aaa64c008..523455db3 100644 --- a/web/handler/subject/subject.go +++ b/web/handler/subject/subject.go @@ -28,14 +28,14 @@ type Subject struct { person person.Service episode episode.Repo personRepo person.Repo - subject subject.Repo + subject subject.CachedRepo tag tag.CachedRepo c character.Repo } func New( p person.Service, - subject subject.Repo, + subject subject.CachedRepo, personRepo person.Repo, c character.Repo, episode episode.Repo, From c4191ae9e17f6176a23a8123c283c7891036d3ca Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 03:23:47 +0800 Subject: [PATCH 614/888] fix: make rate limit configurable (#790) --- config/config.go | 6 ++++++ web/mw/ban.lua | 10 +++++++--- web/mw/rate-limit.go | 17 +++++++++++++---- web/new.go | 4 ++-- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/config/config.go b/config/config.go index cd98eb246..e714e1ec9 100644 --- a/config/config.go +++ b/config/config.go @@ -46,6 +46,12 @@ type AppConfig struct { HTTPHost string `yaml:"http_host" env:"HTTP_HOST" env-default:"127.0.0.1"` HTTPPort int `yaml:"http_port" env:"HTTP_PORT" env-default:"3000"` + RateLimit struct { + LimitLongTime time.Duration `yaml:"long_time" env:"RATE_LIMIT_LONG_TIME" env-default:"1h"` + LimitWindow time.Duration `yaml:"window" env:"RATE_LIMIT_WINDOW" env-default:"10m"` + LimitCount uint `yaml:"count" env:"RATE_LIMIT_COUNT" env-default:"3000"` + } `yaml:"rate_limit"` + Canal struct { Broker string `yaml:"broker"` diff --git a/web/mw/ban.lua b/web/mw/ban.lua index 3b769ea97..6dcb544a4 100644 --- a/web/mw/ban.lua +++ b/web/mw/ban.lua @@ -5,6 +5,10 @@ local LONG_BAN_KEY = KEYS[1]; local RATE_KEY = KEYS[2]; +local LONG_TIME = ARGV[1]; +local TIME_WINDOW = ARGV[2]; +local COUNT = ARGV[3]; + local long_ban = redis.call('EXISTS', LONG_BAN_KEY) if long_ban == 1 then @@ -13,12 +17,12 @@ end local current = redis.call("incr", RATE_KEY) if current == 1 then - redis.call("expire", RATE_KEY, 60) + redis.call("expire", RATE_KEY, tonumber(TIME_WINDOW)) end -if current <= 300 then +if current <= tonumber(COUNT) then return 0 end -redis.call("set", LONG_BAN_KEY, 1, 'ex', 3600) +redis.call("set", LONG_BAN_KEY, 1, 'ex', tonumber(LONG_TIME)) return 1 diff --git a/web/mw/rate-limit.go b/web/mw/rate-limit.go index 458b25e61..0d9f89b7e 100644 --- a/web/mw/rate-limit.go +++ b/web/mw/rate-limit.go @@ -18,12 +18,15 @@ import ( "context" _ "embed" "errors" + "fmt" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/redis/rueidis" "go.uber.org/zap" + "github.com/bangumi/server/config" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/web/res" ) @@ -31,17 +34,23 @@ import ( //go:embed ban.lua var rateLimitLua string -func RateLimit(r rueidis.Client) echo.MiddlewareFunc { +func RateLimit(cfg config.AppConfig, r rueidis.Client) echo.MiddlewareFunc { script := rueidis.NewLuaScript(rateLimitLua) + args := []string{ + fmt.Sprintf("%d", cfg.RateLimit.LimitLongTime/time.Second), + fmt.Sprintf("%d", cfg.RateLimit.LimitWindow/time.Second), + fmt.Sprintf("%d", cfg.RateLimit.LimitCount), + } + return func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { ip := c.RealIP() - var longBanKey = "chii-rate-limit:long:2:" + ip - var rateLimitKey = "chii-rate-limit:rate:2:" + ip + var longBanKey = "chii-rate-limit:long:3:" + ip + var rateLimitKey = "chii-rate-limit:rate:3:" + ip - banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, nil).ToInt64() + banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, args).ToInt64() if err != nil { if errors.Is(err, context.Canceled) { return err diff --git a/web/new.go b/web/new.go index 456673624..ca05c9f23 100644 --- a/web/new.go +++ b/web/new.go @@ -46,7 +46,7 @@ const headerProcessTime = "x-process-time-ms" const headerServerVersion = "x-server-version" //nolint:funlen -func New(r rueidis.Client) *echo.Echo { +func New(r rueidis.Client, cfg config.AppConfig) *echo.Echo { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() app.HideBanner = true @@ -76,7 +76,7 @@ func New(r rueidis.Client) *echo.Echo { app.StaticFS("/openapi/", openapi.Static) } - app.Use(mw.RateLimit(r)) + app.Use(mw.RateLimit(cfg, r)) app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { From 15b29c84d70a6735923b8ec8ffdaab3f68fb8f48 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 03:48:29 +0800 Subject: [PATCH 615/888] refactor: use toml config (#791) --- .gitignore | 1 + canal/canal.go | 2 +- canal/stream_kafka.go | 4 +- cmd/web/cmd.go | 2 +- config.example.toml | 37 ++++++++++++ config.example.yaml | 50 ---------------- config/config.go | 96 ++++++++++++++---------------- internal/search/searcher/client.go | 8 --- readme.md | 2 +- taskfile.yaml | 4 +- 10 files changed, 89 insertions(+), 117 deletions(-) create mode 100644 config.example.toml delete mode 100644 config.example.yaml diff --git a/.gitignore b/.gitignore index 1f4c60e82..4eb88f609 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ pnpm-lock.yaml .task/ config.yaml +config.toml diff --git a/canal/canal.go b/canal/canal.go index c1890e6bc..740230d01 100644 --- a/canal/canal.go +++ b/canal/canal.go @@ -53,7 +53,7 @@ func Main() error { return errgo.Trace(err) } - if len(cfg.Canal.Topics) == 0 { + if len(cfg.Kafka.Topics) == 0 { return errNoTopic } diff --git a/canal/stream_kafka.go b/canal/stream_kafka.go index 4fe1086b9..69629914f 100644 --- a/canal/stream_kafka.go +++ b/canal/stream_kafka.go @@ -32,9 +32,9 @@ import ( func newKafkaStream(cfg config.AppConfig) Stream { logger.Info("new kafka stream broker") k := kafka.NewReader(kafka.ReaderConfig{ - Brokers: []string{cfg.Canal.KafkaBroker}, + Brokers: []string{cfg.Kafka.Broker}, GroupID: groupID, - GroupTopics: cfg.Canal.Topics, + GroupTopics: cfg.Kafka.Topics, }) var ch = make(chan Msg, 1) diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 1a5f3b44c..3f94d9cec 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -97,7 +97,7 @@ func start() error { func(cfg config.AppConfig) *kafka.Writer { logger.Info("new kafka stream broker") return kafka.NewWriter(kafka.WriterConfig{ - Brokers: []string{cfg.Canal.KafkaBroker}, + Brokers: []string{cfg.Kafka.Broker}, }) }, ), diff --git a/config.example.toml b/config.example.toml new file mode 100644 index 000000000..c0c84062d --- /dev/null +++ b/config.example.toml @@ -0,0 +1,37 @@ +slow-sql-duration = "10s" +nsfw-word = "里番|无码|18x|エロ" +disable-words = "办假存单|办理假证|0月租手机" +banned-domain = "lista.cc|snapmail.cc|ashotmail.com|zoutlook.com" +s3-entry-point = "" +s3-access-key = "" +s3-secret-key = "" + +http.host = "127.0.0.1" +http.port = 3_000 + +redis-url = "redis://:redis-pass@127.0.0.1:6379/0" + +[mysql] +host = "127.0.0.1" +port = "3306" +user = "user" +password = "password" +db = "bangumi" +max-connection = 4 + +[kafka] +broker = "127.0.0.1:29092" +topics = [ + "debezium.bangumi.chii_subject_fields", + "debezium.bangumi.chii_subjects", + "debezium.bangumi.chii_characters", + "debezium.bangumi.chii_persons", + "debezium.bangumi.chii_members", +] + +[search.meilisearch] +url = "" +key = "" + +[debug] +gorm = true diff --git a/config.example.yaml b/config.example.yaml deleted file mode 100644 index 4e125cfed..000000000 --- a/config.example.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# 完整选项见 config/config.go - -http_host: 127.0.0.1 -http_port: 3000 -web_domain: next.bgm.tv - -redis_url: "redis://:redis-pass@127.0.0.1:6379/0" - -mysql: - host: 127.0.0.1 - port: "3306" - user: user - password: password - db: bangumi - max_connection: 4 - -hcaptcha_secret_key: 0x0000000000000000000000000000000000000000 - -canal: - broker: "kafka" # or redis (stream) - - kafka_broker: "kafka://192.168.1.3:29092" - topics: # kafka topic of redis stream keys - - debezium.bangumi.chii_subject_fields - - debezium.bangumi.chii_subjects - - debezium.bangumi.chii_characters - - debezium.bangumi.chii_persons - - debezium.bangumi.chii_members - -search: - # 如果为空字符串则不会启用搜索相关的功能。 - meilisearch: - url: "" - key: "" - -# log slow sql, in go time.Duration format string -# empty or zero value will disable slow sql logging -slow_sql_duration: "10s" - -debug: - gorm: true -nsfw_word: "里番|无码|18x|エロ" -disable_words: "办假存单|办理假证|0月租手机" -banned_domain: "lista.cc|snapmail.cc|ashotmail.com|zoutlook.com" - -# Optional, not required - -s3_entry_point: "" -s3_access_key: "" -s3_secret_key: "" diff --git a/config/config.go b/config/config.go index e714e1ec9..e88a22f93 100644 --- a/config/config.go +++ b/config/config.go @@ -24,68 +24,60 @@ const AppTypeHTTP = "http" type AppConfig struct { Debug struct { - Gorm bool `yaml:"gorm"` - } `yaml:"debug"` + Gorm bool `toml:"gorm"` + } `toml:"debug"` - RedisURL string `yaml:"redis_url" env:"REDIS_URI" env-default:"redis://127.0.0.1:6379/0"` + RedisURL string `toml:"redis-url" env:"REDIS_URI" env-default:"redis://127.0.0.1:6379/0"` Mysql struct { - Host string `yaml:"host" env:"MYSQL_HOST" env-default:"127.0.0.1"` - Port string `yaml:"port" env:"MYSQL_PORT" env-default:"3306"` - UserName string `yaml:"user" env:"MYSQL_USER" env-default:"user"` - Password string `yaml:"password" env:"MYSQL_PASS" env-default:"password"` - Database string `yaml:"db" env:"MYSQL_DB" env-default:"bangumi"` - MaxConn int `yaml:"max_connection" env:"MYSQL_MAX_CONNECTION" env-default:"4"` - MaxIdleTime time.Duration `yaml:"conn_max_idle_time" env-default:"4h"` - MaxLifeTime time.Duration `yaml:"conn_max_life_time" env-default:"6h"` - - SlowSQLDuration time.Duration `yaml:"slow_sql_duration" env:"SLOW_SQL_DURATION"` - } `yaml:"mysql"` - - WebDomain string `yaml:"web_domain" env:"WEB_DOMAIN"` // new frontend web page domain - HTTPHost string `yaml:"http_host" env:"HTTP_HOST" env-default:"127.0.0.1"` - HTTPPort int `yaml:"http_port" env:"HTTP_PORT" env-default:"3000"` + Host string `toml:"host" env:"MYSQL_HOST" env-default:"127.0.0.1"` + Port string `toml:"port" env:"MYSQL_PORT" env-default:"3306"` + UserName string `toml:"user-name" env:"MYSQL_USER" env-default:"user"` + Password string `toml:"password" env:"MYSQL_PASS" env-default:"password"` + Database string `toml:"database" env:"MYSQL_DB" env-default:"bangumi"` + MaxConn int `toml:"max-conn" env:"MYSQL_MAX_CONNECTION" env-default:"4"` + MaxIdleTime time.Duration `toml:"max-idle-time" env-default:"4h"` + MaxLifeTime time.Duration `toml:"max-life-time" env-default:"6h"` + + SlowSQLDuration time.Duration `toml:"slow-sql-duration" env:"SLOW_SQL_DURATION"` + } `toml:"mysql"` + + HTTP struct { + Host string `toml:"host" env:"HTTP_HOST" env-default:"127.0.0.1"` + Port int `toml:"port" env:"HTTP_PORT" env-default:"3000"` + } `toml:"http"` RateLimit struct { - LimitLongTime time.Duration `yaml:"long_time" env:"RATE_LIMIT_LONG_TIME" env-default:"1h"` - LimitWindow time.Duration `yaml:"window" env:"RATE_LIMIT_WINDOW" env-default:"10m"` - LimitCount uint `yaml:"count" env:"RATE_LIMIT_COUNT" env-default:"3000"` - } `yaml:"rate_limit"` + LimitLongTime time.Duration `toml:"long-time" env:"RATE_LIMIT_LONG_TIME" env-default:"1h"` + LimitWindow time.Duration `toml:"window" env:"RATE_LIMIT_WINDOW" env-default:"10m"` + LimitCount uint `toml:"count" env:"RATE_LIMIT_COUNT" env-default:"3000"` + } `toml:"rate-limit"` - Canal struct { - Broker string `yaml:"broker"` - - KafkaBroker string `yaml:"kafka_broker" env:"KAFKA_BROKER"` - Topics []string `yaml:"topics"` - } `yaml:"canal"` + Kafka struct { + Broker string `toml:"broker" env:"KAFKA_BROKER"` + Topics []string `toml:"topics"` + } `toml:"kafka"` Search struct { MeiliSearch struct { - URL string `yaml:"url" env:"MEILISEARCH_URL"` - Key string `yaml:"key" env:"MEILISEARCH_KEY"` - Timeout time.Duration `yaml:"timeout" env:"MEILISEARCH_REQUEST_TIMEOUT" env-default:"2s"` - } `yaml:"meilisearch"` - - SearchBatchSize int `env:"SEARCH_BATCH_SIZE" yaml:"batch_size" env-default:"100"` - SearchBatchInterval time.Duration `env:"SEARCH_BATCH_INTERVAL" yaml:"batch_interval" env-default:"10m"` - } `yaml:"search"` - - NsfwWord string `yaml:"nsfw_word"` - DisableWords string `yaml:"disable_words"` - BannedDomain string `yaml:"banned_domain"` - - // a timeline microservice listen domain - SrvTimelineDomain string `yaml:"srv_timeline_domain" env:"SRV_TIMELINE_DOMAIN"` - SrvTimelinePort uint16 `yaml:"srv_timeline_port" env:"SRV_TIMELINE_PORT"` - - S3EntryPoint string `yaml:"s3_entry_point" env:"S3_ENTRY_POINT"` - S3AccessKey string `yaml:"s3_access_key" env:"S3_ACCESS_KEY"` - S3SecretKey string `yaml:"s3_secret_key" env:"S3_SECRET_KEY"` - S3ImageResizeBucket string `yaml:"s3_image_resize_bucket" env:"S3_IMAGE_RESIZE_BUCKET" env-default:"img-resize"` - - AppType string + URL string `toml:"url" env:"MEILISEARCH_URL"` + Key string `toml:"key" env:"MEILISEARCH_KEY"` + Timeout time.Duration `toml:"timeout" env:"MEILISEARCH_REQUEST_TIMEOUT" env-default:"2s"` + } `toml:"meilisearch"` + } `toml:"search"` + + NsfwWord string `toml:"nsfw-word"` + DisableWords string `toml:"disable-words"` + BannedDomain string `toml:"banned-domain"` + + S3EntryPoint string `toml:"s3-entry-point" env:"S3_ENTRY_POINT"` + S3AccessKey string `toml:"s3-access-key" env:"S3_ACCESS_KEY"` + S3SecretKey string `toml:"s3-secret-key" env:"S3_SECRET_KEY"` + S3ImageResizeBucket string `toml:"s3-image-resize-bucket" env:"S3_IMAGE_RESIZE_BUCKET" env-default:"img-resize"` + + AppType string `toml:"app-type"` } func (c AppConfig) ListenAddr() string { - return fmt.Sprintf("%s:%d", c.HTTPHost, c.HTTPPort) + return fmt.Sprintf("%s:%d", c.HTTP.Host, c.HTTP.Port) } diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index 0ed9c96fc..5e90bb067 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -56,14 +56,6 @@ func NeedFirstRun(meili meilisearch.ServiceManager, idx string) (bool, error) { } func ValidateConfigs(cfg config.AppConfig) error { - if cfg.Search.SearchBatchSize <= 0 { - return fmt.Errorf("config.SearchBatchSize should >= 0, current %d", cfg.Search.SearchBatchSize) - } - - if cfg.Search.SearchBatchInterval <= 0 { - return fmt.Errorf("config.SearchBatchInterval should >= 0, current %d", cfg.Search.SearchBatchInterval) - } - return nil } diff --git a/readme.md b/readme.md index d0722baf0..4f72a25c5 100644 --- a/readme.md +++ b/readme.md @@ -53,7 +53,7 @@ MEILISEARCH_URL="http://127.0.0.1:7700/" 或者使用 yaml 格式的配置文件: -查看 config.example.yaml 或者 [config/config.go](https://github.com/bangumi/server/blob/master/config/config.go) +查看 config.example.toml 或者 [config/config.go](https://github.com/bangumi/server/blob/master/config/config.go) ## 开发 diff --git a/taskfile.yaml b/taskfile.yaml index 6270e18b7..65e3417ee 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -36,12 +36,12 @@ tasks: web: desc: Run Web Server cmds: - - go run main.go --config config.yaml web + - go run main.go --config config.toml web consumer: desc: Run Kafka Consumer cmds: - - go run main.go canal --config config.yaml + - go run main.go canal --config config.toml openapi-test: desc: Test OpenAPI Schema From eb13cbf449072375858352f3556408d9c3111b08 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 15:00:58 +0800 Subject: [PATCH 616/888] fix: suppress client cancel error (#792) --- web/error.go | 14 +------------- web/mw/rate-limit.go | 9 ++++----- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/web/error.go b/web/error.go index fa57db47a..7808a7713 100644 --- a/web/error.go +++ b/web/error.go @@ -82,19 +82,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { } if errors.Is(err, context.Canceled) { - log.Error("request timeout", - zap.String("message", err.Error()), - zap.String("request_method", c.Request().Method), - zap.String("request_uri", c.Request().URL.Path), - zap.String("request_query", c.Request().URL.RawQuery), - zap.String("request_id", reqID), - ) - - _ = c.JSON(http.StatusInternalServerError, res.Error{ - Title: "request timeout", - Description: "request timeout", - RequestID: c.Request().Header.Get(cf.HeaderRequestID), - }) + _ = c.NoContent(http.StatusNoContent) return } diff --git a/web/mw/rate-limit.go b/web/mw/rate-limit.go index 0d9f89b7e..f733bfa62 100644 --- a/web/mw/rate-limit.go +++ b/web/mw/rate-limit.go @@ -47,15 +47,14 @@ func RateLimit(cfg config.AppConfig, r rueidis.Client) echo.MiddlewareFunc { return func(c echo.Context) error { ip := c.RealIP() - var longBanKey = "chii-rate-limit:long:3:" + ip - var rateLimitKey = "chii-rate-limit:rate:3:" + ip + var longBanKey = "chii:rate-limit:long:3:" + ip + var rateLimitKey = "chii:rate-limit:rate:3:" + ip banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, args).ToInt64() if err != nil { - if errors.Is(err, context.Canceled) { - return err + if !errors.Is(err, context.Canceled) { + logger.Error("failed to apply rate limit", zap.Error(err)) } - logger.Error("failed to apply rate limit", zap.Error(err)) return err } From b0eb59e70312ac47804a7360c711283f62119677 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 15:44:12 +0800 Subject: [PATCH 617/888] fix: let cf cache some requests (#793) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- web/handler/character/get.go | 8 ++++++++ web/handler/person/get.go | 6 ++++++ web/handler/subject/get.go | 8 ++++++++ web/res/cache-control.go | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 web/res/cache-control.go diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 8e9fde474..8252b42eb 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -18,6 +18,7 @@ import ( "errors" "net/http" "strconv" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -53,6 +54,13 @@ func (h Character) Get(c echo.Context) error { return res.ErrNotFound } + if !r.NSFW { + c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ + Public: true, + MaxAge: time.Hour, + }.String()) + } + return c.JSON(http.StatusOK, res.ConvertModelCharacter(r)) } diff --git a/web/handler/person/get.go b/web/handler/person/get.go index 8a4c7bda0..9a9f61849 100644 --- a/web/handler/person/get.go +++ b/web/handler/person/get.go @@ -18,6 +18,7 @@ import ( "errors" "net/http" "strconv" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -33,6 +34,11 @@ func (h Person) Get(c echo.Context) error { return err } + c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ + Public: true, + MaxAge: time.Hour, + }.String()) + r, err := h.person.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 78df31ef7..831ca63a6 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -18,6 +18,7 @@ import ( "errors" "fmt" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -66,6 +67,13 @@ func (h Subject) Get(c echo.Context) error { return err } + if !s.NSFW { + c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ + Public: true, + MaxAge: time.Hour, + }.String()) + } + return c.JSON(http.StatusOK, res.ToSubjectV0(s, totalEpisode, metaTags)) } diff --git a/web/res/cache-control.go b/web/res/cache-control.go new file mode 100644 index 000000000..2ece2cf6d --- /dev/null +++ b/web/res/cache-control.go @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see + +package res + +import ( + "bytes" + "fmt" + "time" +) + +type CacheControlParams struct { + Public bool + MaxAge time.Duration +} + +func (c CacheControlParams) String() string { + buf := bytes.NewBuffer(make([]byte, 0, 20)) + + _, _ = buf.WriteString("public, ") + + _, _ = fmt.Fprintf(buf, "max-age=%d", c.MaxAge/time.Second) + + return buf.String() +} From 43cdffce1a47f985a3367a973081026fca2dc67d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 18:00:16 +0800 Subject: [PATCH 618/888] fix: add cache to wiki requests (#794) --- web/handler/character/get.go | 5 +---- web/handler/character/get_related_persons.go | 3 +++ web/handler/character/get_related_subjects.go | 3 +++ web/handler/person/get.go | 9 ++++----- web/handler/person/get_related_characters.go | 5 +++++ web/handler/person/get_related_subjects.go | 3 +++ web/handler/subject/get.go | 7 +++---- web/handler/subject/related_characters.go | 2 ++ web/handler/subject/related_persons.go | 2 ++ web/handler/subject/related_subjects.go | 3 +++ web/res/cache-control.go | 6 ++++++ 11 files changed, 35 insertions(+), 13 deletions(-) diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 8252b42eb..9ea43fcbf 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -55,10 +55,7 @@ func (h Character) Get(c echo.Context) error { } if !r.NSFW { - c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ - Public: true, - MaxAge: time.Hour, - }.String()) + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) } return c.JSON(http.StatusOK, res.ConvertModelCharacter(r)) diff --git a/web/handler/character/get_related_persons.go b/web/handler/character/get_related_persons.go index d82bc8c18..ac17894b4 100644 --- a/web/handler/character/get_related_persons.go +++ b/web/handler/character/get_related_persons.go @@ -17,6 +17,7 @@ package character import ( "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -70,5 +71,7 @@ func (h Character) GetRelatedPersons(c echo.Context) error { } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + return c.JSON(http.StatusOK, response) } diff --git a/web/handler/character/get_related_subjects.go b/web/handler/character/get_related_subjects.go index ce228d015..f01da6402 100644 --- a/web/handler/character/get_related_subjects.go +++ b/web/handler/character/get_related_subjects.go @@ -18,6 +18,7 @@ import ( "context" "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -58,6 +59,8 @@ func (h Character) GetRelatedSubjects(c echo.Context) error { } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + return c.JSON(http.StatusOK, response) } diff --git a/web/handler/person/get.go b/web/handler/person/get.go index 9a9f61849..4330714c6 100644 --- a/web/handler/person/get.go +++ b/web/handler/person/get.go @@ -34,11 +34,6 @@ func (h Person) Get(c echo.Context) error { return err } - c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ - Public: true, - MaxAge: time.Hour, - }.String()) - r, err := h.person.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { @@ -48,6 +43,8 @@ func (h Person) Get(c echo.Context) error { return errgo.Wrap(err, "failed to get person") } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + if r.Redirect != 0 { return c.Redirect(http.StatusFound, "/v0/persons/"+strconv.FormatUint(uint64(r.Redirect), 10)) } @@ -75,6 +72,8 @@ func (h Person) GetImage(c echo.Context) error { return res.BadRequest("bad image type: " + c.QueryParam("type")) } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + if l == "" { return c.Redirect(http.StatusFound, res.DefaultImageURL) } diff --git a/web/handler/person/get_related_characters.go b/web/handler/person/get_related_characters.go index 60a530fb6..2d7e16942 100644 --- a/web/handler/person/get_related_characters.go +++ b/web/handler/person/get_related_characters.go @@ -18,6 +18,7 @@ import ( "context" "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -30,6 +31,7 @@ import ( "github.com/bangumi/server/web/res" ) +//nolint:funlen func (h Person) GetRelatedCharacters(c echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { @@ -39,11 +41,13 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { r, err := h.person.Get(c.Request().Context(), id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) return res.ErrNotFound } return errgo.Wrap(err, "failed to get person") } if r.Redirect != 0 { + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) return res.ErrNotFound } @@ -90,6 +94,7 @@ func (h Person) GetRelatedCharacters(c echo.Context) error { } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) return c.JSON(http.StatusOK, response) } diff --git a/web/handler/person/get_related_subjects.go b/web/handler/person/get_related_subjects.go index 89aada773..82ba10405 100644 --- a/web/handler/person/get_related_subjects.go +++ b/web/handler/person/get_related_subjects.go @@ -18,6 +18,7 @@ import ( "context" "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -68,6 +69,8 @@ func (h Person) GetRelatedSubjects(c echo.Context) error { } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + return c.JSON(http.StatusOK, response) } diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 831ca63a6..7e9c41419 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -68,10 +68,7 @@ func (h Subject) Get(c echo.Context) error { } if !s.NSFW { - c.Request().Header.Set(echo.HeaderCacheControl, res.CacheControlParams{ - Public: true, - MaxAge: time.Hour, - }.String()) + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) } return c.JSON(http.StatusOK, res.ToSubjectV0(s, totalEpisode, metaTags)) @@ -98,6 +95,8 @@ func (h Subject) GetImage(c echo.Context) error { return res.BadRequest("bad image type: " + c.QueryParam("type")) } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + if l == "" { return c.Redirect(http.StatusFound, res.DefaultImageURL) } diff --git a/web/handler/subject/related_characters.go b/web/handler/subject/related_characters.go index 23d41d6d3..f519c854d 100644 --- a/web/handler/subject/related_characters.go +++ b/web/handler/subject/related_characters.go @@ -18,6 +18,7 @@ import ( "context" "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/samber/lo" @@ -71,6 +72,7 @@ func (h Subject) GetRelatedCharacters(c echo.Context) error { ID: rel.Character.ID, } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) return c.JSON(http.StatusOK, response) } diff --git a/web/handler/subject/related_persons.go b/web/handler/subject/related_persons.go index cee74ad32..d8da0a9fc 100644 --- a/web/handler/subject/related_persons.go +++ b/web/handler/subject/related_persons.go @@ -17,6 +17,7 @@ package subject import ( "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -65,6 +66,7 @@ func (h Subject) GetRelatedPersons(c echo.Context) error { Eps: rel.Eps, } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) return c.JSON(http.StatusOK, response) } diff --git a/web/handler/subject/related_subjects.go b/web/handler/subject/related_subjects.go index 1a74e4bd8..4cfaf284b 100644 --- a/web/handler/subject/related_subjects.go +++ b/web/handler/subject/related_subjects.go @@ -18,6 +18,7 @@ import ( "context" "errors" "net/http" + "time" "github.com/labstack/echo/v4" "github.com/trim21/errgo" @@ -63,6 +64,8 @@ func (h Subject) GetRelatedSubjects(c echo.Context) error { } } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + return c.JSON(http.StatusOK, response) } diff --git a/web/res/cache-control.go b/web/res/cache-control.go index 2ece2cf6d..c5623f1b3 100644 --- a/web/res/cache-control.go +++ b/web/res/cache-control.go @@ -18,6 +18,8 @@ import ( "bytes" "fmt" "time" + + "github.com/labstack/echo/v4" ) type CacheControlParams struct { @@ -34,3 +36,7 @@ func (c CacheControlParams) String() string { return buf.String() } + +func SetCacheControl(c echo.Context, val CacheControlParams) { + c.Response().Header().Set(echo.HeaderCacheControl, val.String()) +} From d4d7c1fab73af94bbcc7c8be54b945e7bc423eaa Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 19:16:17 +0800 Subject: [PATCH 619/888] feat(archive): export subject.MetaTags (#795) --- cmd/archive/main.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 89e45dcae..ec2db2e63 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -25,6 +25,7 @@ import ( "os" "path/filepath" "sort" + "strings" "unicode/utf8" "github.com/go-sql-driver/mysql" @@ -199,6 +200,7 @@ type Subject struct { Nsfw bool `json:"nsfw"` Tags []Tag `json:"tags"` + MetaTags []string `json:"meta_tags"` Score float64 `json:"score"` ScoreDetails Score `json:"score_details"` Rank uint32 `json:"rank"` @@ -255,6 +257,17 @@ func exportSubjects(q *query.Query, w io.Writer) { encodedDate = subject.Fields.Date.Format("2006-01-02") } + var metaTags = []string{} + + for _, v := range strings.Split(subject.FieldMetaTags, " ") { + v = strings.TrimSpace(v) + if v == "" { + continue + } + + metaTags = append(metaTags, v) + } + encode(w, Subject{ ID: subject.ID, Type: subject.TypeID, @@ -266,6 +279,7 @@ func exportSubjects(q *query.Query, w io.Writer) { Nsfw: subject.Nsfw, Rank: subject.Fields.Rank, Tags: encodedTags, + MetaTags: metaTags, Score: math.Round(score*10) / 10, ScoreDetails: Score{ Field1: subject.Fields.Rate1, From 06336114e0006b140a3c8e82c5d8b21e9346e7dd Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 16 Apr 2025 19:57:23 +0800 Subject: [PATCH 620/888] refactor: cleanup old code (#796) --- internal/pkg/generic/conv.go | 22 ------------------ internal/pkg/generic/math.go | 43 ------------------------------------ web/session/manager.go | 3 +-- 3 files changed, 1 insertion(+), 67 deletions(-) delete mode 100644 internal/pkg/generic/conv.go delete mode 100644 internal/pkg/generic/math.go diff --git a/internal/pkg/generic/conv.go b/internal/pkg/generic/conv.go deleted file mode 100644 index e162f05b7..000000000 --- a/internal/pkg/generic/conv.go +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package generic - -func BtoI(b bool) int { - if b { - return 1 - } - return 0 -} diff --git a/internal/pkg/generic/math.go b/internal/pkg/generic/math.go deleted file mode 100644 index 59c00b2d7..000000000 --- a/internal/pkg/generic/math.go +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package generic - -type Number interface { - Integer | Float -} - -type Signed interface { - int8 | int16 | int32 | int64 | int -} - -type Unsigned interface { - uint8 | uint16 | uint32 | uint64 | uint -} - -type Integer interface { - Signed | Unsigned -} - -type Float interface { - float32 | float64 -} - -func Min[T Number](a, b T) T { - if a < b { - return a - } - - return b -} diff --git a/web/session/manager.go b/web/session/manager.go index 2baa71d3d..1fc22aceb 100644 --- a/web/session/manager.go +++ b/web/session/manager.go @@ -25,7 +25,6 @@ import ( "github.com/bangumi/server/internal/auth" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/cache" - "github.com/bangumi/server/internal/pkg/generic" "github.com/bangumi/server/internal/pkg/gtime" "github.com/bangumi/server/internal/pkg/random" ) @@ -93,7 +92,7 @@ func (m manager) Get(ctx context.Context, key string) (Session, error) { } // 缓存3天或缓存者到token失效 - ttl := generic.Min(gtime.OneDaySec*3, s.ExpiredAt) + ttl := min(gtime.OneDaySec*3, s.ExpiredAt) if err := m.cache.Set(ctx, redisKeyPrefix+key, s, gtime.Second(ttl)); err != nil { m.log.Panic("failed to set cache") From e84e61237e469ab5fec346d79f252749efba3d15 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 17 Apr 2025 01:42:15 +0800 Subject: [PATCH 621/888] fix: ban broken UA (#797) --- web/mw/ua/new.go | 41 +++++++++++++++++++++++++++++++++++++++++ web/new.go | 4 ++-- web/routes.go | 1 + 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/web/mw/ua/new.go b/web/mw/ua/new.go index c7aec8a3d..268cfa93e 100644 --- a/web/mw/ua/new.go +++ b/web/mw/ua/new.go @@ -15,6 +15,8 @@ package ua import ( + "regexp" + "strconv" "strings" "github.com/labstack/echo/v4" @@ -43,6 +45,45 @@ func DisableDefaultHTTPLibrary(next echo.HandlerFunc) echo.HandlerFunc { } } +// DisableBrokenUA disallow known broken app send infinite requests. +func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { + aniPattern := regexp.MustCompile(`^open-ani/ani/(\d+.\d+.\d+) .*`) + return func(c echo.Context) error { + u := c.Request().UserAgent() + if u == "" { + return res.Forbidden("Please set a 'User-Agent'") + } + + if strings.HasPrefix(u, "open-ani/ani/") { + m := aniPattern.FindStringSubmatch(u) + + if len(m) < 1 { + return res.Forbidden(banAnimeko) + } + + version := m[0] + s := strings.Split(version, ".") + + if len(s) != 3 { + return res.Forbidden(banAnimeko) + } + + major, _ := strconv.Atoi(s[0]) + minor, _ := strconv.Atoi(s[1]) + patch, _ := strconv.Atoi(s[2]) + + if major <= 4 && minor <= 8 && patch <= 1 { + return res.Forbidden(banAnimeko) + } + } + + return next(c) + } +} + +const banAnimeko = "Animeko version 4.8.1 and earlier contain a bug that causes continuous infinite requests." + + "Please update to version 4.8.2 or later to resolve this issue." + func isDefaultUA(u string) bool { for _, s := range disabledUA { if u == s { diff --git a/web/new.go b/web/new.go index ca05c9f23..85cc3c86d 100644 --- a/web/new.go +++ b/web/new.go @@ -76,6 +76,8 @@ func New(r rueidis.Client, cfg config.AppConfig) *echo.Echo { app.StaticFS("/openapi/", openapi.Static) } + app.Use(recovery.New()) + app.Use(mw.RateLimit(cfg, r)) app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { @@ -135,8 +137,6 @@ func New(r rueidis.Client, cfg config.AppConfig) *echo.Echo { } }) - app.Use(recovery.New()) - app.GET("/openapi", func(c echo.Context) error { return c.Redirect(http.StatusFound, "/openapi/") }) diff --git a/web/routes.go b/web/routes.go index aac458e3c..88cbf0f63 100644 --- a/web/routes.go +++ b/web/routes.go @@ -47,6 +47,7 @@ func AddRouters( app.GET("/", indexPage()) app.Use(ua.DisableDefaultHTTPLibrary) + app.Use(ua.DisableBrokenUA) v0 := app.Group("/v0", common.MiddlewareAccessTokenAuth) From a40d3eb7581f4bdf93ee80210933f2e97542c875 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 17 Apr 2025 02:17:41 +0800 Subject: [PATCH 622/888] fix: animeko version parse --- web/mw/ua/new.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/mw/ua/new.go b/web/mw/ua/new.go index 268cfa93e..9351ffe0c 100644 --- a/web/mw/ua/new.go +++ b/web/mw/ua/new.go @@ -57,11 +57,11 @@ func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { if strings.HasPrefix(u, "open-ani/ani/") { m := aniPattern.FindStringSubmatch(u) - if len(m) < 1 { + if len(m) < 2 { return res.Forbidden(banAnimeko) } - version := m[0] + version := m[1] s := strings.Split(version, ".") if len(s) != 3 { From da65e1e6ca24557d17e8c5fe6caaadc1e38437fe Mon Sep 17 00:00:00 2001 From: sbYm Date: Thu, 17 Apr 2025 15:06:48 +0800 Subject: [PATCH 623/888] fix: user-agent check supports Animeko-beta (#798) --- web/mw/ua/new.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/mw/ua/new.go b/web/mw/ua/new.go index 9351ffe0c..3483fd871 100644 --- a/web/mw/ua/new.go +++ b/web/mw/ua/new.go @@ -47,7 +47,7 @@ func DisableDefaultHTTPLibrary(next echo.HandlerFunc) echo.HandlerFunc { // DisableBrokenUA disallow known broken app send infinite requests. func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { - aniPattern := regexp.MustCompile(`^open-ani/ani/(\d+.\d+.\d+) .*`) + aniPattern := regexp.MustCompile(`^open-ani/ani/(\d+\.\d+\.\d+)\b`) return func(c echo.Context) error { u := c.Request().UserAgent() if u == "" { @@ -72,7 +72,7 @@ func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { minor, _ := strconv.Atoi(s[1]) patch, _ := strconv.Atoi(s[2]) - if major <= 4 && minor <= 8 && patch <= 1 { + if major < 4 || (major == 4 && minor <= 8) || (major == 4 && minor == 8 && patch <= 1) { return res.Forbidden(banAnimeko) } } From 08493958c28823116ea47ff257d2c06aa3a7b52b Mon Sep 17 00:00:00 2001 From: Him188 Date: Thu, 17 Apr 2025 11:36:36 +0100 Subject: [PATCH 624/888] fix: animeko UA check (#799) --- web/mw/ua/new.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/mw/ua/new.go b/web/mw/ua/new.go index 3483fd871..8a89797f4 100644 --- a/web/mw/ua/new.go +++ b/web/mw/ua/new.go @@ -72,7 +72,7 @@ func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { minor, _ := strconv.Atoi(s[1]) patch, _ := strconv.Atoi(s[2]) - if major < 4 || (major == 4 && minor <= 8) || (major == 4 && minor == 8 && patch <= 1) { + if major < 4 || (major == 4 && minor < 8) || (major == 4 && minor == 8 && patch <= 1) { return res.Forbidden(banAnimeko) } } From 87348efb6c2a894ab920bfc8eb9d4aad7c238e44 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 22 Apr 2025 04:02:43 +0800 Subject: [PATCH 625/888] fix: migrate variable definitions to use bangumi/common (#800) --- .github/workflows/build.yaml | 2 + .github/workflows/lint-review.yaml | 2 + .github/workflows/lint.yaml | 2 + .github/workflows/release-docker.yaml | 2 + .github/workflows/security.yaml | 2 + .gitmodules | 4 + go.mod | 1 + go.sum | 3 + package.json | 3 +- pkg/vars/common | 1 + pkg/vars/index.go | 28 +- pkg/vars/platform.go.json | 195 +++-- pkg/vars/relation.go.json | 354 --------- pkg/vars/staff.go.json | 990 -------------------------- scripts/build-buid.mjs | 11 + yarn.lock | 5 + 16 files changed, 173 insertions(+), 1432 deletions(-) create mode 160000 pkg/vars/common delete mode 100644 pkg/vars/relation.go.json delete mode 100644 pkg/vars/staff.go.json create mode 100644 scripts/build-buid.mjs diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5fca614f9..62a2df1a7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -33,6 +33,8 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - uses: trim21/actions/setup-go@master with: diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 886718204..dacad40d3 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -17,6 +17,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - name: Install Node LTS uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 5447da2b2..56255efb8 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -27,6 +27,8 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - uses: trim21/actions/setup-go@master with: diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 9aed264f8..7ab265b3a 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -20,6 +20,8 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - uses: trim21/actions/setup-go@master with: diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index df87b80dc..9cea88b26 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -26,6 +26,8 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - uses: trim21/actions/setup-go@master with: diff --git a/.gitmodules b/.gitmodules index 13cb7d9ce..96329d1eb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,7 @@ path = pkg/wiki/testdata/wiki-syntax-spec url = https://github.com/bangumi/wiki-syntax-spec.git branch = master +[submodule "pkg/vars/common"] + path = pkg/vars/common + url = https://github.com/bangumi/common + branch = master diff --git a/go.mod b/go.mod index b11bf61cd..0d42d6c2f 100644 --- a/go.mod +++ b/go.mod @@ -45,6 +45,7 @@ require ( gorm.io/gorm v1.25.12 gorm.io/plugin/dbresolver v1.5.3 gorm.io/plugin/soft_delete v1.2.1 + sigs.k8s.io/yaml v1.4.0 ) require ( diff --git a/go.sum b/go.sum index caa81c1e3..e31425e29 100644 --- a/go.sum +++ b/go.sum @@ -89,6 +89,7 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -383,3 +384,5 @@ gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/package.json b/package.json index b3b45f9d9..6fea0fc83 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.9.3", "js-yaml": "^4.1.0", - "lodash": "^4.17.21" + "lodash": "^4.17.21", + "yaml": "^2.7.1" }, "devDependencies": { "colors": "^1.4.0", diff --git a/pkg/vars/common b/pkg/vars/common new file mode 160000 index 000000000..9568390b7 --- /dev/null +++ b/pkg/vars/common @@ -0,0 +1 @@ +Subproject commit 9568390b7bfd7bdf14c662fe8f28256654ed2983 diff --git a/pkg/vars/index.go b/pkg/vars/index.go index 27554be1b..c336aeee1 100644 --- a/pkg/vars/index.go +++ b/pkg/vars/index.go @@ -23,16 +23,18 @@ import ( "fmt" "log" + "sigs.k8s.io/yaml" + "github.com/bangumi/server/internal/model" ) -//go:embed staff.go.json +//go:embed common/subject_staffs.yml var staffRaw []byte //go:embed platform.go.json var platformRaw []byte -//go:embed relation.go.json +//go:embed common/subject_relations.yml var relationRaw []byte // StaffID ... @@ -55,20 +57,28 @@ var ( //nolint:gochecknoinits func init() { - if err := json.Unmarshal(staffRaw, &StaffMap); err != nil { + if err := json.Unmarshal(platformRaw, &PlatformMap); err != nil { log.Panicln("can't unmarshal raw staff json to go type", err) } - staffRaw = nil + platformRaw = nil - if err := json.Unmarshal(platformRaw, &PlatformMap); err != nil { - log.Panicln("can't unmarshal raw platform json to go type", err) + var staffsYaml struct { + Staffs map[model.SubjectType]map[StaffID]Staff `yaml:"staffs"` } - platformRaw = nil + if err := yaml.Unmarshal(staffRaw, &staffsYaml); err != nil { + log.Panicln("can't unmarshal raw staff yaml to go type", err) + } + staffRaw = nil + StaffMap = staffsYaml.Staffs - if err := json.Unmarshal(relationRaw, &RelationMap); err != nil { - log.Panicln("can't unmarshal raw relation json to go type", err) + var relationYAML struct { + Relations map[model.SubjectType]map[RelationID]Relation `yaml:"relations"` + } + if err := yaml.Unmarshal(relationRaw, &relationYAML); err != nil { + log.Panicln("can't unmarshal raw relation yaml to go type", err) } relationRaw = nil + RelationMap = relationYAML.Relations } type Staff struct { diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index 35fd949c1..801a34ae5 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -1,169 +1,204 @@ { "1": { "0": { - "alias": "misc", "id": 0, "type": "other", "type_cn": "其他", - "wiki_tpl": "Book" + "alias": "misc", + "wiki_tpl": "Book", + "order": 6 }, "1001": { - "alias": "comic", - "enable_header": true, "id": 1001, "type": "Comic", "type_cn": "漫画", - "wiki_tpl": "Manga" + "alias": "comic", + "wiki_tpl": "Manga", + "enable_header": true, + "order": 0 }, "1002": { - "alias": "novel", - "enable_header": true, "id": 1002, "type": "Novel", "type_cn": "小说", - "wiki_tpl": "Novel" + "alias": "novel", + "wiki_tpl": "Novel", + "enable_header": true, + "order": 1 }, "1003": { - "alias": "illustration", - "enable_header": true, "id": 1003, "type": "Illustration", "type_cn": "画集", - "wiki_tpl": "Book" + "alias": "illustration", + "wiki_tpl": "Book", + "enable_header": true, + "order": 2 + }, + "1004": { + "id": 1004, + "type": "Picture", + "type_cn": "绘本", + "alias": "picture", + "wiki_tpl": "Book", + "enable_header": true, + "order": 3 + }, + "1005": { + "id": 1005, + "type": "Photo", + "type_cn": "写真", + "alias": "photo", + "wiki_tpl": "PhotoBook", + "enable_header": true, + "order": 5 + }, + "1006": { + "id": 1006, + "type": "Official", + "type_cn": "公式书", + "alias": "official", + "wiki_tpl": "Book", + "enable_header": true, + "order": 4 } }, "2": { "0": { - "alias": "misc", "id": 0, "type": "other", "type_cn": "其他", - "wiki_tpl": "Anime" + "alias": "misc", + "wiki_tpl": "Anime", + "order": 5, + "sort_keys": ["上映年度"] }, "1": { - "alias": "tv", - "enable_header": true, "id": 1, "type": "TV", "type_cn": "TV", - "wiki_tpl": "TVAnime" + "alias": "tv", + "enable_header": true, + "wiki_tpl": "TVAnime", + "order": 0, + "sort_keys": ["放送开始"] }, "2": { - "alias": "ova", - "enable_header": true, "id": 2, "type": "OVA", "type_cn": "OVA", - "wiki_tpl": "OVA" + "alias": "ova", + "enable_header": true, + "wiki_tpl": "OVA", + "order": 2, + "sort_keys": ["发售日", "发售日期"] }, "3": { - "alias": "movie", - "enable_header": true, "id": 3, "type": "movie", "type_cn": "剧场版", - "wiki_tpl": "Movie" + "alias": "movie", + "enable_header": true, + "wiki_tpl": "Movie", + "order": 3, + "sort_keys": ["上映年度", "上映日"] }, "5": { - "alias": "web", - "enable_header": true, "id": 5, "type": "web", "type_cn": "WEB", - "wiki_tpl": "TVAnime" + "alias": "web", + "enable_header": true, + "wiki_tpl": "TVAnime", + "order": 1, + "sort_keys": ["放送开始"] + }, + "2006": { + "id": 2006, + "type": "anime_comic", + "type_cn": "动态漫画", + "alias": "anime_comic", + "enable_header": true, + "wiki_tpl": "TVAnime", + "order": 4 } }, - "3": { + "4": { "0": { "id": 0, - "type": "", - "type_cn": "" - }, - "1": { - "id": 1, - "type": "TV", - "type_cn": "TV版动画" - }, - "2": { - "id": 2, - "url": "ova", - "type": "OVA", - "type_cn": "OVA" + "type": "other", + "type_cn": "其他", + "alias": "misc", + "order": 4 }, - "3": { - "id": 3, - "url": "movie", - "type": "Movie", - "type_cn": "剧场版动画" - } - }, - "4": { "4001": { "id": 4001, "type": "games", "type_cn": "游戏", "alias": "games", - "enable_header": true - }, - "4003": { - "id": 4003, - "type": "dlc", - "type_cn": "扩展包", - "alias": "dlc", - "enable_header": true + "enable_header": true, + "order": 0 }, "4002": { "id": 4002, "type": "software", "type_cn": "软件", "alias": "software", - "enable_header": true + "enable_header": true, + "order": 2 + }, + "4003": { + "id": 4003, + "type": "dlc", + "type_cn": "扩展包", + "alias": "dlc", + "enable_header": true, + "order": 1 }, "4005": { "id": 4005, "type": "tabletop", "type_cn": "桌游", "alias": "tabletop", - "enable_header": true - }, - "0": { - "id": 0, - "type": "other", - "type_cn": "其他", - "alias": "misc" + "enable_header": true, + "order": 3 } }, "6": { "0": { - "alias": "misc", "id": 0, "type": "other", "type_cn": "其他", - "wiki_tpl": "TV" + "alias": "misc", + "wiki_tpl": "TV", + "order": 7 }, "1": { - "alias": "jp", - "enable_header": true, "id": 1, "type": "jp", "type_cn": "日剧", - "wiki_tpl": "TV" + "alias": "jp", + "enable_header": true, + "wiki_tpl": "TV", + "order": 0 }, "2": { - "alias": "en", - "enable_header": true, "id": 2, "type": "en", "type_cn": "欧美剧", - "wiki_tpl": "TV" + "alias": "en", + "enable_header": true, + "wiki_tpl": "TV", + "order": 1 }, "3": { - "alias": "cn", - "enable_header": true, "id": 3, "type": "cn", "type_cn": "华语剧", - "wiki_tpl": "TV" + "alias": "cn", + "enable_header": true, + "wiki_tpl": "TV", + "order": 2 }, "6001": { "id": 6001, @@ -171,7 +206,8 @@ "type_cn": "电视剧", "alias": "tv", "enable_header": true, - "wiki_tpl": "TV" + "wiki_tpl": "TV", + "order": 3 }, "6002": { "id": 6002, @@ -179,7 +215,8 @@ "type_cn": "电影", "alias": "movie", "enable_header": true, - "wiki_tpl": "realMovie" + "wiki_tpl": "realMovie", + "order": 4 }, "6003": { "id": 6003, @@ -187,7 +224,8 @@ "type_cn": "演出", "alias": "live", "enable_header": true, - "wiki_tpl": "TV" + "wiki_tpl": "TV", + "order": 5 }, "6004": { "id": 6004, @@ -195,7 +233,8 @@ "type_cn": "综艺", "alias": "show", "enable_header": true, - "wiki_tpl": "TV" + "wiki_tpl": "TV", + "order": 6 } } } diff --git a/pkg/vars/relation.go.json b/pkg/vars/relation.go.json deleted file mode 100644 index b7904897f..000000000 --- a/pkg/vars/relation.go.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "1": { - "1": { - "cn": "改编", - "description": "同系列不同平台作品,如柯南漫画与动画版", - "en": "Adaptation", - "jp": "" - }, - "1002": { - "cn": "系列", - "description": "", - "en": "Series", - "jp": "" - }, - "1003": { - "cn": "单行本", - "description": "", - "en": "Offprint", - "jp": "" - }, - "1004": { - "cn": "画集", - "description": "", - "en": "Album", - "jp": "" - }, - "1005": { - "cn": "前传", - "description": "发生在故事之前", - "en": "Prequel", - "jp": "" - }, - "1006": { - "cn": "续集", - "description": "发生在故事之后", - "en": "Sequel", - "jp": "" - }, - "1007": { - "cn": "番外篇", - "description": "", - "en": "Side Story", - "jp": "" - }, - "1008": { - "cn": "主线故事", - "description": "", - "en": "Parent Story", - "jp": "" - }, - "1010": { - "cn": "不同版本", - "description": "", - "en": "Alternative version", - "jp": "" - }, - "1011": { - "cn": "角色出演", - "description": "相同角色,没有关联的故事", - "en": "Character", - "jp": "" - }, - "1012": { - "cn": "相同世界观", - "description": "发生在同一个世界观/时间线下,不同的出演角色", - "en": "Same setting", - "jp": "" - }, - "1013": { - "cn": "不同世界观", - "description": "相同的出演角色,不同的世界观/时间线设定", - "en": "Alternative setting", - "jp": "" - }, - "1099": { - "cn": "其他", - "description": "", - "en": "Other", - "jp": "" - } - }, - "2": { - "1": { - "cn": "改编", - "description": "同系列不同平台作品,如柯南漫画与动画版", - "en": "Adaptation", - "jp": "" - }, - "2": { - "cn": "前传", - "description": "发生在故事之前", - "en": "Prequel", - "jp": "" - }, - "3": { - "cn": "续集", - "description": "发生在故事之后", - "en": "Sequel", - "jp": "" - }, - "4": { - "cn": "总集篇", - "description": "对故事的概括版本", - "en": "Summary", - "jp": "" - }, - "5": { - "cn": "全集", - "description": "相对于剧场版/总集篇的完整故事", - "en": "Full Story", - "jp": "" - }, - "6": { - "cn": "番外篇", - "description": "", - "en": "Side Story", - "jp": "" - }, - "7": { - "cn": "角色出演", - "description": "相同角色,没有关联的故事", - "en": "Character", - "jp": "" - }, - "8": { - "cn": "相同世界观", - "description": "发生在同一个世界观/时间线下,不同的出演角色", - "en": "Same setting", - "jp": "" - }, - "9": { - "cn": "不同世界观", - "description": "相同的出演角色,不同的世界观/时间线设定", - "en": "Alternative setting", - "jp": "" - }, - "10": { - "cn": "不同演绎", - "description": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)", - "en": "Alternative version", - "jp": "" - }, - "11": { - "cn": "衍生", - "description": "如柯南与魔术快斗", - "en": "Spin-off", - "jp": "" - }, - "12": { - "cn": "主线故事", - "description": "", - "en": "Parent Story", - "jp": "" - }, - "99": { - "cn": "其他", - "description": "", - "en": "Other", - "jp": "" - } - }, - "3": { - "3001": { - "cn": "原声集", - "description": "", - "en": "OST", - "jp": "" - }, - "3002": { - "cn": "角色歌", - "description": "", - "en": "Character Song", - "jp": "" - }, - "3003": { - "cn": "片头曲", - "description": "", - "en": "Opening Song", - "jp": "" - }, - "3004": { - "cn": "片尾曲", - "description": "", - "en": "Ending Song", - "jp": "" - }, - "3005": { - "cn": "插入歌", - "description": "", - "en": "Insert Song", - "jp": "" - }, - "3006": { - "cn": "印象曲", - "description": "", - "en": "Image Song", - "jp": "" - }, - "3007": { - "cn": "广播剧", - "description": "", - "en": "Drama", - "jp": "" - }, - "3099": { - "cn": "其他", - "description": "", - "en": "Other", - "jp": "" - } - }, - "4": { - "1": { - "cn": "改编", - "description": "同系列不同平台作品,如 CLANNAD 游戏与动画版", - "en": "Adaptation", - "jp": "" - }, - "4002": { - "cn": "前传", - "description": "发生在故事之前", - "en": "Prequel", - "jp": "" - }, - "4003": { - "cn": "续集", - "description": "发生在故事之后", - "en": "Sequel", - "jp": "" - }, - "4006": { - "cn": "资料片、外传", - "description": "", - "en": "Side Story", - "jp": "" - }, - "4007": { - "cn": "角色出演", - "description": "相同角色,没有关联的故事", - "en": "Character", - "jp": "" - }, - "4008": { - "cn": "相同世界观", - "description": "发生在同一个世界观/时间线下,不同的出演角色", - "en": "Same setting", - "jp": "" - }, - "4009": { - "cn": "不同世界观", - "description": "相同的出演角色,不同的世界观/时间线设定", - "en": "Alternative setting", - "jp": "" - }, - "4010": { - "cn": "不同演绎", - "description": "相同设定、角色,不同的演绎方式", - "en": "Alternative version", - "jp": "" - }, - "4012": { - "cn": "主线故事", - "description": "", - "en": "Parent Story", - "jp": "" - }, - "4099": { - "cn": "其他", - "description": "", - "en": "Other", - "jp": "" - } - }, - "6": { - "1": { - "cn": "改编", - "description": "同系列不同平台作品,如柯南漫画与动画版", - "en": "Adaptation", - "jp": "" - }, - "2": { - "cn": "前传", - "description": "发生在故事之前", - "en": "Prequel", - "jp": "" - }, - "3": { - "cn": "续集", - "description": "发生在故事之后", - "en": "Sequel", - "jp": "" - }, - "4": { - "cn": "总集篇", - "description": "对故事的概括版本", - "en": "Summary", - "jp": "" - }, - "5": { - "cn": "全集", - "description": "相对于剧场版/总集篇的完整故事", - "en": "Full Story", - "jp": "" - }, - "6": { - "cn": "番外篇", - "description": "", - "en": "Side Story", - "jp": "" - }, - "7": { - "cn": "角色出演", - "description": "相同角色,没有关联的故事", - "en": "Character", - "jp": "" - }, - "8": { - "cn": "相同世界观", - "description": "发生在同一个世界观/时间线下,不同的出演角色", - "en": "Same setting", - "jp": "" - }, - "9": { - "cn": "不同世界观", - "description": "相同的出演角色,不同的世界观/时间线设定", - "en": "Alternative setting", - "jp": "" - }, - "10": { - "cn": "不同演绎", - "description": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)", - "en": "Alternative version", - "jp": "" - }, - "11": { - "cn": "衍生", - "description": "如柯南与魔术快斗", - "en": "Spin-off", - "jp": "" - }, - "12": { - "cn": "主线故事", - "description": "", - "en": "Parent Story", - "jp": "" - }, - "99": { - "cn": "其他", - "description": "", - "en": "Other", - "jp": "" - } - } -} diff --git a/pkg/vars/staff.go.json b/pkg/vars/staff.go.json deleted file mode 100644 index abfba3be4..000000000 --- a/pkg/vars/staff.go.json +++ /dev/null @@ -1,990 +0,0 @@ -{ - "1": { - "2001": { - "CN": "作者", - "EN": "", - "JP": "", - "RDF": "" - }, - "2002": { - "CN": "", - "EN": "", - "JP": "作画", - "RDF": "" - }, - "2003": { - "CN": "插图", - "EN": "", - "JP": "イラスト", - "RDF": "" - }, - "2004": { - "CN": "", - "EN": "", - "JP": "出版社", - "RDF": "" - }, - "2005": { - "CN": "连载杂志", - "EN": "", - "JP": "掲載誌", - "RDF": "" - }, - "2006": { - "CN": "译者", - "EN": "", - "JP": "", - "RDF": "" - }, - "2007": { - "CN": "原作", - "EN": "Original Creator/Original Work", - "JP": "", - "RDF": "" - }, - "2008": { - "CN": "客串", - "EN": "guest", - "JP": "ゲスト", - "RDF": "" - }, - "2009": { - "CN": "人物原案", - "EN": "Original Character Design", - "JP": "キャラクター原案", - "RDF": "" - }, - "2010": { - "CN": "脚本", - "EN": "", - "JP": "シナリオ", - "RDF": "" - }, - "2011": { - "CN": "文库", - "EN": "", - "JP": "文庫", - "RDF": "" - } - }, - "2": { - "1": { - "CN": "原作", - "EN": "Original Creator/Original Work", - "JP": "", - "RDF": "" - }, - "2": { - "CN": "导演", - "EN": "Director/Direction", - "JP": "監督 シリーズ監督", - "RDF": "directedBy" - }, - "3": { - "CN": "脚本", - "EN": "Script/Screenplay", - "JP": "シナリオ", - "RDF": "" - }, - "4": { - "CN": "分镜", - "EN": "Storyboard", - "JP": "コンテ ストーリーボード 画コンテ 絵コンテ", - "RDF": "" - }, - "5": { - "CN": "演出", - "EN": "Episode Director", - "JP": "", - "RDF": "" - }, - "6": { - "CN": "音乐", - "EN": "Music", - "JP": "楽曲 音楽", - "RDF": "" - }, - "7": { - "CN": "人物原案", - "EN": "Original Character Design", - "JP": "キャラ原案", - "RDF": "" - }, - "8": { - "CN": "人物设定", - "EN": "Character Design", - "JP": "キャラ設定", - "RDF": "" - }, - "9": { - "CN": "分镜构图", - "EN": "Layout", - "JP": "レイアウト", - "RDF": "" - }, - "10": { - "CN": "系列构成", - "EN": "Series Composition", - "JP": "シナリオディレクター 構成 シリーズ構成 脚本構成", - "RDF": "" - }, - "11": { - "CN": "美术监督", - "EN": "Art Direction", - "JP": "アートディレクション 背景監督", - "RDF": "" - }, - "13": { - "CN": "色彩设计", - "EN": "Color Design", - "JP": "色彩設定", - "RDF": "" - }, - "14": { - "CN": "总作画监督", - "EN": "Chief Animation Director", - "JP": "チーフ作画監督", - "RDF": "" - }, - "15": { - "CN": "作画监督", - "EN": "Animation Direction", - "JP": "作監 アニメーション演出", - "RDF": "" - }, - "16": { - "CN": "机械设定", - "EN": "Mechanical Design", - "JP": "メカニック設定", - "RDF": "" - }, - "17": { - "CN": "摄影监督", - "EN": "Director of Photography", - "JP": "撮影監督", - "RDF": "" - }, - "18": { - "CN": "监修", - "EN": "Supervision/Supervisor", - "JP": "シリーズ監修 スーパーバイザー", - "RDF": "" - }, - "19": { - "CN": "道具设计", - "EN": "Prop Design", - "JP": "プロップデザイン", - "RDF": "" - }, - "20": { - "CN": "原画", - "EN": "Key Animation", - "JP": "作画 原画", - "RDF": "" - }, - "21": { - "CN": "第二原画", - "EN": "2nd Key Animation", - "JP": "原画協力", - "RDF": "" - }, - "22": { - "CN": "动画检查", - "EN": "Animation Check", - "JP": "動画チェック", - "RDF": "" - }, - "23": { - "CN": "助理制片人", - "EN": "Assistant Producer", - "JP": "協力プロデューサー", - "RDF": "" - }, - "24": { - "CN": "", - "EN": "Associate Producer", - "JP": "アソシエイトプロデューサー", - "RDF": "" - }, - "25": { - "CN": "背景美术", - "EN": "Background Art", - "JP": "背景", - "RDF": "" - }, - "26": { - "CN": "色彩指定", - "EN": "Color Setting", - "JP": "", - "RDF": "" - }, - "27": { - "CN": "数码绘图", - "EN": "Digital Paint", - "JP": "", - "RDF": "" - }, - "28": { - "CN": "剪辑", - "EN": "Editing", - "JP": "編集", - "RDF": "" - }, - "29": { - "CN": "原案", - "EN": "Original Plan", - "JP": "", - "RDF": "" - }, - "30": { - "CN": "主题歌编曲", - "EN": "Theme Song Arrangement", - "JP": "", - "RDF": "" - }, - "31": { - "CN": "主题歌作曲", - "EN": "Theme Song Composition", - "JP": "", - "RDF": "" - }, - "32": { - "CN": "主题歌作词", - "EN": "Theme Song Lyrics", - "JP": "", - "RDF": "" - }, - "33": { - "CN": "主题歌演出", - "EN": "Theme Song Performance", - "JP": "", - "RDF": "" - }, - "34": { - "CN": "插入歌演出", - "EN": "Inserted Song Performance", - "JP": "", - "RDF": "" - }, - "35": { - "CN": "企画", - "EN": "Planning", - "JP": "プランニング 企画開発", - "RDF": "" - }, - "36": { - "CN": "", - "EN": "Planning Producer", - "JP": "企画プロデューサー 企画営業プロデューサー", - "RDF": "" - }, - "37": { - "CN": "制作管理", - "EN": "Production Manager", - "JP": "制作マネージャー 制作担当 制作班長", - "RDF": "" - }, - "38": { - "CN": "宣传", - "EN": "Publicity", - "JP": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", - "RDF": "" - }, - "39": { - "CN": "录音", - "EN": "Recording", - "JP": "録音", - "RDF": "" - }, - "40": { - "CN": "录音助理", - "EN": "Recording Assistant", - "JP": "録音アシスタント 録音助手", - "RDF": "" - }, - "41": { - "CN": "系列监督", - "EN": "Series Production Director", - "JP": "", - "RDF": "" - }, - "42": { - "CN": "製作", - "EN": "Production", - "JP": "", - "RDF": "" - }, - "43": { - "CN": "设定", - "EN": "Setting", - "JP": "設定", - "RDF": "" - }, - "44": { - "CN": "音响监督", - "EN": "Sound Director", - "JP": "", - "RDF": "" - }, - "45": { - "CN": "音响", - "EN": "Sound", - "JP": "音響", - "RDF": "" - }, - "46": { - "CN": "音效", - "EN": "Sound Effects", - "JP": "音響効果", - "RDF": "" - }, - "47": { - "CN": "特效", - "EN": "Special Effects", - "JP": "視覚効果", - "RDF": "" - }, - "48": { - "CN": "配音监督", - "EN": "ADR Director", - "JP": "", - "RDF": "" - }, - "49": { - "CN": "联合导演", - "EN": "Co-Director", - "JP": "", - "RDF": "" - }, - "50": { - "CN": "背景设定", - "EN": "Setting", - "JP": "基本設定 場面設定 場面設計 設定", - "RDF": "" - }, - "51": { - "CN": "补间动画", - "EN": "In-Between Animation", - "JP": "動画", - "RDF": "" - }, - "52": { - "CN": "执行制片人", - "EN": "Executive Producer", - "JP": "製作総指揮", - "RDF": "" - }, - "53": { - "CN": "助理制片人", - "EN": "Assistant Producer", - "JP": "協力プロデューサー", - "RDF": "" - }, - "54": { - "CN": "制片人", - "EN": "Producer", - "JP": "プロデュース プロデューサー", - "RDF": "" - }, - "55": { - "CN": "助理录音师", - "EN": "Assistant Engineer", - "JP": "", - "RDF": "" - }, - "56": { - "CN": "助理制片协调", - "EN": "Assistant Production Coordinat", - "JP": "", - "RDF": "" - }, - "57": { - "CN": "演员监督", - "EN": "Casting Director", - "JP": "キャスティングコーディネーター監督", - "RDF": "" - }, - "58": { - "CN": "总制片", - "EN": "Chief Producer", - "JP": "チーフプロデューサー チーフ制作 総合プロデューサー", - "RDF": "" - }, - "59": { - "CN": "联合制片人", - "EN": "Co-Producer", - "JP": "", - "RDF": "" - }, - "60": { - "CN": "台词编辑", - "EN": "Dialogue Editing", - "JP": "台詞編集", - "RDF": "" - }, - "61": { - "CN": "后期制片协调", - "EN": "Post-Production Assistant", - "JP": "ポストプロダクション協力", - "RDF": "" - }, - "62": { - "CN": "制作助手", - "EN": "Production Assistant", - "JP": "制作アシスタント 制作補佐 製作補", - "RDF": "" - }, - "63": { - "CN": "制作", - "EN": "Production", - "JP": "製作 製作スタジオ", - "RDF": "" - }, - "64": { - "CN": "制作协调", - "EN": "Production Coordination", - "JP": "制作コーディネーター", - "RDF": "" - }, - "65": { - "CN": "音乐制作", - "EN": "Music Work", - "JP": "楽曲制作 音楽制作", - "RDF": "" - }, - "66": { - "CN": "友情協力", - "EN": "Special Thanks", - "JP": "特别鸣谢", - "RDF": "" - }, - "67": { - "CN": "动画制作", - "EN": "Animation Work", - "JP": "アニメーション制作 アニメ制作 アニメーション", - "RDF": "" - }, - "69": { - "CN": "CG 导演", - "EN": "CG Director", - "JP": "CG 監督", - "RDF": "" - }, - "70": { - "CN": "机械作画监督", - "EN": "Mechanical Animation Direction", - "JP": "メカニック作監", - "RDF": "" - }, - "71": { - "CN": "美术设计", - "EN": "Art Design", - "JP": "美術設定", - "RDF": "" - }, - "72": { - "CN": "副导演", - "EN": "Assistant director", - "JP": "助監督", - "RDF": "" - }, - "73": { - "CN": "OP・ED 分镜", - "EN": "OP ED", - "JP": "OP・ED 分鏡", - "RDF": "" - }, - "74": { - "CN": "总导演", - "EN": "Chief Director", - "JP": "総監督", - "RDF": "" - }, - "75": { - "CN": "3DCG", - "EN": "3DCG", - "JP": "", - "RDF": "" - }, - "76": { - "CN": "制作协力", - "EN": "Work Assistance", - "JP": "制作協力 / 作品協力", - "RDF": "" - }, - "77": { - "CN": "动作作画监督", - "EN": "Action Animation Direction", - "JP": "アクション作画監督", - "RDF": "" - }, - "80": { - "cn": "监制", - "jp": "", - "en": "Supervising Producer" - }, - "81": { - "en": "Assistance", - "cn": "协力", - "jp": "協力" - }, - "82": { - "en": "Photography", - "cn": "摄影", - "jp": "撮影" - }, - "83": { - "en": "Assistant Production Manager Assistance", - "cn": "制作进行协力", - "jp": "制作進行協力" - }, - "84": { - "en": "Design Manager", - "cn": "设定制作", - "jp": "設定制作 制作設定", - "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" - }, - "85": { - "en": "Music Producer", - "cn": "音乐制作人", - "jp": "音楽プロデューサー" - }, - "86": { - "en": "3DCG Director", - "cn": "3DCG 导演", - "jp": "3DCG 監督" - }, - "87": { - "en": "Animation Producer", - "cn": "动画制片人", - "jp": "アニメプロデューサー アニメーションプロデューサー" - }, - "88": { - "en": "Special Effects Animation Direction", - "cn": "特效作画监督", - "jp": "エフェクト作画監督" - }, - "89": { - "en": "Chief Episode Direction", - "cn": "主演出", - "jp": "チーフ演出" - }, - "90": { - "en": "Assistant Animation Direction", - "cn": "作画监督助理", - "jp": "作画監督補佐" - }, - "91": { - "en": "Assistant Episode Direction", - "cn": "演出助理", - "jp": "演出助手 演出補佐 演出協力" - }, - "92": { - "en": "Main Animator", - "cn": "主动画师", - "jp": "メインアニメーター" - } - }, - "3": { - "3001": { - "CN": "艺术家", - "EN": "", - "JP": "", - "RDF": "" - }, - "3002": { - "CN": "制作人", - "EN": "", - "JP": "", - "RDF": "" - }, - "3003": { - "CN": "作曲", - "EN": "", - "JP": "", - "RDF": "" - }, - "3004": { - "CN": "厂牌", - "EN": "Label", - "JP": "レーベル", - "RDF": "" - }, - "3005": { - "CN": "原作", - "EN": "Original Creator/Original Work", - "JP": "", - "RDF": "" - }, - "3006": { - "CN": "作词", - "EN": "Lyric", - "JP": "", - "RDF": "" - }, - "3007": { - "CN": "录音", - "EN": "", - "JP": "", - "RDF": "" - }, - "3008": { - "CN": "编曲", - "EN": "Arrange", - "JP": "", - "RDF": "" - }, - "3009": { - "CN": "插图", - "EN": "", - "JP": "", - "RDF": "" - }, - "3010": { - "CN": "脚本", - "EN": "Scenario", - "JP": "シナリオ", - "RDF": "" - }, - "3011": { - "CN": "出版方", - "EN": "O.P.", - "JP": "音楽出版社", - "RDF": "" - }, - "3012": { - "CN": "母带制作", - "EN": "Mastering", - "JP": "", - "RDF": "" - }, - "3013": { - "CN": "混音", - "EN": "Mixing", - "JP": "", - "RDF": "" - }, - "3014": { - "CN": "乐器", - "EN": "Instrument", - "JP": "", - "RDF": "" - }, - "3015": { - "CN": "声乐", - "EN": "Vocal", - "JP": "", - "RDF": "" - } - }, - "4": { - "1001": { - "CN": "开发", - "EN": "developer", - "JP": "開発元", - "RDF": "" - }, - "1002": { - "CN": "发行", - "EN": "publisher", - "JP": "発売元", - "RDF": "" - }, - "1003": { - "CN": "遊戲設計師", - "EN": "game designer", - "JP": "ゲームクリエイター", - "RDF": "" - }, - "1004": { - "CN": "剧本", - "EN": "", - "JP": "腳本", - "RDF": "" - }, - "1005": { - "CN": "美工", - "EN": "", - "JP": "美術", - "RDF": "" - }, - "1006": { - "CN": "音乐", - "EN": "", - "JP": "音楽", - "RDF": "" - }, - "1007": { - "CN": "关卡设计", - "EN": "", - "JP": "", - "RDF": "" - }, - "1008": { - "CN": "人物设定", - "EN": "Character Design", - "JP": "キャラ設定 キャラクターデザイン", - "RDF": "" - }, - "1009": { - "CN": "主题歌作曲", - "EN": "Theme Song Composition", - "JP": "", - "RDF": "" - }, - "1010": { - "CN": "主题歌作词", - "EN": "Theme Song Lyrics", - "JP": "", - "RDF": "" - }, - "1011": { - "CN": "主题歌演出", - "EN": "Theme Song Performance", - "JP": "", - "RDF": "" - }, - "1012": { - "CN": "插入歌演出", - "EN": "Inserted Song Performance", - "JP": "", - "RDF": "" - }, - "1013": { - "CN": "原画", - "EN": "", - "JP": "", - "RDF": "" - }, - "1014": { - "CN": "动画制作", - "EN": "Animation Work", - "JP": "アニメーション制作 アニメ制作 アニメーション", - "RDF": "" - }, - "1015": { - "CN": "原作", - "EN": "", - "JP": "", - "RDF": "" - }, - "1016": { - "CN": "导演", - "EN": "Director/Direction", - "JP": "監督 演出 シリーズ監督", - "RDF": "" - }, - "1017": { - "CN": "动画监督", - "EN": "", - "JP": "アニメーション監督", - "RDF": "" - }, - "1018": { - "CN": "制作总指挥", - "EN": "", - "JP": "", - "RDF": "" - }, - "1019": { - "CN": "QC", - "EN": "QC", - "JP": "", - "RDF": "" - }, - "1020": { - "CN": "动画剧本", - "EN": "", - "JP": "アニメーション脚本", - "RDF": "" - }, - "1021": { - "CN": "程序", - "EN": "Program", - "JP": "プログラム", - "RDF": "" - }, - "1022": { - "CN": "协力", - "EN": "", - "JP": "協力", - "RDF": "" - }, - "1023": { - "CN": "CG监修", - "EN": "", - "JP": "CG監修", - "RDF": "" - }, - "1024": { - "CN": "SD原画", - "EN": "", - "JP": "", - "RDF": "" - }, - "1025": { - "CN": "背景", - "EN": "", - "JP": "", - "RDF": "" - }, - "1026": { - "CN": "监修", - "EN": "", - "JP": "監修", - "RDF": "" - }, - "1027": { - "CN": "系列构成", - "EN": "", - "JP": "シリーズ構成", - "RDF": "" - }, - "1028": { - "CN": "企画", - "EN": "", - "JP": "", - "RDF": "" - }, - "1029": { - "CN": "机械设定", - "EN": "Mechanical Design", - "JP": "メカニック設定", - "RDF": "" - }, - "1030": { - "CN": "音响监督", - "EN": "Sound Director", - "JP": "", - "RDF": "" - }, - "1031": { - "CN": "作画监督", - "EN": "", - "JP": "作画監督", - "RDF": "" - }, - "1032": { - "CN": "制作人", - "EN": "Producer", - "JP": "プロデューサー", - "RDF": "" - } - }, - "6": { - "4001": { - "CN": "原作", - "EN": "creator", - "JP": "", - "RDF": "" - }, - "4002": { - "CN": "导演", - "EN": "director", - "JP": "", - "RDF": "" - }, - "4003": { - "CN": "编剧", - "EN": "writer", - "JP": "", - "RDF": "" - }, - "4004": { - "CN": "音乐", - "EN": "composer", - "JP": "", - "RDF": "" - }, - "4005": { - "CN": "执行制片人", - "EN": "executive producer", - "JP": "製作総指揮", - "RDF": "" - }, - "4006": { - "CN": "共同执行制作", - "EN": "co exec ", - "JP": "", - "RDF": "" - }, - "4007": { - "CN": "制片人/制作人", - "EN": "producer", - "JP": "プロデューサー", - "RDF": "" - }, - "4008": { - "CN": "监制", - "EN": "supervising producer", - "JP": "", - "RDF": "" - }, - "4009": { - "CN": "副制作人/制作顾问", - "EN": "consulting producer", - "JP": "", - "RDF": "" - }, - "4010": { - "CN": "故事", - "EN": "story", - "JP": "", - "RDF": "" - }, - "4011": { - "CN": "编审", - "EN": "story editor", - "JP": "", - "RDF": "" - }, - "4012": { - "CN": "剪辑", - "EN": "editor", - "JP": "", - "RDF": "" - }, - "4013": { - "CN": "创意总监", - "EN": "creative director", - "JP": "", - "RDF": "" - }, - "4014": { - "CN": "摄影", - "EN": "cinematography", - "JP": "", - "RDF": "" - }, - "4015": { - "CN": "主题歌演出", - "EN": "Theme Song Performance", - "JP": "", - "RDF": "" - }, - "4016": { - "CN": "主演", - "EN": "Actor", - "JP": "", - "RDF": "" - }, - "4017": { - "CN": "配角", - "EN": "Supporting Actor", - "JP": "", - "RDF": "" - }, - "4018": { - "CN": "制作", - "EN": "Production", - "JP": "製作 製作スタジオ", - "RDF": "" - }, - "4019": { - "CN": "出品", - "EN": "", - "JP": "配給", - "RDF": "" - } - } -} diff --git a/scripts/build-buid.mjs b/scripts/build-buid.mjs new file mode 100644 index 000000000..62c34470d --- /dev/null +++ b/scripts/build-buid.mjs @@ -0,0 +1,11 @@ +import * as path from "node:path"; +import * as fs from "node:fs"; + +import * as yaml from "yaml"; + +const data = yaml.parse(fs.readFileSync("pkg/vars/common/subject_platforms.yml", "utf-8")); + +fs.writeFileSync( + "pkg/vars/platform.go.json", + JSON.stringify(Object.fromEntries(Object.entries(data.platforms).filter(([key, value]) => /\d/.test(key))), null, 2), +); diff --git a/yarn.lock b/yarn.lock index 01926f02d..c52d6fa12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -263,6 +263,11 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6" + integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From 6df98d501a67b78365ddc314c65a7cec4b4d014b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 22 Apr 2025 18:50:04 +0800 Subject: [PATCH 626/888] refactor: move wiki-parser to separated package (#801) --- .gitmodules | 4 - go.mod | 3 +- go.sum | 2 + internal/pkg/compat/wiki.go | 2 +- internal/pkg/compat/wiki_internal_test.go | 3 +- internal/search/character/doc.go | 3 +- internal/search/person/doc.go | 3 +- internal/search/searcher/client.go | 2 +- internal/search/subject/doc.go | 3 +- internal/search/subject/handle.go | 2 +- pkg/readme.md | 7 - pkg/wiki/bench_test.go | 293 ---------------------- pkg/wiki/error.go | 44 ---- pkg/wiki/parser.go | 210 ---------------- pkg/wiki/parser_internal_test.go | 51 ---- pkg/wiki/parser_test.go | 195 -------------- pkg/wiki/spec_test.go | 142 ----------- pkg/wiki/strings.go | 57 ----- pkg/wiki/testdata/wiki-syntax-spec | 1 - pkg/wiki/type.go | 70 ------ pkg/wiki/type_test.go | 61 ----- web/handler/index/util.go | 3 +- web/res/character.go | 3 +- web/res/person.go | 3 +- web/res/subject.go | 2 +- 25 files changed, 21 insertions(+), 1148 deletions(-) delete mode 100644 pkg/readme.md delete mode 100644 pkg/wiki/bench_test.go delete mode 100644 pkg/wiki/error.go delete mode 100644 pkg/wiki/parser.go delete mode 100644 pkg/wiki/parser_internal_test.go delete mode 100644 pkg/wiki/parser_test.go delete mode 100644 pkg/wiki/spec_test.go delete mode 100644 pkg/wiki/strings.go delete mode 160000 pkg/wiki/testdata/wiki-syntax-spec delete mode 100644 pkg/wiki/type.go delete mode 100644 pkg/wiki/type_test.go diff --git a/.gitmodules b/.gitmodules index 96329d1eb..3e704cf18 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,3 @@ -[submodule "pkg/wiki/testdata/wiki-syntax-spec"] - path = pkg/wiki/testdata/wiki-syntax-spec - url = https://github.com/bangumi/wiki-syntax-spec.git - branch = master [submodule "pkg/vars/common"] path = pkg/vars/common url = https://github.com/bangumi/common diff --git a/go.mod b/go.mod index 0d42d6c2f..8d41e9dc6 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.67 github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 + github.com/bangumi/wiki-parser-go v0.0.1 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 @@ -39,7 +40,6 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/sync v0.13.0 golang.org/x/text v0.24.0 - gopkg.in/yaml.v3 v3.0.1 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 gorm.io/gorm v1.25.12 @@ -126,6 +126,7 @@ require ( golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.32.0 // indirect google.golang.org/protobuf v1.36.5 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.2 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect diff --git a/go.sum b/go.sum index e31425e29..442f05b87 100644 --- a/go.sum +++ b/go.sum @@ -31,6 +31,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 h1:tWUG+4wZqdMl/znThEk9tcCy8tTMx github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/bangumi/wiki-parser-go v0.0.1 h1:eoGCRqdetSRxLLCjbfNreA8iX/mmFQeGziwQOnIQCR0= +github.com/bangumi/wiki-parser-go v0.0.1/go.mod h1:oMECVeT5cRBlYR3RuQ7nmInxBTBMN87xmxd1aYWkEBA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= diff --git a/internal/pkg/compat/wiki.go b/internal/pkg/compat/wiki.go index 9cf17176e..c1497315f 100644 --- a/internal/pkg/compat/wiki.go +++ b/internal/pkg/compat/wiki.go @@ -15,7 +15,7 @@ package compat import ( - "github.com/bangumi/server/pkg/wiki" + wiki "github.com/bangumi/wiki-parser-go" ) func V0Wiki(s wiki.Wiki) []any { diff --git a/internal/pkg/compat/wiki_internal_test.go b/internal/pkg/compat/wiki_internal_test.go index c56279af2..b7b1316ff 100644 --- a/internal/pkg/compat/wiki_internal_test.go +++ b/internal/pkg/compat/wiki_internal_test.go @@ -17,9 +17,8 @@ package compat import ( "testing" + wiki "github.com/bangumi/wiki-parser-go" "github.com/stretchr/testify/require" - - "github.com/bangumi/server/pkg/wiki" ) func TestCompat_v0wiki(t *testing.T) { diff --git a/internal/search/character/doc.go b/internal/search/character/doc.go index 1e1a23de8..7a732aeea 100644 --- a/internal/search/character/doc.go +++ b/internal/search/character/doc.go @@ -3,9 +3,10 @@ package character import ( "strconv" + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/search/searcher" - "github.com/bangumi/server/pkg/wiki" ) type document struct { diff --git a/internal/search/person/doc.go b/internal/search/person/doc.go index c19e3a7ef..e5141dfd4 100644 --- a/internal/search/person/doc.go +++ b/internal/search/person/doc.go @@ -3,9 +3,10 @@ package person import ( "strconv" + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/search/searcher" - "github.com/bangumi/server/pkg/wiki" ) type document struct { diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index 5e90bb067..e0ed22c30 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -10,6 +10,7 @@ import ( "time" "github.com/avast/retry-go/v4" + wiki "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" @@ -18,7 +19,6 @@ import ( "go.uber.org/zap" "github.com/bangumi/server/config" - "github.com/bangumi/server/pkg/wiki" ) type Searcher interface { diff --git a/internal/search/subject/doc.go b/internal/search/subject/doc.go index ec7b083a4..24fa423a4 100644 --- a/internal/search/subject/doc.go +++ b/internal/search/subject/doc.go @@ -18,9 +18,10 @@ import ( "strconv" "strings" + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/search/searcher" - "github.com/bangumi/server/pkg/wiki" ) // 最终 meilisearch 索引的文档. diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index 2dc06393e..ba3242988 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -22,6 +22,7 @@ import ( "strconv" "strings" + wiki "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" @@ -33,7 +34,6 @@ import ( "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" "github.com/bangumi/server/internal/tag" - "github.com/bangumi/server/pkg/wiki" "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/res" diff --git a/pkg/readme.md b/pkg/readme.md deleted file mode 100644 index 561725056..000000000 --- a/pkg/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# public packages - -- `github.com/bangumi/server/pkg/wiki` wiki 解析 - -- `github.com/bangumi/server/pkg/duration` 解析时长 - -- `github.com/bangumi/server/pkg/vars` 一些预定义的常量,staff,relation 等 diff --git a/pkg/wiki/bench_test.go b/pkg/wiki/bench_test.go deleted file mode 100644 index 98e6bd144..000000000 --- a/pkg/wiki/bench_test.go +++ /dev/null @@ -1,293 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki_test - -import ( - "runtime" - "testing" - - "github.com/stretchr/testify/require" - - "github.com/bangumi/server/pkg/wiki" -) - -const large = ` {{Infobox animanga/TVAnime -|中文名= 潜行吧!奈亚子W -|别名={ -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -} -|话数= 12 -|放送开始= 2013年4月7日 -|放送星期= -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|别名={ -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -} -| 播放结束 = 2013年6月30日 -| 播放结束 = 2013年6月30日 -| 播放结束= 2013年6月30日 - -|播放结束= 2013年6月30日 -|别名={ - - -[2013年6月30日] - - -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] - -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -} -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 - - - - - - - - - - - - - -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|别名={ -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[ 2013年6月30日] -} -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|其他= -|Copyright= -|原作= 逢空万太 -|导演= 長澤剛 -|人物设定= 滝山真哲 -}} ` + "\t" - -const medium = ` {{Infobox animanga/TVAnime -|中文名= 潜行吧!奈亚子W -|别名={ -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -} -|话数= 12 -|放送开始= 2013年4月7日 -|放送星期= -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|别名={ -[1|2013年6月30日] -[2|2013年6月30日] -[3|2013年6月30日] -[4|2013年6月30日] -[4|2013年6月30日] -[4|2013年6月30日] -[4|2013年6月30日] -} -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|其他= -|Copyright= -|原作= 逢空万太 -|导演= 長澤剛 -|人物设定= 滝山真哲 -}} ` + "\t" - -const small = ` {{Infobox animanga/TVAnime -|中文名= 潜行吧!奈亚子W -|别名={ -[2013年6月30日] -} -|话数= 12 -|别名={ -[1|2013年6月30日] -} -|播放结束= 2013年6月30日 -|其他= -|Copyright= -}} ` + "\t" - -func BenchmarkParse_large(b *testing.B) { - var w wiki.Wiki - for i := 0; i < b.N; i++ { - w, _ = wiki.Parse(large) - } - runtime.KeepAlive(w) -} - -func BenchmarkParse_medium(b *testing.B) { - var w wiki.Wiki - for i := 0; i < b.N; i++ { - w, _ = wiki.Parse(medium) - } - runtime.KeepAlive(w) -} - -func BenchmarkParse_small(b *testing.B) { - var w wiki.Wiki - for i := 0; i < b.N; i++ { - w, _ = wiki.Parse(small) - } - runtime.KeepAlive(w) -} - -func BenchmarkWiki_NonZero(b *testing.B) { - var w, err = wiki.Parse(benchNonZeroInput) - require.NoError(b, err) - - var r wiki.Wiki - for i := 0; i < b.N; i++ { - r = w.NonZero() - } - runtime.KeepAlive(r) -} - -const benchNonZeroInput = ` {{Infobox animanga/TVAnime -|中文名= 潜行吧!奈亚子W -|别名={ -} -|话数= 12 -|放送开始= 2013年4月7日 -|放送星期= -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= -|播放结束= -|播放结束= -|播放结束= 2013年6月30日 -|别名={ -[] -[2013年6月30日] -[2013年6月30日] -[] -[2013年6月30日] -[2013年6月30日] -[] -[2013年6月30日] -[2013年6月30日] -} -| 播放结束 = 2013年6月30日 -| 播放结束 = 2013年6月30日 -| 播放结束= 2013年6月30日 -| 播放结束= 2013年6月30日 -| 播放结束= - -|播放结束= 2013年6月30日 -|别名={ - - -[2013年6月30日] - - -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] - -[2013年6月30日] -[2013年6月30日] -[] -[2013年6月30日] -[] -} -|播放结束= 2013年6月30日 -| 播放结束= -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 - - - - - - - - - - - - - -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -| 播放结束= -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|别名={ -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[2013年6月30日] -[ 2013年6月30日] -} -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|播放结束= 2013年6月30日 -|其他= -|Copyright= -|原作= 逢空万太 -|导演= 長澤剛 -|人物设定= 滝山真哲 -}} ` + "\t" diff --git a/pkg/wiki/error.go b/pkg/wiki/error.go deleted file mode 100644 index ad645b244..000000000 --- a/pkg/wiki/error.go +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki - -import "strconv" - -var _ interface { - Error() string - Unwrap() error -} = (*SyntaxError)(nil) - -type SyntaxError struct { - Err error - Line string - Lino int -} - -func (p *SyntaxError) Error() string { - return p.Err.Error() + " line: " + strconv.Itoa(p.Lino) + " " + strconv.Quote(p.Line) -} - -func (p *SyntaxError) Unwrap() error { - return p.Err -} - -func wrapError(err error, lino int, line string) error { - return &SyntaxError{ - Line: line, - Lino: lino, - Err: err, - } -} diff --git a/pkg/wiki/parser.go b/pkg/wiki/parser.go deleted file mode 100644 index d65f4e20c..000000000 --- a/pkg/wiki/parser.go +++ /dev/null @@ -1,210 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki - -import ( - "errors" - "fmt" - "strings" - - "github.com/bangumi/server/internal/pkg/generic/slice" -) - -var ( - ErrWikiSyntax = errors.New("invalid wiki syntax") - ErrGlobalPrefix = fmt.Errorf("%w: missing prefix '{{Infobox' at the start", ErrWikiSyntax) - ErrGlobalSuffix = fmt.Errorf("%w: missing '}}' at the end", ErrWikiSyntax) - ErrArrayNoClose = fmt.Errorf("%w: array should be closed by '}'", ErrWikiSyntax) - ErrArrayItemWrapped = fmt.Errorf("%w: array item should be wrapped by '[]'", ErrWikiSyntax) - ErrExpectingNewField = fmt.Errorf("%w: missing '|' to start a new field", ErrWikiSyntax) - ErrExpectingSignEqual = fmt.Errorf("%w: missing '=' to separate field name and value", ErrWikiSyntax) -) - -// ParseOmitError try to parse a string as wiki, omitting error. -func ParseOmitError(s string) Wiki { - w, err := Parse(s) - if err != nil { - return Wiki{} - } - - return w -} - -const prefix = "{{Infobox" -const suffix = "}}" - -//nolint:funlen,gocognit,gocyclo -func Parse(s string) (Wiki, error) { - var w = Wiki{} - s, lineOffset := processInput(s) - if s == "" { - return w, nil - } - - if !strings.HasPrefix(s, prefix) { - return Wiki{}, ErrGlobalPrefix - } - - eolCount := strings.Count(s, "\n") - - if !strings.HasSuffix(s, suffix) { - return Wiki{}, ErrGlobalSuffix - } - - w.Type = readType(s) - w.Fields = make([]Field, 0) // make zero value in json '[]', no alloc with cap 0 - - if eolCount <= 1 { - return w, nil - } - - w.Fields = make([]Field, 0, eolCount-1) - // pre-alloc for all items. - var itemContainer = make([]Item, 0, eolCount-2) - - // loop state - var inArray = false - var currentField Field - - // variable to loop line - var firstEOL = strings.IndexByte(s, '\n') // skip first line - var secondLastEOL = 0 - var lastEOL = firstEOL + 1 - var lino = lineOffset - 1 // current line number - var offset int - var line string - for { - // fast iter lines without alloc - offset = strings.IndexByte(s[lastEOL:], '\n') - if offset != -1 { - line = s[lastEOL : lastEOL+offset] - secondLastEOL = lastEOL - lastEOL = lastEOL + offset + 1 - lino++ - } else { - // can't find next line - if inArray { - // array should be close have read all contents - return Wiki{}, wrapError(ErrArrayNoClose, lino+1, s[secondLastEOL:lastEOL]) - } - - break - } - - // now handle line content - line = trimSpace(line) - if line == "" { - continue - } - - if line[0] == '|' { - // new field - currentField = Field{} - if inArray { - return Wiki{}, wrapError(ErrArrayNoClose, lino, line) - } - - key, value, err := readStartLine(trimLeftSpace(line[1:])) // read "key = value" - if err != nil { - return Wiki{}, wrapError(err, lino, line) - } - - switch value { - case "": - w.Fields = append(w.Fields, Field{Key: key, Null: true}) - - continue - case "{": - inArray = true - currentField.Key = key - currentField.Array = true - - continue - } - - w.Fields = append(w.Fields, Field{Key: key, Value: value}) - - continue - } - - if inArray { - if line == "}" { // close array - inArray = false - currentField.Values = slice.Clone(itemContainer) - itemContainer = itemContainer[:0] - w.Fields = append(w.Fields, currentField) - - continue - } - // array item - key, value, err := readArrayItem(line) - if err != nil { - return Wiki{}, wrapError(err, lino, line) - } - itemContainer = append(itemContainer, Item{ - Key: key, - Value: value, - }) - } - - if !inArray { - return Wiki{}, wrapError(ErrExpectingNewField, lino, line) - } - } - - return w, nil -} - -func readType(s string) string { - i := strings.IndexByte(s, '\n') - if i == -1 { - i = strings.IndexByte(s, '}') // {{Infobox Crt}} - } - - return trimSpace(s[len(prefix):i]) -} - -// read whole line as an array item, spaces are trimmed. -// -// readArrayItem("[简体中文名|鲁鲁修]") => "简体中文名", "鲁鲁修", nil -// readArrayItem("[简体中文名|]") => "简体中文名", "", nil -// readArrayItem("[鲁鲁修]") => "", "鲁鲁修", nil -func readArrayItem(line string) (string, string, error) { - if line[0] != '[' || line[len(line)-1] != ']' { - return "", "", ErrArrayItemWrapped - } - - content := line[1 : len(line)-1] - - before, after, found := strings.Cut(content, "|") - if !found { - return "", trimSpace(content), nil - } - - return trimSpace(before), trimSpace(after), nil -} - -// read line without leading '|' as key value pair, spaces are trimmed. -// -// readStartLine("播放日期 = 2017年4月16日") => 播放日期, 2017年4月16日, nil -// readStartLine("播放日期 = ") => 播放日期, "", nil -func readStartLine(line string) (string, string, error) { - before, after, found := strings.Cut(line, "=") - if !found { - return "", "", ErrExpectingSignEqual - } - - return trimRightSpace(before), trimLeftSpace(after), nil -} diff --git a/pkg/wiki/parser_internal_test.go b/pkg/wiki/parser_internal_test.go deleted file mode 100644 index a2b06aeb8..000000000 --- a/pkg/wiki/parser_internal_test.go +++ /dev/null @@ -1,51 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_readArrayItem(t *testing.T) { - t.Parallel() - - key, value, err := readArrayItem("[k|v]") - - require.NoError(t, err) - require.Equal(t, "k", key) - require.Equal(t, "v", value) -} - -func Test_readArrayItem2(t *testing.T) { - t.Parallel() - - key, value, err := readArrayItem("[v]") - - require.NoError(t, err) - require.Equal(t, "", key) - require.Equal(t, "v", value) -} - -func Test_readArrayItem3(t *testing.T) { - t.Parallel() - - key, value, err := readArrayItem("[k|]") - - require.NoError(t, err) - require.Equal(t, "k", key) - require.Equal(t, "", value) -} diff --git a/pkg/wiki/parser_test.go b/pkg/wiki/parser_test.go deleted file mode 100644 index d36035244..000000000 --- a/pkg/wiki/parser_test.go +++ /dev/null @@ -1,195 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki_test - -import ( - "regexp" - "testing" - - "github.com/stretchr/testify/require" - - "github.com/bangumi/server/pkg/wiki" -) - -func TestParseFull(t *testing.T) { - t.Parallel() - value, err := wiki.Parse(`{{Infobox Crt -|简体中文名= 水树奈奈 -|官网= https://www.mizukinana.jp -|FanClub= https://fanclub.mizukinana.jp -|Twitter= https://twitter.com/NM_NANAPARTY -}}`) - - require.NoError(t, err) - - require.Equal(t, wiki.Wiki{ - Type: "Crt", - Fields: []wiki.Field{ - {Key: "简体中文名", Value: "水树奈奈"}, - {Key: "官网", Value: "https://www.mizukinana.jp"}, - {Key: "FanClub", Value: "https://fanclub.mizukinana.jp"}, - {Key: "Twitter", Value: "https://twitter.com/NM_NANAPARTY"}, - }}, value) -} - -var expected = wiki.Wiki{ - Type: "Crt", - Fields: []wiki.Field{ - {Key: "简体中文名", Value: "水树奈奈"}, - {Key: "别名", Array: true, Values: []wiki.Item{ - {Key: "", Value: "第二中文名"}, - {Key: "", Value: "英文名"}, - {Key: "日文名", Value: "近藤奈々 (こんどう なな)"}, - {Key: "纯假名", Value: "みずき なな"}, - {Key: "罗马字", Value: "Mizuki Nana"}, - {Key: "昵称", Value: "奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド"}, - {Key: "其他名义", Value: ""}, - }}, - }, -} - -func TestParseFullArray(t *testing.T) { - t.Parallel() - value, err := wiki.Parse(`{{Infobox Crt -|简体中文名= 水树奈奈 -|别名={ -[第二中文名] -[英文名] -[日文名|近藤奈々 (こんどう なな)] -[纯假名|みずき なな] -[罗马字|Mizuki Nana] -[昵称|奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド] -[其他名义|] -} -}}`) - - require.NoError(t, err) - - require.Equal(t, expected, value) -} - -func TestParseEmptyLine(t *testing.T) { - t.Parallel() - value, err := wiki.Parse(`{{Infobox Crt -|简体中文名= 水树奈奈 -|别名={ - - -[第二中文名] -[英文名] -[日文名|近藤奈々 (こんどう なな)] - -[纯假名|みずき なな] -[罗马字|Mizuki Nana] -[昵称|奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド] -[其他名义|] - -} -}}`) - - require.NoError(t, err) - require.Equal(t, expected, value) -} - -func TestParseExtraSpace(t *testing.T) { - t.Parallel() - value, err := wiki.Parse(`{{Infobox Crt -|简体中文名= 水树奈奈 -| 别名 = { -[第二中文名] -[ 英文名] -[日文名|近藤奈々 (こんどう なな)] -[纯假名 |みずき なな] -[罗马字|Mizuki Nana] -[昵称|奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド] -[其他名义|] - - } -}}`) - - require.NoError(t, err) - require.Equal(t, expected, value) -} - -func TestArrayNoClose(t *testing.T) { - t.Parallel() - _, err := wiki.Parse(`{{Infobox Crt -| 别名 = { - -[昵称|奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド] -[其他名义|] -}}`) - - require.ErrorIs(t, err, wiki.ErrWikiSyntax) - require.Regexp(t, regexp.MustCompile("array.*close"), err) -} - -func TestArrayNoClose2(t *testing.T) { - t.Parallel() - _, err := wiki.Parse(`{{Infobox Crt -| 别名 = { - -[昵称|奈々ちゃん、奈々さん、奈々様、お奈々、ヘッド] -[其他名义|] -|简体中文名= 水树奈奈 -}}`) - - require.ErrorIs(t, err, wiki.ErrWikiSyntax) - require.Regexp(t, regexp.MustCompile("array.*closed"), err) - require.Regexp(t, regexp.MustCompile("line: 6"), err) -} - -func TestArrayNoClose_empty_item(t *testing.T) { - t.Parallel() - _, err := wiki.Parse(`{{Infobox Crt -| 别名 = { -}}`) - - require.ErrorIs(t, err, wiki.ErrWikiSyntax) - require.Regexp(t, regexp.MustCompile("array.*closed"), err) - require.Regexp(t, regexp.MustCompile("line: 3"), err) -} - -func TestScalar_No_sign_equal(t *testing.T) { - t.Parallel() - _, err := wiki.Parse(`{{Infobox Crt -| 别名 -}}`) - - require.ErrorIs(t, err, wiki.ErrExpectingSignEqual) - require.Regexp(t, regexp.MustCompile("别名"), err) - require.Regexp(t, regexp.MustCompile("line: 2"), err) -} - -func TestTypeNoLineBreak(t *testing.T) { - t.Parallel() - w, err := wiki.Parse(`{{Infobox Crt}}`) - require.NoError(t, err) - require.Equal(t, "Crt", w.Type) -} - -func TestErrorMissingPrefix(t *testing.T) { - t.Parallel() - - _, err := wiki.Parse("\n\nNotPrefix Crt\n}}") - require.ErrorIs(t, err, wiki.ErrGlobalPrefix) -} - -func TestErrorMissingSuffix(t *testing.T) { - t.Parallel() - - _, err := wiki.Parse("\n\n{{Infobox Crt\n\n\n") - require.ErrorIs(t, err, wiki.ErrGlobalSuffix) -} diff --git a/pkg/wiki/spec_test.go b/pkg/wiki/spec_test.go deleted file mode 100644 index c030c4b5d..000000000 --- a/pkg/wiki/spec_test.go +++ /dev/null @@ -1,142 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki_test - -import ( - "os" - "path/filepath" - "strings" - "testing" - - "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" - - "github.com/bangumi/server/pkg/wiki" -) - -const testRoot = "./testdata/wiki-syntax-spec/tests/" - -type Result struct { - Type string `yaml:"type"` - Data []Field `yaml:"data"` -} - -func (r Result) Wiki() wiki.Wiki { - fields := make([]wiki.Field, len(r.Data)) - for i, datum := range r.Data { - fields[i] = datum.Wiki() - } - return wiki.Wiki{Type: r.Type, Fields: fields} -} - -type Field struct { - Key string `yaml:"key"` - Value string `yaml:"value"` - Values []Item `yaml:"values"` - Array bool `yaml:"array"` -} - -func (i Field) Wiki() wiki.Field { - var values []wiki.Item - if i.Array { - values = make([]wiki.Item, len(i.Values)) - for i, datum := range i.Values { - values[i] = datum.Wiki() - } - } - return wiki.Field{ - Key: i.Key, - Value: i.Value, - Values: values, - Array: i.Array, - Null: len(i.Values) == 0 && i.Value == "", - } -} - -type Item struct { - K string `yaml:"k"` - V string `yaml:"v"` -} - -func (i Item) Wiki() wiki.Item { - return wiki.Item{ - Key: i.K, - Value: i.V, - } -} - -func TestAgainstInvalidSpec(t *testing.T) { - t.Parallel() - checkSubmodule(t) - var caseRoot = filepath.Join(testRoot, "invalid") - files, err := os.ReadDir(caseRoot) - if err != nil { - t.Fatal(err) - } - - for _, file := range files { - // name := file.Name() - t.Run(file.Name(), func(t *testing.T) { - t.Parallel() - raw, err := os.ReadFile(filepath.Join(caseRoot, file.Name())) - require.NoError(t, err) - _, err = wiki.Parse(string(raw)) - require.NotNil(t, err, "expecting reporting error") - }) - } -} - -func TestAgainstValidSpec(t *testing.T) { - t.Parallel() - checkSubmodule(t) - var caseRoot = filepath.Join(testRoot, "valid") - files, err := os.ReadDir(caseRoot) - if err != nil { - t.Fatal(err) - } - for _, file := range files { //nolint:paralleltest - if strings.HasSuffix(file.Name(), ".wiki") { - name := strings.TrimSuffix(file.Name(), ".wiki") - t.Run(name, testCase(caseRoot, name)) - } - } -} - -func testCase(root, name string) func(*testing.T) { - return func(t *testing.T) { - t.Parallel() - raw, err := os.ReadFile(filepath.Join(root, name+".wiki")) - require.NoError(t, err) - - yamlRaw, err := os.ReadFile(filepath.Join(root, name+".yaml")) - require.NoError(t, err) - - expected := Result{} - require.NoError(t, yaml.Unmarshal(yamlRaw, &expected)) - - result, err := wiki.Parse(string(raw)) - require.NoError(t, err) - - require.Equal(t, expected.Wiki(), result) - } -} - -func checkSubmodule(t *testing.T) { - t.Helper() - if _, err := os.Stat(testRoot); err != nil && os.IsNotExist(err) { - t.Fatal("test data missing, do you forget to init git submodules?" + - "Try `git submodule update --init --recursive`") - } -} diff --git a/pkg/wiki/strings.go b/pkg/wiki/strings.go deleted file mode 100644 index 6c37ed6cb..000000000 --- a/pkg/wiki/strings.go +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki - -import ( - "strings" -) - -const spaceStr = " \t" - -func trimSpace(s string) string { - return strings.Trim(s, spaceStr) -} - -func trimLeftSpace(s string) string { - return strings.TrimLeft(s, spaceStr) -} - -func trimRightSpace(s string) string { - return strings.TrimRight(s, spaceStr) -} - -func unifyEOL(s string) string { - s = strings.ReplaceAll(s, "\r\n", "\n") - - return s -} - -func processInput(s string) (string, int) { - offset := 2 - s = unifyEOL(s) - - for _, c := range s { - switch c { - case '\n': - offset++ - case ' ', '\t': - continue - default: - return strings.TrimSpace(s), offset - } - } - - return strings.TrimSpace(s), offset -} diff --git a/pkg/wiki/testdata/wiki-syntax-spec b/pkg/wiki/testdata/wiki-syntax-spec deleted file mode 160000 index fe7435e42..000000000 --- a/pkg/wiki/testdata/wiki-syntax-spec +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fe7435e425469184337b99b35b190548bf5e9cfa diff --git a/pkg/wiki/type.go b/pkg/wiki/type.go deleted file mode 100644 index 9920a8e07..000000000 --- a/pkg/wiki/type.go +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki - -type Wiki struct { - Type string `json:"type"` - Fields []Field `json:"fields"` -} - -type Field struct { - Key string `json:"key"` - Value string `json:"value"` - Values []Item `json:"values"` - Array bool `json:"array"` - Null bool `json:"null,omitempty"` -} - -type Item struct { - Key string `json:"key"` - Value string `json:"value"` -} - -// NonZero return a wiki without empty fields and items. -func (w Wiki) NonZero() Wiki { - var wiki = Wiki{Type: w.Type, Fields: make([]Field, 0, len(w.Fields))} - for _, f := range w.Fields { - if f.Null { - continue - } - - if !f.Array { - wiki.Fields = append(wiki.Fields, f) - - continue - } - - if len(f.Values) == 0 { - continue - } - - var items []Item - for _, item := range f.Values { - if item.Value == "" { - continue - } - - items = append(items, item) - } - - wiki.Fields = append(wiki.Fields, Field{ - Key: f.Key, - Array: f.Array, - Values: items, - }) - } - - return wiki -} diff --git a/pkg/wiki/type_test.go b/pkg/wiki/type_test.go deleted file mode 100644 index 396cb708c..000000000 --- a/pkg/wiki/type_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package wiki_test - -import ( - "testing" - - "github.com/stretchr/testify/require" - - "github.com/bangumi/server/pkg/wiki" -) - -func TestWiki_NonZero(t *testing.T) { - t.Parallel() - - w := wiki.Wiki{ - Type: "t", - Fields: []wiki.Field{ - {Key: "k", Value: "V", Values: nil, Array: false, Null: false}, - {Key: "", Value: "", Values: nil, Array: false, Null: true}, - {Key: "kk", Value: "", Values: []wiki.Item{ - {Key: "k1", Value: "v1"}, - {Key: "", Value: "v2"}, - {Key: "", Value: ""}, - }, Array: true, Null: false}, - {Key: "k", Value: "V", Values: nil, Array: false, Null: false}, - {Key: "kk", Value: "", Values: []wiki.Item{ - {Key: "k1", Value: "v1"}, - {Key: "", Value: "v2"}, - {Key: "", Value: ""}, - }, Array: true, Null: false}, - }, - } - require.Equal(t, wiki.Wiki{ - Type: "t", - Fields: []wiki.Field{ - {Key: "k", Value: "V", Values: nil, Array: false, Null: false}, - {Key: "kk", Value: "", Values: []wiki.Item{ - {Key: "k1", Value: "v1"}, - {Key: "", Value: "v2"}, - }, Array: true, Null: false}, - {Key: "k", Value: "V", Values: nil, Array: false, Null: false}, - {Key: "kk", Value: "", Values: []wiki.Item{ - {Key: "k1", Value: "v1"}, - {Key: "", Value: "v2"}, - }, Array: true, Null: false}, - }, - }, w.NonZero()) -} diff --git a/web/handler/index/util.go b/web/handler/index/util.go index 3e63adb43..1c75a310f 100644 --- a/web/handler/index/util.go +++ b/web/handler/index/util.go @@ -17,11 +17,12 @@ package index import ( "context" + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/index" "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/pkg/wiki" "github.com/bangumi/server/web/internal/cachekey" "github.com/bangumi/server/web/res" ) diff --git a/web/res/character.go b/web/res/character.go index 4acdd7e04..ad8da4876 100644 --- a/web/res/character.go +++ b/web/res/character.go @@ -15,10 +15,11 @@ package res import ( + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/pkg/wiki" ) type CharacterV0 struct { diff --git a/web/res/person.go b/web/res/person.go index 8c5410e31..e6e449bab 100644 --- a/web/res/person.go +++ b/web/res/person.go @@ -17,10 +17,11 @@ package res import ( "time" + wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/null" - "github.com/bangumi/server/pkg/wiki" ) type PersonV0 struct { diff --git a/web/res/subject.go b/web/res/subject.go index c7bf3ab01..47cf81d53 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -17,6 +17,7 @@ package res import ( "time" + wiki "github.com/bangumi/wiki-parser-go" "github.com/samber/lo" "go.uber.org/zap" @@ -28,7 +29,6 @@ import ( "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/tag" "github.com/bangumi/server/pkg/vars" - "github.com/bangumi/server/pkg/wiki" ) const defaultShortSummaryLength = 120 From 1bae59d54083d8a9e20c4b2a8dfa16edb09088e1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 24 Apr 2025 22:50:44 +0800 Subject: [PATCH 627/888] fix: server panic (#803) --- web/handler/index/subject.go | 3 ++- web/req/index.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/web/handler/index/subject.go b/web/handler/index/subject.go index c8d21270b..d2f849bd2 100644 --- a/web/handler/index/subject.go +++ b/web/handler/index/subject.go @@ -31,6 +31,7 @@ func (h Handler) AddIndexSubject(c echo.Context) error { if err := c.Echo().JSONSerializer.Deserialize(c, &reqData); err != nil { return res.JSONError(c, err) } + return h.addOrUpdateIndexSubject(c, reqData) } @@ -45,7 +46,7 @@ func (h Handler) UpdateIndexSubject(c echo.Context) error { } return h.addOrUpdateIndexSubject(c, req.IndexAddSubject{ SubjectID: subjectID, - IndexSubjectInfo: &reqData, + IndexSubjectInfo: reqData, }) } diff --git a/web/req/index.go b/web/req/index.go index af50b9c89..b7b2887de 100644 --- a/web/req/index.go +++ b/web/req/index.go @@ -23,7 +23,7 @@ type IndexBasicInfo struct { type IndexAddSubject struct { SubjectID model.SubjectID `json:"subject_id"` - *IndexSubjectInfo + IndexSubjectInfo } type IndexSubjectInfo struct { From 4e48caed403879c0945aa8fcaa4b4f3516ff176e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 27 Apr 2025 02:20:05 +0800 Subject: [PATCH 628/888] fix: reuse time at update subject collection --- ctrl/update_episode_progress.go | 2 +- package.json | 2 +- taskfile.yaml | 3 ++- web/routes.go | 2 -- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ctrl/update_episode_progress.go b/ctrl/update_episode_progress.go index e160e5e66..264b9844a 100644 --- a/ctrl/update_episode_progress.go +++ b/ctrl/update_episode_progress.go @@ -166,7 +166,7 @@ func (ctl Ctrl) updateEpisodesCollectionTx( epStatus := len(ec) err = collectionTx.UpdateSubjectCollection(ctx, u.ID, - model.Subject{ID: subjectID, TypeID: sc.SubjectType}, time.Now(), "", + model.Subject{ID: subjectID, TypeID: sc.SubjectType}, at, "", func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) { s.UpdateEps(uint32(epStatus)) return s, nil diff --git a/package.json b/package.json index 6fea0fc83..87a105961 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ ], "legacyWatch": true, "delay": 2000, - "exec": "godotenv go run main.go --config config.yaml", + "exec": "task web", "ext": "go,json,html" }, "packageManager": "yarn@1.22.22" diff --git a/taskfile.yaml b/taskfile.yaml index 65e3417ee..ebeacc57d 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -36,7 +36,8 @@ tasks: web: desc: Run Web Server cmds: - - go run main.go --config config.toml web + - task: build + - ./dist/chii.exe --config config.toml web consumer: desc: Run Kafka Consumer diff --git a/web/routes.go b/web/routes.go index 88cbf0f63..94c2342d7 100644 --- a/web/routes.go +++ b/web/routes.go @@ -17,7 +17,6 @@ package web import ( "github.com/labstack/echo/v4" - "github.com/bangumi/server/config" "github.com/bangumi/server/web/handler" "github.com/bangumi/server/web/handler/character" "github.com/bangumi/server/web/handler/common" @@ -35,7 +34,6 @@ import ( //nolint:funlen func AddRouters( app *echo.Echo, - c config.AppConfig, common common.Common, h handler.Handler, userHandler user.User, From ba20c2b3e91e1863af2f9c7377e71556ba83c389 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 27 Apr 2025 18:51:21 +0800 Subject: [PATCH 629/888] chore: remove yaml (#804) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- go.mod | 3 +- go.sum | 7 +- package.json | 1 + pkg/vars/index.go | 14 +- pkg/vars/relations.go.json | 757 ++++++++ pkg/vars/staffs.go.json | 1711 ++++++++++++++++++ scripts/{build-buid.mjs => build-common.mjs} | 10 + 7 files changed, 2488 insertions(+), 15 deletions(-) create mode 100644 pkg/vars/relations.go.json create mode 100644 pkg/vars/staffs.go.json rename scripts/{build-buid.mjs => build-common.mjs} (53%) diff --git a/go.mod b/go.mod index 8d41e9dc6..9a1285d0e 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.67 github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 - github.com/bangumi/wiki-parser-go v0.0.1 + github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/elliotchance/phpserialize v1.4.0 @@ -45,7 +45,6 @@ require ( gorm.io/gorm v1.25.12 gorm.io/plugin/dbresolver v1.5.3 gorm.io/plugin/soft_delete v1.2.1 - sigs.k8s.io/yaml v1.4.0 ) require ( diff --git a/go.sum b/go.sum index 442f05b87..c63b80afc 100644 --- a/go.sum +++ b/go.sum @@ -31,8 +31,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 h1:tWUG+4wZqdMl/znThEk9tcCy8tTMx github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/bangumi/wiki-parser-go v0.0.1 h1:eoGCRqdetSRxLLCjbfNreA8iX/mmFQeGziwQOnIQCR0= -github.com/bangumi/wiki-parser-go v0.0.1/go.mod h1:oMECVeT5cRBlYR3RuQ7nmInxBTBMN87xmxd1aYWkEBA= +github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= +github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= @@ -91,7 +91,6 @@ github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0kt github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -386,5 +385,3 @@ gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/package.json b/package.json index 87a105961..78e67b68f 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "format": "prettier -w --list-different ./", "test": "node openapi/test.js", + "common": "node scripts/build-common.mjs", "build": "node ./openapi/build.js" }, "prettier": { diff --git a/pkg/vars/index.go b/pkg/vars/index.go index c336aeee1..7cfdef7a0 100644 --- a/pkg/vars/index.go +++ b/pkg/vars/index.go @@ -23,18 +23,16 @@ import ( "fmt" "log" - "sigs.k8s.io/yaml" - "github.com/bangumi/server/internal/model" ) -//go:embed common/subject_staffs.yml +//go:embed staffs.go.json var staffRaw []byte //go:embed platform.go.json var platformRaw []byte -//go:embed common/subject_relations.yml +//go:embed relations.go.json var relationRaw []byte // StaffID ... @@ -65,8 +63,8 @@ func init() { var staffsYaml struct { Staffs map[model.SubjectType]map[StaffID]Staff `yaml:"staffs"` } - if err := yaml.Unmarshal(staffRaw, &staffsYaml); err != nil { - log.Panicln("can't unmarshal raw staff yaml to go type", err) + if err := json.Unmarshal(staffRaw, &staffsYaml); err != nil { + log.Panicln("can't unmarshal raw staffs.go.json to go type", err) } staffRaw = nil StaffMap = staffsYaml.Staffs @@ -74,8 +72,8 @@ func init() { var relationYAML struct { Relations map[model.SubjectType]map[RelationID]Relation `yaml:"relations"` } - if err := yaml.Unmarshal(relationRaw, &relationYAML); err != nil { - log.Panicln("can't unmarshal raw relation yaml to go type", err) + if err := json.Unmarshal(relationRaw, &relationYAML); err != nil { + log.Panicln("can't unmarshal raw relations.go.json to go type", err) } relationRaw = nil RelationMap = relationYAML.Relations diff --git a/pkg/vars/relations.go.json b/pkg/vars/relations.go.json new file mode 100644 index 000000000..4eed64bb5 --- /dev/null +++ b/pkg/vars/relations.go.json @@ -0,0 +1,757 @@ +{ + "define": { + "type": { + "book": 1, + "anime": 2, + "music": 3, + "game": 4, + "real": 6 + }, + "types": { + "anime": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如柯南漫画与动画版)" + }, + "2": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前" + }, + "3": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后" + }, + "4": { + "en": "Summary", + "cn": "总集篇", + "jp": "", + "desc": "对故事的概括版本" + }, + "5": { + "en": "Full Story", + "cn": "全集", + "jp": "", + "desc": "相对于剧场版/总集篇的完整故事" + }, + "6": { + "en": "Side Story", + "cn": "番外篇", + "jp": "", + "desc": "" + }, + "7": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "8": { + "en": "Same setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "9": { + "en": "Alternative setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的主演角色,不同的世界观/时间线设定" + }, + "10": { + "en": "Alternative version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" + }, + "11": { + "en": "Spin-off", + "cn": "衍生", + "jp": "", + "desc": "世界观相同,角色主线与有关联或来自主线,但又非主线的主角们" + }, + "12": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "14": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "99": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "book": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如柯南漫画与动画版)" + }, + "1002": { + "en": "Series", + "cn": "系列", + "jp": "", + "desc": "" + }, + "1003": { + "en": "Offprint", + "cn": "单行本", + "jp": "", + "desc": "" + }, + "1004": { + "en": "Album", + "cn": "画集", + "jp": "", + "desc": "" + }, + "1005": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前" + }, + "1006": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后" + }, + "1007": { + "en": "Side Story", + "cn": "番外篇", + "jp": "", + "desc": "" + }, + "1008": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "1010": { + "en": "Alternative version", + "cn": "不同版本", + "jp": "", + "desc": "" + }, + "1011": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "1012": { + "en": "Same setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "1013": { + "en": "Alternative setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的出演角色,不同的世界观/时间线设定" + }, + "1014": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "1099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "music": { + "3001": { + "en": "OST", + "cn": "原声集", + "jp": "", + "desc": "" + }, + "3002": { + "en": "Character Song", + "cn": "角色歌", + "jp": "", + "desc": "" + }, + "3003": { + "en": "Opening Song", + "cn": "片头曲", + "jp": "", + "desc": "" + }, + "3004": { + "en": "Ending Song", + "cn": "片尾曲", + "jp": "", + "desc": "" + }, + "3005": { + "en": "Insert Song", + "cn": "插入歌", + "jp": "", + "desc": "" + }, + "3006": { + "en": "Image Song", + "cn": "印象曲", + "jp": "", + "desc": "" + }, + "3007": { + "en": "Drama", + "cn": "广播剧", + "jp": "", + "desc": "" + }, + "3099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "game": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如 CLANNAD 游戏与动画版)" + }, + "4002": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前/或作品发售之前" + }, + "4003": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后/或作品发售之后" + }, + "4006": { + "en": "Side Story", + "cn": "外传", + "jp": "", + "desc": "" + }, + "4007": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "4008": { + "en": "Same Setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "4009": { + "en": "Alternative Setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的出演角色,不同的世界观/时间线设定" + }, + "4010": { + "en": "Alternative Version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式" + }, + "4011": { + "en": "Version", + "cn": "不同版本", + "jp": "", + "desc": "相同故事、角色,画面、音乐或系统改进" + }, + "4012": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "4013": { + "en": "Main Version", + "cn": "主版本", + "jp": "", + "desc": "游戏最初发售时的版本" + }, + "4014": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "4015": { + "en": "DLC", + "cn": "扩展包", + "jp": "", + "desc": "" + }, + "4016": { + "en": "Collection", + "cn": "合集", + "jp": "", + "desc": "收录本作品的合集条目" + }, + "4017": { + "en": "In Collection", + "cn": "收录作品", + "jp": "", + "desc": "合集条目中收录的作品" + }, + "4099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + } + } + }, + "relations": { + "1": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如柯南漫画与动画版)" + }, + "1002": { + "en": "Series", + "cn": "系列", + "jp": "", + "desc": "" + }, + "1003": { + "en": "Offprint", + "cn": "单行本", + "jp": "", + "desc": "" + }, + "1004": { + "en": "Album", + "cn": "画集", + "jp": "", + "desc": "" + }, + "1005": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前" + }, + "1006": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后" + }, + "1007": { + "en": "Side Story", + "cn": "番外篇", + "jp": "", + "desc": "" + }, + "1008": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "1010": { + "en": "Alternative version", + "cn": "不同版本", + "jp": "", + "desc": "" + }, + "1011": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "1012": { + "en": "Same setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "1013": { + "en": "Alternative setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的出演角色,不同的世界观/时间线设定" + }, + "1014": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "1099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "2": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如柯南漫画与动画版)" + }, + "2": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前" + }, + "3": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后" + }, + "4": { + "en": "Summary", + "cn": "总集篇", + "jp": "", + "desc": "对故事的概括版本" + }, + "5": { + "en": "Full Story", + "cn": "全集", + "jp": "", + "desc": "相对于剧场版/总集篇的完整故事" + }, + "6": { + "en": "Side Story", + "cn": "番外篇", + "jp": "", + "desc": "" + }, + "7": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "8": { + "en": "Same setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "9": { + "en": "Alternative setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的主演角色,不同的世界观/时间线设定" + }, + "10": { + "en": "Alternative version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" + }, + "11": { + "en": "Spin-off", + "cn": "衍生", + "jp": "", + "desc": "世界观相同,角色主线与有关联或来自主线,但又非主线的主角们" + }, + "12": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "14": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "99": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "3": { + "3001": { + "en": "OST", + "cn": "原声集", + "jp": "", + "desc": "" + }, + "3002": { + "en": "Character Song", + "cn": "角色歌", + "jp": "", + "desc": "" + }, + "3003": { + "en": "Opening Song", + "cn": "片头曲", + "jp": "", + "desc": "" + }, + "3004": { + "en": "Ending Song", + "cn": "片尾曲", + "jp": "", + "desc": "" + }, + "3005": { + "en": "Insert Song", + "cn": "插入歌", + "jp": "", + "desc": "" + }, + "3006": { + "en": "Image Song", + "cn": "印象曲", + "jp": "", + "desc": "" + }, + "3007": { + "en": "Drama", + "cn": "广播剧", + "jp": "", + "desc": "" + }, + "3099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "4": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如 CLANNAD 游戏与动画版)" + }, + "4002": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前/或作品发售之前" + }, + "4003": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后/或作品发售之后" + }, + "4006": { + "en": "Side Story", + "cn": "外传", + "jp": "", + "desc": "" + }, + "4007": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "4008": { + "en": "Same Setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "4009": { + "en": "Alternative Setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的出演角色,不同的世界观/时间线设定" + }, + "4010": { + "en": "Alternative Version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式" + }, + "4011": { + "en": "Version", + "cn": "不同版本", + "jp": "", + "desc": "相同故事、角色,画面、音乐或系统改进" + }, + "4012": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "4013": { + "en": "Main Version", + "cn": "主版本", + "jp": "", + "desc": "游戏最初发售时的版本" + }, + "4014": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "4015": { + "en": "DLC", + "cn": "扩展包", + "jp": "", + "desc": "" + }, + "4016": { + "en": "Collection", + "cn": "合集", + "jp": "", + "desc": "收录本作品的合集条目" + }, + "4017": { + "en": "In Collection", + "cn": "收录作品", + "jp": "", + "desc": "合集条目中收录的作品" + }, + "4099": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + }, + "6": { + "1": { + "en": "Adaptation", + "cn": "改编", + "jp": "", + "desc": "同系列不同平台作品(如柯南漫画与动画版)" + }, + "2": { + "en": "Prequel", + "cn": "前传", + "jp": "", + "desc": "发生在故事之前" + }, + "3": { + "en": "Sequel", + "cn": "续集", + "jp": "", + "desc": "发生在故事之后" + }, + "4": { + "en": "Summary", + "cn": "总集篇", + "jp": "", + "desc": "对故事的概括版本" + }, + "5": { + "en": "Full Story", + "cn": "全集", + "jp": "", + "desc": "相对于剧场版/总集篇的完整故事" + }, + "6": { + "en": "Side Story", + "cn": "番外篇", + "jp": "", + "desc": "" + }, + "7": { + "en": "Character", + "cn": "角色出演", + "jp": "", + "desc": "相同角色,没有关联的故事" + }, + "8": { + "en": "Same setting", + "cn": "相同世界观", + "jp": "", + "desc": "发生在同一个世界观/时间线下,不同的出演角色" + }, + "9": { + "en": "Alternative setting", + "cn": "不同世界观", + "jp": "", + "desc": "相同的主演角色,不同的世界观/时间线设定" + }, + "10": { + "en": "Alternative version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" + }, + "11": { + "en": "Spin-off", + "cn": "衍生", + "jp": "", + "desc": "世界观相同,角色主线与有关联或来自主线,但又非主线的主角们" + }, + "12": { + "en": "Parent Story", + "cn": "主线故事", + "jp": "", + "desc": "" + }, + "14": { + "en": "Collaboration", + "cn": "联动", + "jp": "", + "desc": "出现了被关联作品中的角色", + "skip_vice_versa": true + }, + "99": { + "en": "Other", + "cn": "其他", + "jp": "", + "desc": "", + "skip_vice_versa": true + } + } + } +} diff --git a/pkg/vars/staffs.go.json b/pkg/vars/staffs.go.json new file mode 100644 index 000000000..5e37186b6 --- /dev/null +++ b/pkg/vars/staffs.go.json @@ -0,0 +1,1711 @@ +{ + "define": { + "type": { + "book": 1, + "anime": 2, + "music": 3, + "game": 4, + "real": 6 + }, + "types": { + "anime": { + "1": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "2": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 シリーズ監督", + "rdf": "directedBy" + }, + "3": { + "en": "Script/Screenplay", + "cn": "脚本", + "jp": "シナリオ" + }, + "4": { + "en": "Storyboard", + "cn": "分镜", + "jp": "コンテ ストーリーボード 画コンテ 絵コンテ" + }, + "5": { + "en": "Episode Direction", + "cn": "演出", + "jp": "" + }, + "6": { + "en": "Music", + "cn": "音乐", + "jp": "楽曲 音楽" + }, + "7": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラ原案" + }, + "8": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定" + }, + "9": { + "en": "Layout", + "cn": "构图", + "jp": "レイアウト" + }, + "10": { + "en": "Series Composition", + "cn": "系列构成", + "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成" + }, + "11": { + "en": "Art Direction", + "cn": "美术监督", + "jp": "美術監督 アートディレクション 背景監督" + }, + "13": { + "en": "Color Design", + "cn": "色彩设计", + "jp": "色彩設定" + }, + "14": { + "en": "Chief Animation Director", + "cn": "总作画监督", + "jp": "チーフ作画監督" + }, + "15": { + "en": "Animation Direction", + "cn": "作画监督", + "jp": "作監 アニメーション演出" + }, + "16": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定" + }, + "17": { + "en": "Director of Photography", + "cn": "摄影监督", + "jp": "撮影監督" + }, + "18": { + "en": "Supervision/Supervisor", + "cn": "监修", + "jp": "シリーズ監修 スーパーバイザー" + }, + "19": { + "en": "Prop Design", + "cn": "道具设计", + "jp": "プロップデザイン" + }, + "20": { + "en": "Key Animation", + "cn": "原画", + "jp": "作画 原画" + }, + "21": { + "en": "2nd Key Animation", + "cn": "第二原画", + "jp": "原画協力" + }, + "22": { + "en": "Animation Check", + "cn": "动画检查", + "jp": "動画チェック" + }, + "23": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー(⚠️ 待合并)" + }, + "24": { + "en": "Associate Producer", + "cn": "制作助理", + "jp": "製作補佐 アソシエイトプロデューサー" + }, + "25": { + "en": "Background Art", + "cn": "背景美术", + "jp": "背景" + }, + "26": { + "en": "Color Setting", + "cn": "色彩指定", + "jp": "" + }, + "27": { + "en": "Digital Paint", + "cn": "数码绘图", + "jp": "" + }, + "28": { + "en": "Editing", + "cn": "剪辑", + "jp": "編集" + }, + "29": { + "en": "Original Plan", + "cn": "原案", + "jp": "" + }, + "30": { + "en": "Theme Song Arrangement", + "cn": "主题歌编曲", + "jp": "" + }, + "31": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "" + }, + "32": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "" + }, + "33": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "34": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "" + }, + "35": { + "en": "Planning", + "cn": "企画", + "jp": "プランニング 企画開発" + }, + "36": { + "en": "Planning Producer", + "cn": "企划制作人", + "jp": "企画プロデューサー 企画営業プロデューサー" + }, + "37": { + "en": "Production Manager", + "cn": "制作管理", + "jp": "制作マネージャー 制作担当 制作班長" + }, + "38": { + "en": "Publicity", + "cn": "宣传", + "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝" + }, + "39": { + "en": "Recording", + "cn": "录音", + "jp": "録音" + }, + "40": { + "en": "Recording Assistant", + "cn": "录音助理", + "jp": "録音アシスタント 録音助手" + }, + "41": { + "en": "Series Production Director", + "cn": "系列监督", + "jp": "" + }, + "42": { + "en": "Production", + "cn": "製作", + "jp": "" + }, + "43": { + "en": "Setting", + "cn": "设定", + "jp": "設定" + }, + "44": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "" + }, + "45": { + "en": "Sound", + "cn": "音响", + "jp": "音響 音声" + }, + "46": { + "en": "Sound Effects", + "cn": "音效", + "jp": "音響効果" + }, + "47": { + "en": "Special Effects", + "cn": "特效", + "jp": "視覚効果" + }, + "48": { + "en": "ADR Director", + "cn": "配音监督", + "jp": "" + }, + "49": { + "en": "Co-Director", + "cn": "联合导演", + "jp": "" + }, + "50": { + "en": "Setting", + "cn": "背景设定", + "jp": "基本設定 場面設定 場面設計 設定" + }, + "51": { + "en": "In-Between Animation", + "cn": "补间动画", + "jp": "動画" + }, + "52": { + "en": "Executive Producer", + "cn": "执行制片人", + "jp": "製作総指揮" + }, + "53": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー アシスタントプロデューサー" + }, + "54": { + "en": "Producer", + "cn": "制片人", + "jp": "プロデュース プロデューサー" + }, + "55": { + "en": "Music Assistant", + "cn": "音乐助理", + "jp": "音楽アシスタント" + }, + "56": { + "en": "Assistant Production Manager", + "cn": "制作进行", + "jp": "制作進行", + "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等" + }, + "57": { + "en": "Casting Director", + "cn": "演员监督", + "jp": "キャスティングコーディネーター監督" + }, + "58": { + "en": "Chief Producer", + "cn": "总制片人", + "jp": "チーフプロデューサー チーフ制作 総合プロデューサー" + }, + "59": { + "en": "Co-Producer", + "cn": "联合制片人", + "jp": "" + }, + "60": { + "en": "Dialogue Editing", + "cn": "台词编辑", + "jp": "台詞編集" + }, + "61": { + "en": "Post-Production Assistant", + "cn": "后期制片协调", + "jp": "ポストプロダクション協力" + }, + "62": { + "en": "Production Assistant", + "cn": "制作助理", + "jp": "制作アシスタント 制作補佐 製作補" + }, + "63": { + "en": "Production", + "cn": "制作", + "jp": "製作 製作スタジオ" + }, + "64": { + "en": "Production Coordination", + "cn": "制作协调", + "jp": "制作コーディネーター" + }, + "65": { + "en": "Music Work", + "cn": "音乐制作", + "jp": "楽曲制作 音楽制作" + }, + "66": { + "en": "Special Thanks", + "cn": "特别鸣谢", + "jp": "友情協力" + }, + "67": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション" + }, + "69": { + "en": "CG Director", + "cn": "CG 导演", + "jp": "CG 監督" + }, + "70": { + "en": "Mechanical Animation Direction", + "cn": "机械作画监督", + "jp": "メカニック作監" + }, + "71": { + "en": "Art Design", + "cn": "美术设计", + "jp": "美術設定" + }, + "72": { + "en": "Assistant Director", + "cn": "副导演", + "jp": "助監督 / 監督補佐" + }, + "73": { + "en": "OP ED", + "cn": "OP・ED 分镜", + "jp": "OP・ED 分鏡" + }, + "74": { + "en": "Chief Director", + "cn": "总导演", + "jp": "総監督" + }, + "75": { + "en": "3DCG", + "cn": "3DCG", + "jp": "" + }, + "76": { + "en": "Work Assistance", + "cn": "制作协力", + "jp": "制作協力 / 作品協力" + }, + "77": { + "en": "Action Animation Direction", + "cn": "动作作画监督", + "jp": "アクション作画監督" + }, + "80": { + "en": "Supervising Producer", + "cn": "监制", + "jp": "" + }, + "81": { + "en": "Assistance", + "cn": "协力", + "jp": "協力" + }, + "82": { + "en": "Photography", + "cn": "摄影", + "jp": "撮影" + }, + "83": { + "en": "Assistant Production Manager Assistance", + "cn": "制作进行协力", + "jp": "制作進行協力" + }, + "84": { + "en": "Design Manager", + "cn": "设定制作", + "jp": "設定制作 制作設定", + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" + }, + "85": { + "en": "Music Producer", + "cn": "音乐制作人", + "jp": "音楽プロデューサー" + }, + "86": { + "en": "3DCG Director", + "cn": "3DCG 导演", + "jp": "3DCG 監督" + }, + "87": { + "en": "Animation Producer", + "cn": "动画制片人", + "jp": "アニメプロデューサー アニメーションプロデューサー" + }, + "88": { + "en": "Special Effects Animation Direction", + "cn": "特效作画监督", + "jp": "エフェクト作画監督" + }, + "89": { + "en": "Chief Episode Direction", + "cn": "主演出", + "jp": "チーフ演出" + }, + "90": { + "en": "Assistant Animation Direction", + "cn": "作画监督助理", + "jp": "作画監督補佐" + }, + "91": { + "en": "Assistant Episode Direction", + "cn": "演出助理", + "jp": "演出助手 演出補佐 演出協力" + }, + "92": { + "en": "Main Animator", + "cn": "主动画师", + "jp": "メインアニメーター" + } + }, + "game": { + "1001": { + "en": "Developer", + "cn": "开发", + "jp": "開発元" + }, + "1002": { + "en": "Publisher", + "cn": "发行", + "jp": "発売元" + }, + "1003": { + "en": "Game Designer", + "cn": "游戏设计师", + "jp": "ゲームクリエイター" + }, + "1004": { + "en": "", + "cn": "剧本", + "jp": "腳本" + }, + "1005": { + "en": "", + "cn": "美工", + "jp": "美術" + }, + "1006": { + "en": "", + "cn": "音乐", + "jp": "音楽" + }, + "1007": { + "en": "", + "cn": "关卡设计", + "jp": "" + }, + "1008": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定 キャラクターデザイン" + }, + "1009": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "" + }, + "1010": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "" + }, + "1011": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "1012": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "" + }, + "1013": { + "en": "", + "cn": "原画", + "jp": "" + }, + "1014": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション" + }, + "1015": { + "en": "", + "cn": "原作", + "jp": "" + }, + "1016": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 演出 シリーズ監督" + }, + "1017": { + "en": "", + "cn": "动画监督", + "jp": "アニメーション監督" + }, + "1018": { + "en": "", + "cn": "制作总指挥", + "jp": "" + }, + "1019": { + "en": "QC", + "cn": "QC", + "jp": "" + }, + "1020": { + "en": "", + "cn": "动画剧本", + "jp": "アニメーション脚本" + }, + "1021": { + "en": "Program", + "cn": "程序", + "jp": "プログラム" + }, + "1022": { + "en": "", + "cn": "协力", + "jp": "協力" + }, + "1023": { + "en": "", + "cn": "CG 监修", + "jp": "CG 監修" + }, + "1024": { + "en": "", + "cn": "SD原画", + "jp": "" + }, + "1025": { + "en": "", + "cn": "背景", + "jp": "" + }, + "1026": { + "en": "", + "cn": "监修", + "jp": "監修" + }, + "1027": { + "en": "", + "cn": "系列构成", + "jp": "シリーズ構成" + }, + "1028": { + "en": "", + "cn": "企画", + "jp": "" + }, + "1029": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定" + }, + "1030": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "" + }, + "1031": { + "en": "", + "cn": "作画监督", + "jp": "作画監督" + }, + "1032": { + "en": "Producer", + "cn": "制作人", + "jp": "プロデューサー" + } + }, + "book": { + "2001": { + "en": "", + "cn": "作者", + "jp": "" + }, + "2002": { + "en": "", + "cn": "作画", + "jp": "" + }, + "2003": { + "en": "", + "cn": "插图", + "jp": "イラスト" + }, + "2004": { + "en": "", + "cn": "出版社", + "jp": "" + }, + "2005": { + "en": "", + "cn": "连载杂志", + "jp": "掲載誌" + }, + "2006": { + "en": "", + "cn": "译者", + "jp": "" + }, + "2007": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "2008": { + "en": "Guest", + "cn": "客串", + "jp": "ゲスト" + }, + "2009": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラクター原案" + }, + "2010": { + "en": "", + "cn": "脚本", + "jp": "シナリオ" + }, + "2011": { + "en": "Label", + "cn": "书系", + "jp": "" + }, + "2012": { + "en": "", + "cn": "出品方", + "jp": "" + }, + "2013": { + "en": "Brand", + "cn": "图书品牌", + "jp": "ブランド" + } + }, + "music": { + "3001": { + "en": "Artist", + "cn": "艺术家", + "jp": "" + }, + "3002": { + "en": "Producer", + "cn": "制作人", + "jp": "" + }, + "3003": { + "en": "Composer", + "cn": "作曲", + "jp": "" + }, + "3004": { + "en": "Label", + "cn": "厂牌", + "jp": "レーベル" + }, + "3005": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "3006": { + "en": "Lyric", + "cn": "作词", + "jp": "" + }, + "3007": { + "en": "Recording", + "cn": "录音", + "jp": "" + }, + "3008": { + "en": "Arrange", + "cn": "编曲", + "jp": "" + }, + "3009": { + "en": "Illustrator", + "cn": "插图", + "jp": "" + }, + "3010": { + "en": "Scenario", + "cn": "脚本", + "jp": "シナリオ" + }, + "3011": { + "en": "O.P.", + "cn": "出版方", + "jp": "音楽出版社" + }, + "3012": { + "en": "Mastering", + "cn": "母带制作", + "jp": "" + }, + "3013": { + "en": "Mixing", + "cn": "混音", + "jp": "" + }, + "3014": { + "en": "Instrument", + "cn": "乐器", + "jp": "" + }, + "3015": { + "en": "Vocal", + "cn": "声乐", + "jp": "" + } + }, + "real": { + "4001": { + "en": "creator", + "cn": "原作", + "jp": "" + }, + "4002": { + "en": "director", + "cn": "导演", + "jp": "" + }, + "4003": { + "en": "writer", + "cn": "编剧", + "jp": "" + }, + "4004": { + "en": "composer", + "cn": "音乐", + "jp": "" + }, + "4005": { + "en": "executive producer", + "cn": "执行制片人", + "jp": "製作総指揮" + }, + "4006": { + "en": "co exec", + "cn": "共同执行制作", + "jp": "" + }, + "4007": { + "en": "producer", + "cn": "制片人/制作人", + "jp": "プロデューサー" + }, + "4008": { + "en": "supervising producer", + "cn": "监制", + "jp": "" + }, + "4009": { + "en": "consulting producer", + "cn": "副制作人/制作顾问", + "jp": "" + }, + "4010": { + "en": "story", + "cn": "故事", + "jp": "" + }, + "4011": { + "en": "story editor", + "cn": "编审", + "jp": "" + }, + "4012": { + "en": "editor", + "cn": "剪辑", + "jp": "" + }, + "4013": { + "en": "creative director", + "cn": "创意总监", + "jp": "" + }, + "4014": { + "en": "cinematography", + "cn": "摄影", + "jp": "" + }, + "4015": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "4016": { + "en": "Actor", + "cn": "主演", + "jp": "" + }, + "4017": { + "en": "Supporting Actor", + "cn": "配角", + "jp": "" + }, + "4018": { + "en": "Production", + "cn": "制作", + "jp": "製作 製作スタジオ" + }, + "4019": { + "en": "Present", + "cn": "出品", + "jp": "配給" + } + } + } + }, + "staffs": { + "1": { + "2001": { + "en": "", + "cn": "作者", + "jp": "" + }, + "2002": { + "en": "", + "cn": "作画", + "jp": "" + }, + "2003": { + "en": "", + "cn": "插图", + "jp": "イラスト" + }, + "2004": { + "en": "", + "cn": "出版社", + "jp": "" + }, + "2005": { + "en": "", + "cn": "连载杂志", + "jp": "掲載誌" + }, + "2006": { + "en": "", + "cn": "译者", + "jp": "" + }, + "2007": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "2008": { + "en": "Guest", + "cn": "客串", + "jp": "ゲスト" + }, + "2009": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラクター原案" + }, + "2010": { + "en": "", + "cn": "脚本", + "jp": "シナリオ" + }, + "2011": { + "en": "Label", + "cn": "书系", + "jp": "" + }, + "2012": { + "en": "", + "cn": "出品方", + "jp": "" + }, + "2013": { + "en": "Brand", + "cn": "图书品牌", + "jp": "ブランド" + } + }, + "2": { + "1": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "2": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 シリーズ監督", + "rdf": "directedBy" + }, + "3": { + "en": "Script/Screenplay", + "cn": "脚本", + "jp": "シナリオ" + }, + "4": { + "en": "Storyboard", + "cn": "分镜", + "jp": "コンテ ストーリーボード 画コンテ 絵コンテ" + }, + "5": { + "en": "Episode Direction", + "cn": "演出", + "jp": "" + }, + "6": { + "en": "Music", + "cn": "音乐", + "jp": "楽曲 音楽" + }, + "7": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラ原案" + }, + "8": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定" + }, + "9": { + "en": "Layout", + "cn": "构图", + "jp": "レイアウト" + }, + "10": { + "en": "Series Composition", + "cn": "系列构成", + "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成" + }, + "11": { + "en": "Art Direction", + "cn": "美术监督", + "jp": "美術監督 アートディレクション 背景監督" + }, + "13": { + "en": "Color Design", + "cn": "色彩设计", + "jp": "色彩設定" + }, + "14": { + "en": "Chief Animation Director", + "cn": "总作画监督", + "jp": "チーフ作画監督" + }, + "15": { + "en": "Animation Direction", + "cn": "作画监督", + "jp": "作監 アニメーション演出" + }, + "16": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定" + }, + "17": { + "en": "Director of Photography", + "cn": "摄影监督", + "jp": "撮影監督" + }, + "18": { + "en": "Supervision/Supervisor", + "cn": "监修", + "jp": "シリーズ監修 スーパーバイザー" + }, + "19": { + "en": "Prop Design", + "cn": "道具设计", + "jp": "プロップデザイン" + }, + "20": { + "en": "Key Animation", + "cn": "原画", + "jp": "作画 原画" + }, + "21": { + "en": "2nd Key Animation", + "cn": "第二原画", + "jp": "原画協力" + }, + "22": { + "en": "Animation Check", + "cn": "动画检查", + "jp": "動画チェック" + }, + "23": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー(⚠️ 待合并)" + }, + "24": { + "en": "Associate Producer", + "cn": "制作助理", + "jp": "製作補佐 アソシエイトプロデューサー" + }, + "25": { + "en": "Background Art", + "cn": "背景美术", + "jp": "背景" + }, + "26": { + "en": "Color Setting", + "cn": "色彩指定", + "jp": "" + }, + "27": { + "en": "Digital Paint", + "cn": "数码绘图", + "jp": "" + }, + "28": { + "en": "Editing", + "cn": "剪辑", + "jp": "編集" + }, + "29": { + "en": "Original Plan", + "cn": "原案", + "jp": "" + }, + "30": { + "en": "Theme Song Arrangement", + "cn": "主题歌编曲", + "jp": "" + }, + "31": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "" + }, + "32": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "" + }, + "33": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "34": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "" + }, + "35": { + "en": "Planning", + "cn": "企画", + "jp": "プランニング 企画開発" + }, + "36": { + "en": "Planning Producer", + "cn": "企划制作人", + "jp": "企画プロデューサー 企画営業プロデューサー" + }, + "37": { + "en": "Production Manager", + "cn": "制作管理", + "jp": "制作マネージャー 制作担当 制作班長" + }, + "38": { + "en": "Publicity", + "cn": "宣传", + "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝" + }, + "39": { + "en": "Recording", + "cn": "录音", + "jp": "録音" + }, + "40": { + "en": "Recording Assistant", + "cn": "录音助理", + "jp": "録音アシスタント 録音助手" + }, + "41": { + "en": "Series Production Director", + "cn": "系列监督", + "jp": "" + }, + "42": { + "en": "Production", + "cn": "製作", + "jp": "" + }, + "43": { + "en": "Setting", + "cn": "设定", + "jp": "設定" + }, + "44": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "" + }, + "45": { + "en": "Sound", + "cn": "音响", + "jp": "音響 音声" + }, + "46": { + "en": "Sound Effects", + "cn": "音效", + "jp": "音響効果" + }, + "47": { + "en": "Special Effects", + "cn": "特效", + "jp": "視覚効果" + }, + "48": { + "en": "ADR Director", + "cn": "配音监督", + "jp": "" + }, + "49": { + "en": "Co-Director", + "cn": "联合导演", + "jp": "" + }, + "50": { + "en": "Setting", + "cn": "背景设定", + "jp": "基本設定 場面設定 場面設計 設定" + }, + "51": { + "en": "In-Between Animation", + "cn": "补间动画", + "jp": "動画" + }, + "52": { + "en": "Executive Producer", + "cn": "执行制片人", + "jp": "製作総指揮" + }, + "53": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー アシスタントプロデューサー" + }, + "54": { + "en": "Producer", + "cn": "制片人", + "jp": "プロデュース プロデューサー" + }, + "55": { + "en": "Music Assistant", + "cn": "音乐助理", + "jp": "音楽アシスタント" + }, + "56": { + "en": "Assistant Production Manager", + "cn": "制作进行", + "jp": "制作進行", + "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等" + }, + "57": { + "en": "Casting Director", + "cn": "演员监督", + "jp": "キャスティングコーディネーター監督" + }, + "58": { + "en": "Chief Producer", + "cn": "总制片人", + "jp": "チーフプロデューサー チーフ制作 総合プロデューサー" + }, + "59": { + "en": "Co-Producer", + "cn": "联合制片人", + "jp": "" + }, + "60": { + "en": "Dialogue Editing", + "cn": "台词编辑", + "jp": "台詞編集" + }, + "61": { + "en": "Post-Production Assistant", + "cn": "后期制片协调", + "jp": "ポストプロダクション協力" + }, + "62": { + "en": "Production Assistant", + "cn": "制作助理", + "jp": "制作アシスタント 制作補佐 製作補" + }, + "63": { + "en": "Production", + "cn": "制作", + "jp": "製作 製作スタジオ" + }, + "64": { + "en": "Production Coordination", + "cn": "制作协调", + "jp": "制作コーディネーター" + }, + "65": { + "en": "Music Work", + "cn": "音乐制作", + "jp": "楽曲制作 音楽制作" + }, + "66": { + "en": "Special Thanks", + "cn": "特别鸣谢", + "jp": "友情協力" + }, + "67": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション" + }, + "69": { + "en": "CG Director", + "cn": "CG 导演", + "jp": "CG 監督" + }, + "70": { + "en": "Mechanical Animation Direction", + "cn": "机械作画监督", + "jp": "メカニック作監" + }, + "71": { + "en": "Art Design", + "cn": "美术设计", + "jp": "美術設定" + }, + "72": { + "en": "Assistant Director", + "cn": "副导演", + "jp": "助監督 / 監督補佐" + }, + "73": { + "en": "OP ED", + "cn": "OP・ED 分镜", + "jp": "OP・ED 分鏡" + }, + "74": { + "en": "Chief Director", + "cn": "总导演", + "jp": "総監督" + }, + "75": { + "en": "3DCG", + "cn": "3DCG", + "jp": "" + }, + "76": { + "en": "Work Assistance", + "cn": "制作协力", + "jp": "制作協力 / 作品協力" + }, + "77": { + "en": "Action Animation Direction", + "cn": "动作作画监督", + "jp": "アクション作画監督" + }, + "80": { + "en": "Supervising Producer", + "cn": "监制", + "jp": "" + }, + "81": { + "en": "Assistance", + "cn": "协力", + "jp": "協力" + }, + "82": { + "en": "Photography", + "cn": "摄影", + "jp": "撮影" + }, + "83": { + "en": "Assistant Production Manager Assistance", + "cn": "制作进行协力", + "jp": "制作進行協力" + }, + "84": { + "en": "Design Manager", + "cn": "设定制作", + "jp": "設定制作 制作設定", + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" + }, + "85": { + "en": "Music Producer", + "cn": "音乐制作人", + "jp": "音楽プロデューサー" + }, + "86": { + "en": "3DCG Director", + "cn": "3DCG 导演", + "jp": "3DCG 監督" + }, + "87": { + "en": "Animation Producer", + "cn": "动画制片人", + "jp": "アニメプロデューサー アニメーションプロデューサー" + }, + "88": { + "en": "Special Effects Animation Direction", + "cn": "特效作画监督", + "jp": "エフェクト作画監督" + }, + "89": { + "en": "Chief Episode Direction", + "cn": "主演出", + "jp": "チーフ演出" + }, + "90": { + "en": "Assistant Animation Direction", + "cn": "作画监督助理", + "jp": "作画監督補佐" + }, + "91": { + "en": "Assistant Episode Direction", + "cn": "演出助理", + "jp": "演出助手 演出補佐 演出協力" + }, + "92": { + "en": "Main Animator", + "cn": "主动画师", + "jp": "メインアニメーター" + } + }, + "3": { + "3001": { + "en": "Artist", + "cn": "艺术家", + "jp": "" + }, + "3002": { + "en": "Producer", + "cn": "制作人", + "jp": "" + }, + "3003": { + "en": "Composer", + "cn": "作曲", + "jp": "" + }, + "3004": { + "en": "Label", + "cn": "厂牌", + "jp": "レーベル" + }, + "3005": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "3006": { + "en": "Lyric", + "cn": "作词", + "jp": "" + }, + "3007": { + "en": "Recording", + "cn": "录音", + "jp": "" + }, + "3008": { + "en": "Arrange", + "cn": "编曲", + "jp": "" + }, + "3009": { + "en": "Illustrator", + "cn": "插图", + "jp": "" + }, + "3010": { + "en": "Scenario", + "cn": "脚本", + "jp": "シナリオ" + }, + "3011": { + "en": "O.P.", + "cn": "出版方", + "jp": "音楽出版社" + }, + "3012": { + "en": "Mastering", + "cn": "母带制作", + "jp": "" + }, + "3013": { + "en": "Mixing", + "cn": "混音", + "jp": "" + }, + "3014": { + "en": "Instrument", + "cn": "乐器", + "jp": "" + }, + "3015": { + "en": "Vocal", + "cn": "声乐", + "jp": "" + } + }, + "4": { + "1001": { + "en": "Developer", + "cn": "开发", + "jp": "開発元" + }, + "1002": { + "en": "Publisher", + "cn": "发行", + "jp": "発売元" + }, + "1003": { + "en": "Game Designer", + "cn": "游戏设计师", + "jp": "ゲームクリエイター" + }, + "1004": { + "en": "", + "cn": "剧本", + "jp": "腳本" + }, + "1005": { + "en": "", + "cn": "美工", + "jp": "美術" + }, + "1006": { + "en": "", + "cn": "音乐", + "jp": "音楽" + }, + "1007": { + "en": "", + "cn": "关卡设计", + "jp": "" + }, + "1008": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定 キャラクターデザイン" + }, + "1009": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "" + }, + "1010": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "" + }, + "1011": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "1012": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "" + }, + "1013": { + "en": "", + "cn": "原画", + "jp": "" + }, + "1014": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション" + }, + "1015": { + "en": "", + "cn": "原作", + "jp": "" + }, + "1016": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 演出 シリーズ監督" + }, + "1017": { + "en": "", + "cn": "动画监督", + "jp": "アニメーション監督" + }, + "1018": { + "en": "", + "cn": "制作总指挥", + "jp": "" + }, + "1019": { + "en": "QC", + "cn": "QC", + "jp": "" + }, + "1020": { + "en": "", + "cn": "动画剧本", + "jp": "アニメーション脚本" + }, + "1021": { + "en": "Program", + "cn": "程序", + "jp": "プログラム" + }, + "1022": { + "en": "", + "cn": "协力", + "jp": "協力" + }, + "1023": { + "en": "", + "cn": "CG 监修", + "jp": "CG 監修" + }, + "1024": { + "en": "", + "cn": "SD原画", + "jp": "" + }, + "1025": { + "en": "", + "cn": "背景", + "jp": "" + }, + "1026": { + "en": "", + "cn": "监修", + "jp": "監修" + }, + "1027": { + "en": "", + "cn": "系列构成", + "jp": "シリーズ構成" + }, + "1028": { + "en": "", + "cn": "企画", + "jp": "" + }, + "1029": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定" + }, + "1030": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "" + }, + "1031": { + "en": "", + "cn": "作画监督", + "jp": "作画監督" + }, + "1032": { + "en": "Producer", + "cn": "制作人", + "jp": "プロデューサー" + } + }, + "6": { + "4001": { + "en": "creator", + "cn": "原作", + "jp": "" + }, + "4002": { + "en": "director", + "cn": "导演", + "jp": "" + }, + "4003": { + "en": "writer", + "cn": "编剧", + "jp": "" + }, + "4004": { + "en": "composer", + "cn": "音乐", + "jp": "" + }, + "4005": { + "en": "executive producer", + "cn": "执行制片人", + "jp": "製作総指揮" + }, + "4006": { + "en": "co exec", + "cn": "共同执行制作", + "jp": "" + }, + "4007": { + "en": "producer", + "cn": "制片人/制作人", + "jp": "プロデューサー" + }, + "4008": { + "en": "supervising producer", + "cn": "监制", + "jp": "" + }, + "4009": { + "en": "consulting producer", + "cn": "副制作人/制作顾问", + "jp": "" + }, + "4010": { + "en": "story", + "cn": "故事", + "jp": "" + }, + "4011": { + "en": "story editor", + "cn": "编审", + "jp": "" + }, + "4012": { + "en": "editor", + "cn": "剪辑", + "jp": "" + }, + "4013": { + "en": "creative director", + "cn": "创意总监", + "jp": "" + }, + "4014": { + "en": "cinematography", + "cn": "摄影", + "jp": "" + }, + "4015": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "" + }, + "4016": { + "en": "Actor", + "cn": "主演", + "jp": "" + }, + "4017": { + "en": "Supporting Actor", + "cn": "配角", + "jp": "" + }, + "4018": { + "en": "Production", + "cn": "制作", + "jp": "製作 製作スタジオ" + }, + "4019": { + "en": "Present", + "cn": "出品", + "jp": "配給" + } + } + } +} diff --git a/scripts/build-buid.mjs b/scripts/build-common.mjs similarity index 53% rename from scripts/build-buid.mjs rename to scripts/build-common.mjs index 62c34470d..1224ad9d0 100644 --- a/scripts/build-buid.mjs +++ b/scripts/build-common.mjs @@ -9,3 +9,13 @@ fs.writeFileSync( "pkg/vars/platform.go.json", JSON.stringify(Object.fromEntries(Object.entries(data.platforms).filter(([key, value]) => /\d/.test(key))), null, 2), ); + +fs.writeFileSync( + "pkg/vars/staffs.go.json", + JSON.stringify(yaml.parse(fs.readFileSync("pkg/vars/common/subject_staffs.yml", "utf-8")), null, 2), +); + +fs.writeFileSync( + "pkg/vars/relations.go.json", + JSON.stringify(yaml.parse(fs.readFileSync("pkg/vars/common/subject_relations.yml", "utf-8")), null, 2), +); From 971b3c0fb324a2236b0c2441f8b2d2f198df4c6f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 27 Apr 2025 18:52:39 +0800 Subject: [PATCH 630/888] fix: struct tag --- pkg/vars/index.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/vars/index.go b/pkg/vars/index.go index 7cfdef7a0..e0abb36ab 100644 --- a/pkg/vars/index.go +++ b/pkg/vars/index.go @@ -61,7 +61,7 @@ func init() { platformRaw = nil var staffsYaml struct { - Staffs map[model.SubjectType]map[StaffID]Staff `yaml:"staffs"` + Staffs map[model.SubjectType]map[StaffID]Staff `json:"staffs"` } if err := json.Unmarshal(staffRaw, &staffsYaml); err != nil { log.Panicln("can't unmarshal raw staffs.go.json to go type", err) @@ -70,7 +70,7 @@ func init() { StaffMap = staffsYaml.Staffs var relationYAML struct { - Relations map[model.SubjectType]map[RelationID]Relation `yaml:"relations"` + Relations map[model.SubjectType]map[RelationID]Relation `json:"relations"` } if err := json.Unmarshal(relationRaw, &relationYAML); err != nil { log.Panicln("can't unmarshal raw relations.go.json to go type", err) From 407b2121229a9c59d5dea6cb5c03367b93701d6b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:27:52 +0800 Subject: [PATCH 631/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.79.3 (#808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9a1285d0e..029a44ccd 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.67 - github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 + github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -56,7 +56,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.2 // indirect diff --git a/go.sum b/go.sum index c63b80afc..138d9aa73 100644 --- a/go.sum +++ b/go.sum @@ -21,14 +21,14 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcu github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 h1:lguz0bmOoGzozP9XfRJR1QIayEYo+2vP/No3OfLF0pU= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1 h1:4nm2G6A4pV9rdlWzGMPv4BNtQp22v1hg3yrtkYpeLl8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2 h1:tWUG+4wZqdMl/znThEk9tcCy8tTMxq8dW0JTgamohrY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3 h1:BRXS0U76Z8wfF+bnkilA2QwpIch6URlm++yPUt9QPmQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3/go.mod h1:bNXKFFyaiVvWuR6O16h/I1724+aXe/tAkA9/QS01t5k= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From a47621dbb52125fa862159d90e4d4da089980ac0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:28:17 +0800 Subject: [PATCH 632/888] ci: update docker/build-push-action digest to 14487ce (#807) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 7ab265b3a..a0b2c40bf 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -64,7 +64,7 @@ jobs: password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6 + uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6 with: context: ./ provenance: false From 6c5404887b6f96be89487c53987ef7bfcba4b6fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:28:26 +0800 Subject: [PATCH 633/888] ci: update codecov/codecov-action digest to ad3126e (#806) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d5350cb60..9476f03b8 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -69,7 +69,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5 + - uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required From 4bf517a8c0e10a91def39163a622d9cbe43f3182 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:29:53 +0800 Subject: [PATCH 634/888] ci: update actions/setup-node digest to 49933ea (#805) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index dacad40d3..cf7bee7ad 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -21,7 +21,7 @@ jobs: submodules: true - name: Install Node LTS - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: cache: yarn diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 874c97152..44d28ffbd 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 20 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index d4fa80f99..c106239b4 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -29,7 +29,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: "lts/*" cache: "yarn" From d9e4bc62bc12b2a3b2406cc902786f1d6d2e3ebf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:30:02 +0800 Subject: [PATCH 635/888] ci: update jaxxstorm/action-install-gh-release action to v2.1.0 (#815) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 9476f03b8..5ce917256 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@4304621e8c48d66093a8a214af5d5b5bc3b3d943 # v2.0.0 + uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 with: repo: gotestyourself/gotestsum tag: v1.12.1 From 87f350065b5d719930eab7ee26eae46649cf1f57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:30:09 +0800 Subject: [PATCH 636/888] build(deps): update module gorm.io/plugin/dbresolver to v1.6.0 (#814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 029a44ccd..6f9b309f0 100644 --- a/go.mod +++ b/go.mod @@ -42,8 +42,8 @@ require ( golang.org/x/text v0.24.0 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.26 - gorm.io/gorm v1.25.12 - gorm.io/plugin/dbresolver v1.5.3 + gorm.io/gorm v1.26.0 + gorm.io/plugin/dbresolver v1.6.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 138d9aa73..a2d3d8507 100644 --- a/go.sum +++ b/go.sum @@ -336,7 +336,6 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= @@ -374,12 +373,12 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8= -gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ= +gorm.io/gorm v1.26.0 h1:9lqQVPG5aNNS6AyHdRiwScAVnXHg/L/Srzx55G5fOgs= +gorm.io/gorm v1.26.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.5.3 h1:wFwINGZZmttuu9h7XpvbDHd8Lf9bb8GNzp/NpAMV2wU= -gorm.io/plugin/dbresolver v1.5.3/go.mod h1:TSrVhaUg2DZAWP3PrHlDlITEJmNOkL0tFTjvTEsQ4XE= +gorm.io/plugin/dbresolver v1.6.0 h1:XvKDeOtTn1EIX6s4SrKpEH82q0gXVemhYjbYZFGFVcw= +gorm.io/plugin/dbresolver v1.6.0/go.mod h1:tctw63jdrOezFR9HmrKnPkmig3m5Edem9fdxk9bQSzM= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= From 26c20acda6d9a42e691385d7cb347f8a97d3a4f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:33:10 +0800 Subject: [PATCH 637/888] build(deps): update module github.com/samber/lo to v1.50.0 (#811) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6f9b309f0..2953fd32c 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 github.com/redis/rueidis v1.0.57 - github.com/samber/lo v1.49.1 + github.com/samber/lo v1.50.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index a2d3d8507..93e52c619 100644 --- a/go.sum +++ b/go.sum @@ -217,8 +217,8 @@ github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= -github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= +github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= +github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= From ea21a6c5cefc8799e8d1cbcec496237d67aab1c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:39:27 +0800 Subject: [PATCH 638/888] build(deps): update module github.com/redis/rueidis to v1.0.59 (#809) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2953fd32c..9fb70ed6c 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/meilisearch/meilisearch-go v0.31.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 - github.com/redis/rueidis v1.0.57 + github.com/redis/rueidis v1.0.59 github.com/samber/lo v1.50.0 github.com/segmentio/kafka-go v0.4.47 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 93e52c619..b3dd253e7 100644 --- a/go.sum +++ b/go.sum @@ -206,8 +206,8 @@ github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/redis/rueidis v1.0.57 h1:eI9GDwEMjJcTMzFkiCFPZa/nJYYKgbfNBnpT7A6Wm2E= -github.com/redis/rueidis v1.0.57/go.mod h1:g660/008FMYmAF46HG4lmcpcgFNj+jCjCAZUUM+wEbs= +github.com/redis/rueidis v1.0.59 h1:r4SpgqrKnKwO2omN+BB5+24OCu+K15zmf/2b/zP7NKw= +github.com/redis/rueidis v1.0.59/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 75b38ac47805e3ce7c8be61c56cc3dbfe9574b3a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 May 2025 06:39:53 +0800 Subject: [PATCH 639/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to v12 (#816) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 78e67b68f..b2721b492 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^11.9.3", + "@apidevtools/json-schema-ref-parser": "^12.0.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.7.1" diff --git a/yarn.lock b/yarn.lock index c52d6fa12..7c00306ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^11.9.3": - version "11.9.3" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7" - integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ== +"@apidevtools/json-schema-ref-parser@^12.0.1": + version "12.0.1" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-12.0.1.tgz#74cd3f3a8338b4a98193f95fc82714dda6a19bcd" + integrity sha512-D3n3T19ly/RYyEvsrqKa/cSAlzQF8KXj1o0XLTI+9GKnJvdHT3WW50yZYCf+4JU7+pLlhXZVV1q1AJ0SPN/pmw== dependencies: "@jsdevtools/ono" "^7.1.3" "@types/json-schema" "^7.0.15" From 81ac05b902a44d051627a7f5462b99f75ad24c48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 4 May 2025 05:18:45 +0800 Subject: [PATCH 640/888] build(deps): update module github.com/vektra/mockery/v3 to v3.2.5 (#812) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 2 +- go.sum | 4 ++-- internal/mocks/CacheRedisCache.go | 7 +------ internal/mocks/UserRepo.go | 11 +++-------- 4 files changed, 7 insertions(+), 17 deletions(-) diff --git a/go.mod b/go.mod index 9fb70ed6c..1433508d9 100644 --- a/go.mod +++ b/go.mod @@ -108,7 +108,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.0.2 // indirect + github.com/vektra/mockery/v3 v3.2.5 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index b3dd253e7..0b478148c 100644 --- a/go.sum +++ b/go.sum @@ -254,8 +254,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.0.2 h1:U2a2PpaMDgufwtIpYxzQBBt5xcTDeOfN4obVjRckxWw= -github.com/vektra/mockery/v3 v3.0.2/go.mod h1:UQwIbP5U84gbN/nkMyYVSW+tp7BFhaSym907rfS1HL4= +github.com/vektra/mockery/v3 v3.2.5 h1:l65hiOW/zR7Z9XJtCS4EpOP3jhGExS2MV8INWwgcuaQ= +github.com/vektra/mockery/v3 v3.2.5/go.mod h1:UQwIbP5U84gbN/nkMyYVSW+tp7BFhaSym907rfS1HL4= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= diff --git a/internal/mocks/CacheRedisCache.go b/internal/mocks/CacheRedisCache.go index f10a4a5a0..ad4c83c77 100644 --- a/internal/mocks/CacheRedisCache.go +++ b/internal/mocks/CacheRedisCache.go @@ -76,12 +76,7 @@ func (_e *RedisCache_Expecter) Del(ctx interface{}, keys ...interface{}) *RedisC func (_c *RedisCache_Del_Call) Run(run func(ctx context.Context, keys ...string)) *RedisCache_Del_Call { _c.Call.Run(func(args mock.Arguments) { - variadicArgs := make([]string, len(args)-1) - for i, a := range args[1:] { - if a != nil { - variadicArgs[i] = a.(string) - } - } + variadicArgs := args[1].([]string) run(args[0].(context.Context), variadicArgs...) }) return _c diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index 37f3b0452..149697910 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -55,8 +55,8 @@ func (_mock *UserRepo) CheckIsFriendToOthers(ctx context.Context, selfID model.U var r0 bool var r1 error - if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, []model.UserID) (bool, error)); ok { - return returnFunc(ctx, selfID, otherIDs) + if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, ...model.UserID) (bool, error)); ok { + return returnFunc(ctx, selfID, otherIDs...) } if returnFunc, ok := ret.Get(0).(func(context.Context, model.UserID, ...model.UserID) bool); ok { r0 = returnFunc(ctx, selfID, otherIDs...) @@ -87,12 +87,7 @@ func (_e *UserRepo_Expecter) CheckIsFriendToOthers(ctx interface{}, selfID inter func (_c *UserRepo_CheckIsFriendToOthers_Call) Run(run func(ctx context.Context, selfID model.UserID, otherIDs ...model.UserID)) *UserRepo_CheckIsFriendToOthers_Call { _c.Call.Run(func(args mock.Arguments) { - variadicArgs := make([]model.UserID, len(args)-2) - for i, a := range args[2:] { - if a != nil { - variadicArgs[i] = a.(model.UserID) - } - } + variadicArgs := args[2].([]model.UserID) run(args[0].(context.Context), args[1].(model.UserID), variadicArgs...) }) return _c From 1aa859ab6bd5237b4549cfeae5f2d6e4283646d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 4 May 2025 05:19:56 +0800 Subject: [PATCH 641/888] build(deps): update module gorm.io/gen to v0.3.27 (#810) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- dal/dao/chii_index.gen.go | 1 + dal/dao/chii_index_related.gen.go | 1 + dal/query/chii_characters.gen.go | 13 +++++++++ dal/query/chii_crt_cast_index.gen.go | 39 +++++++++++++++++++++++++ dal/query/chii_crt_subject_index.gen.go | 26 +++++++++++++++++ dal/query/chii_episodes.gen.go | 13 +++++++++ dal/query/chii_index.gen.go | 6 +++- dal/query/chii_index_related.gen.go | 19 +++++++++++- dal/query/chii_members.gen.go | 13 +++++++++ dal/query/chii_person_cs_index.gen.go | 26 +++++++++++++++++ dal/query/chii_persons.gen.go | 13 +++++++++ dal/query/chii_subject_relations.gen.go | 13 +++++++++ dal/query/chii_subject_revisions.gen.go | 13 +++++++++ dal/query/chii_subjects.gen.go | 13 +++++++++ dal/query/chii_tag_neue_list.gen.go | 13 +++++++++ go.mod | 4 +-- go.sum | 8 ++--- 17 files changed, 226 insertions(+), 8 deletions(-) diff --git a/dal/dao/chii_index.gen.go b/dal/dao/chii_index.gen.go index 16506cb19..fb8f1b369 100644 --- a/dal/dao/chii_index.gen.go +++ b/dal/dao/chii_index.gen.go @@ -20,6 +20,7 @@ type Index struct { SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数" json:""` // 内含条目总数 CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数" json:""` // 收藏数 Stats string `gorm:"column:idx_stats;type:mediumtext;not null" json:""` + Award uint32 `gorm:"column:idx_award;type:mediumint(8) unsigned;not null" json:""` CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间" json:""` // 创建时间 UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null" json:""` CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID" json:""` // 创建人UID diff --git a/dal/dao/chii_index_related.gen.go b/dal/dao/chii_index_related.gen.go index c3584afe0..ee5e5df2c 100644 --- a/dal/dao/chii_index_related.gen.go +++ b/dal/dao/chii_index_related.gen.go @@ -18,6 +18,7 @@ type IndexSubject struct { SubjectType uint8 `gorm:"column:idx_rlt_type;type:smallint(6) unsigned;not null;comment:关联条目类型" json:""` // 关联条目类型 SubjectID uint32 `gorm:"column:idx_rlt_sid;type:mediumint(8) unsigned;not null;comment:关联条目ID" json:""` // 关联条目ID Order uint32 `gorm:"column:idx_rlt_order;type:mediumint(8) unsigned;not null" json:""` + Award string `gorm:"column:idx_rlt_award;type:varchar(255);not null" json:""` Comment string `gorm:"column:idx_rlt_comment;type:mediumtext;not null" json:""` CreatedTime uint32 `gorm:"column:idx_rlt_dateline;type:int(10) unsigned;not null" json:""` Deleted soft_delete.DeletedAt `gorm:"column:idx_rlt_ban;type:tinyint(1) unsigned;not null;softDelete:flag" json:""` diff --git a/dal/query/chii_characters.gen.go b/dal/query/chii_characters.gen.go index 64e9f2c43..ca35b58b7 100644 --- a/dal/query/chii_characters.gen.go +++ b/dal/query/chii_characters.gen.go @@ -155,11 +155,14 @@ func (c *character) fillFieldMap() { func (c character) clone(db *gorm.DB) character { c.characterDo.ReplaceConnPool(db.Statement.ConnPool) + c.Fields.db = db.Session(&gorm.Session{Initialized: true}) + c.Fields.db.Statement.ConnPool = db.Statement.ConnPool return c } func (c character) replaceDB(db *gorm.DB) character { c.characterDo.ReplaceDB(db) + c.Fields.db = db.Session(&gorm.Session{}) return c } @@ -196,6 +199,11 @@ func (a characterHasOneFields) Model(m *dao.Character) *characterHasOneFieldsTx return &characterHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } +func (a characterHasOneFields) Unscoped() *characterHasOneFields { + a.db = a.db.Unscoped() + return &a +} + type characterHasOneFieldsTx struct{ tx *gorm.Association } func (a characterHasOneFieldsTx) Find() (result *dao.PersonField, err error) { @@ -234,6 +242,11 @@ func (a characterHasOneFieldsTx) Count() int64 { return a.tx.Count() } +func (a characterHasOneFieldsTx) Unscoped() *characterHasOneFieldsTx { + a.tx = a.tx.Unscoped() + return &a +} + type characterDo struct{ gen.DO } func (c characterDo) Debug() *characterDo { diff --git a/dal/query/chii_crt_cast_index.gen.go b/dal/query/chii_crt_cast_index.gen.go index 0382f5082..d39af2136 100644 --- a/dal/query/chii_crt_cast_index.gen.go +++ b/dal/query/chii_crt_cast_index.gen.go @@ -140,11 +140,20 @@ func (c *cast) fillFieldMap() { func (c cast) clone(db *gorm.DB) cast { c.castDo.ReplaceConnPool(db.Statement.ConnPool) + c.Character.db = db.Session(&gorm.Session{Initialized: true}) + c.Character.db.Statement.ConnPool = db.Statement.ConnPool + c.Subject.db = db.Session(&gorm.Session{Initialized: true}) + c.Subject.db.Statement.ConnPool = db.Statement.ConnPool + c.Person.db = db.Session(&gorm.Session{Initialized: true}) + c.Person.db.Statement.ConnPool = db.Statement.ConnPool return c } func (c cast) replaceDB(db *gorm.DB) cast { c.castDo.ReplaceDB(db) + c.Character.db = db.Session(&gorm.Session{}) + c.Subject.db = db.Session(&gorm.Session{}) + c.Person.db = db.Session(&gorm.Session{}) return c } @@ -185,6 +194,11 @@ func (a castHasOneCharacter) Model(m *dao.Cast) *castHasOneCharacterTx { return &castHasOneCharacterTx{a.db.Model(m).Association(a.Name())} } +func (a castHasOneCharacter) Unscoped() *castHasOneCharacter { + a.db = a.db.Unscoped() + return &a +} + type castHasOneCharacterTx struct{ tx *gorm.Association } func (a castHasOneCharacterTx) Find() (result *dao.Character, err error) { @@ -223,6 +237,11 @@ func (a castHasOneCharacterTx) Count() int64 { return a.tx.Count() } +func (a castHasOneCharacterTx) Unscoped() *castHasOneCharacterTx { + a.tx = a.tx.Unscoped() + return &a +} + type castHasOneSubject struct { db *gorm.DB @@ -260,6 +279,11 @@ func (a castHasOneSubject) Model(m *dao.Cast) *castHasOneSubjectTx { return &castHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a castHasOneSubject) Unscoped() *castHasOneSubject { + a.db = a.db.Unscoped() + return &a +} + type castHasOneSubjectTx struct{ tx *gorm.Association } func (a castHasOneSubjectTx) Find() (result *dao.Subject, err error) { @@ -298,6 +322,11 @@ func (a castHasOneSubjectTx) Count() int64 { return a.tx.Count() } +func (a castHasOneSubjectTx) Unscoped() *castHasOneSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type castHasOnePerson struct { db *gorm.DB @@ -335,6 +364,11 @@ func (a castHasOnePerson) Model(m *dao.Cast) *castHasOnePersonTx { return &castHasOnePersonTx{a.db.Model(m).Association(a.Name())} } +func (a castHasOnePerson) Unscoped() *castHasOnePerson { + a.db = a.db.Unscoped() + return &a +} + type castHasOnePersonTx struct{ tx *gorm.Association } func (a castHasOnePersonTx) Find() (result *dao.Person, err error) { @@ -373,6 +407,11 @@ func (a castHasOnePersonTx) Count() int64 { return a.tx.Count() } +func (a castHasOnePersonTx) Unscoped() *castHasOnePersonTx { + a.tx = a.tx.Unscoped() + return &a +} + type castDo struct{ gen.DO } func (c castDo) Debug() *castDo { diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index 0f18a66a0..3844f6371 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -135,11 +135,17 @@ func (c *characterSubjects) fillFieldMap() { func (c characterSubjects) clone(db *gorm.DB) characterSubjects { c.characterSubjectsDo.ReplaceConnPool(db.Statement.ConnPool) + c.Character.db = db.Session(&gorm.Session{Initialized: true}) + c.Character.db.Statement.ConnPool = db.Statement.ConnPool + c.Subject.db = db.Session(&gorm.Session{Initialized: true}) + c.Subject.db.Statement.ConnPool = db.Statement.ConnPool return c } func (c characterSubjects) replaceDB(db *gorm.DB) characterSubjects { c.characterSubjectsDo.ReplaceDB(db) + c.Character.db = db.Session(&gorm.Session{}) + c.Subject.db = db.Session(&gorm.Session{}) return c } @@ -180,6 +186,11 @@ func (a characterSubjectsHasOneCharacter) Model(m *dao.CharacterSubjects) *chara return &characterSubjectsHasOneCharacterTx{a.db.Model(m).Association(a.Name())} } +func (a characterSubjectsHasOneCharacter) Unscoped() *characterSubjectsHasOneCharacter { + a.db = a.db.Unscoped() + return &a +} + type characterSubjectsHasOneCharacterTx struct{ tx *gorm.Association } func (a characterSubjectsHasOneCharacterTx) Find() (result *dao.Character, err error) { @@ -218,6 +229,11 @@ func (a characterSubjectsHasOneCharacterTx) Count() int64 { return a.tx.Count() } +func (a characterSubjectsHasOneCharacterTx) Unscoped() *characterSubjectsHasOneCharacterTx { + a.tx = a.tx.Unscoped() + return &a +} + type characterSubjectsHasOneSubject struct { db *gorm.DB @@ -255,6 +271,11 @@ func (a characterSubjectsHasOneSubject) Model(m *dao.CharacterSubjects) *charact return &characterSubjectsHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a characterSubjectsHasOneSubject) Unscoped() *characterSubjectsHasOneSubject { + a.db = a.db.Unscoped() + return &a +} + type characterSubjectsHasOneSubjectTx struct{ tx *gorm.Association } func (a characterSubjectsHasOneSubjectTx) Find() (result *dao.Subject, err error) { @@ -293,6 +314,11 @@ func (a characterSubjectsHasOneSubjectTx) Count() int64 { return a.tx.Count() } +func (a characterSubjectsHasOneSubjectTx) Unscoped() *characterSubjectsHasOneSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type characterSubjectsDo struct{ gen.DO } func (c characterSubjectsDo) Debug() *characterSubjectsDo { diff --git a/dal/query/chii_episodes.gen.go b/dal/query/chii_episodes.gen.go index ca282ffd5..04cfb6e9d 100644 --- a/dal/query/chii_episodes.gen.go +++ b/dal/query/chii_episodes.gen.go @@ -166,11 +166,14 @@ func (e *episode) fillFieldMap() { func (e episode) clone(db *gorm.DB) episode { e.episodeDo.ReplaceConnPool(db.Statement.ConnPool) + e.Subject.db = db.Session(&gorm.Session{Initialized: true}) + e.Subject.db.Statement.ConnPool = db.Statement.ConnPool return e } func (e episode) replaceDB(db *gorm.DB) episode { e.episodeDo.ReplaceDB(db) + e.Subject.db = db.Session(&gorm.Session{}) return e } @@ -211,6 +214,11 @@ func (a episodeBelongsToSubject) Model(m *dao.Episode) *episodeBelongsToSubjectT return &episodeBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a episodeBelongsToSubject) Unscoped() *episodeBelongsToSubject { + a.db = a.db.Unscoped() + return &a +} + type episodeBelongsToSubjectTx struct{ tx *gorm.Association } func (a episodeBelongsToSubjectTx) Find() (result *dao.Subject, err error) { @@ -249,6 +257,11 @@ func (a episodeBelongsToSubjectTx) Count() int64 { return a.tx.Count() } +func (a episodeBelongsToSubjectTx) Unscoped() *episodeBelongsToSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type episodeDo struct{ gen.DO } func (e episodeDo) Debug() *episodeDo { diff --git a/dal/query/chii_index.gen.go b/dal/query/chii_index.gen.go index 334fb4e9c..c08fcb303 100644 --- a/dal/query/chii_index.gen.go +++ b/dal/query/chii_index.gen.go @@ -35,6 +35,7 @@ func newIndex(db *gorm.DB, opts ...gen.DOOption) index { _index.SubjectCount = field.NewUint32(tableName, "idx_subject_total") _index.CollectCount = field.NewUint32(tableName, "idx_collects") _index.Stats = field.NewString(tableName, "idx_stats") + _index.Award = field.NewUint32(tableName, "idx_award") _index.CreatedTime = field.NewInt32(tableName, "idx_dateline") _index.UpdatedTime = field.NewUint32(tableName, "idx_lasttouch") _index.CreatorID = field.NewUint32(tableName, "idx_uid") @@ -57,6 +58,7 @@ type index struct { SubjectCount field.Uint32 // 内含条目总数 CollectCount field.Uint32 // 收藏数 Stats field.String + Award field.Uint32 CreatedTime field.Int32 // 创建时间 UpdatedTime field.Uint32 CreatorID field.Uint32 // 创建人UID @@ -85,6 +87,7 @@ func (i *index) updateTableName(table string) *index { i.SubjectCount = field.NewUint32(table, "idx_subject_total") i.CollectCount = field.NewUint32(table, "idx_collects") i.Stats = field.NewString(table, "idx_stats") + i.Award = field.NewUint32(table, "idx_award") i.CreatedTime = field.NewInt32(table, "idx_dateline") i.UpdatedTime = field.NewUint32(table, "idx_lasttouch") i.CreatorID = field.NewUint32(table, "idx_uid") @@ -113,7 +116,7 @@ func (i *index) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (i *index) fillFieldMap() { - i.fieldMap = make(map[string]field.Expr, 12) + i.fieldMap = make(map[string]field.Expr, 13) i.fieldMap["idx_id"] = i.ID i.fieldMap["idx_type"] = i.Type i.fieldMap["idx_title"] = i.Title @@ -122,6 +125,7 @@ func (i *index) fillFieldMap() { i.fieldMap["idx_subject_total"] = i.SubjectCount i.fieldMap["idx_collects"] = i.CollectCount i.fieldMap["idx_stats"] = i.Stats + i.fieldMap["idx_award"] = i.Award i.fieldMap["idx_dateline"] = i.CreatedTime i.fieldMap["idx_lasttouch"] = i.UpdatedTime i.fieldMap["idx_uid"] = i.CreatorID diff --git a/dal/query/chii_index_related.gen.go b/dal/query/chii_index_related.gen.go index 973feba02..9d3c115fd 100644 --- a/dal/query/chii_index_related.gen.go +++ b/dal/query/chii_index_related.gen.go @@ -33,6 +33,7 @@ func newIndexSubject(db *gorm.DB, opts ...gen.DOOption) indexSubject { _indexSubject.SubjectType = field.NewUint8(tableName, "idx_rlt_type") _indexSubject.SubjectID = field.NewUint32(tableName, "idx_rlt_sid") _indexSubject.Order = field.NewUint32(tableName, "idx_rlt_order") + _indexSubject.Award = field.NewString(tableName, "idx_rlt_award") _indexSubject.Comment = field.NewString(tableName, "idx_rlt_comment") _indexSubject.CreatedTime = field.NewUint32(tableName, "idx_rlt_dateline") _indexSubject.Deleted = field.NewField(tableName, "idx_rlt_ban") @@ -63,6 +64,7 @@ type indexSubject struct { SubjectType field.Uint8 // 关联条目类型 SubjectID field.Uint32 // 关联条目ID Order field.Uint32 + Award field.String Comment field.String CreatedTime field.Uint32 Deleted field.Field @@ -89,6 +91,7 @@ func (i *indexSubject) updateTableName(table string) *indexSubject { i.SubjectType = field.NewUint8(table, "idx_rlt_type") i.SubjectID = field.NewUint32(table, "idx_rlt_sid") i.Order = field.NewUint32(table, "idx_rlt_order") + i.Award = field.NewString(table, "idx_rlt_award") i.Comment = field.NewString(table, "idx_rlt_comment") i.CreatedTime = field.NewUint32(table, "idx_rlt_dateline") i.Deleted = field.NewField(table, "idx_rlt_ban") @@ -120,13 +123,14 @@ func (i *indexSubject) GetFieldByName(fieldName string) (field.OrderExpr, bool) } func (i *indexSubject) fillFieldMap() { - i.fieldMap = make(map[string]field.Expr, 10) + i.fieldMap = make(map[string]field.Expr, 11) i.fieldMap["idx_rlt_id"] = i.ID i.fieldMap["idx_rlt_cat"] = i.Cat i.fieldMap["idx_rlt_rid"] = i.IndexID i.fieldMap["idx_rlt_type"] = i.SubjectType i.fieldMap["idx_rlt_sid"] = i.SubjectID i.fieldMap["idx_rlt_order"] = i.Order + i.fieldMap["idx_rlt_award"] = i.Award i.fieldMap["idx_rlt_comment"] = i.Comment i.fieldMap["idx_rlt_dateline"] = i.CreatedTime i.fieldMap["idx_rlt_ban"] = i.Deleted @@ -135,11 +139,14 @@ func (i *indexSubject) fillFieldMap() { func (i indexSubject) clone(db *gorm.DB) indexSubject { i.indexSubjectDo.ReplaceConnPool(db.Statement.ConnPool) + i.Subject.db = db.Session(&gorm.Session{Initialized: true}) + i.Subject.db.Statement.ConnPool = db.Statement.ConnPool return i } func (i indexSubject) replaceDB(db *gorm.DB) indexSubject { i.indexSubjectDo.ReplaceDB(db) + i.Subject.db = db.Session(&gorm.Session{}) return i } @@ -180,6 +187,11 @@ func (a indexSubjectBelongsToSubject) Model(m *dao.IndexSubject) *indexSubjectBe return &indexSubjectBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a indexSubjectBelongsToSubject) Unscoped() *indexSubjectBelongsToSubject { + a.db = a.db.Unscoped() + return &a +} + type indexSubjectBelongsToSubjectTx struct{ tx *gorm.Association } func (a indexSubjectBelongsToSubjectTx) Find() (result *dao.Subject, err error) { @@ -218,6 +230,11 @@ func (a indexSubjectBelongsToSubjectTx) Count() int64 { return a.tx.Count() } +func (a indexSubjectBelongsToSubjectTx) Unscoped() *indexSubjectBelongsToSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type indexSubjectDo struct{ gen.DO } func (i indexSubjectDo) Debug() *indexSubjectDo { diff --git a/dal/query/chii_members.gen.go b/dal/query/chii_members.gen.go index 23de42ee5..8de03832d 100644 --- a/dal/query/chii_members.gen.go +++ b/dal/query/chii_members.gen.go @@ -161,11 +161,14 @@ func (m *member) fillFieldMap() { func (m member) clone(db *gorm.DB) member { m.memberDo.ReplaceConnPool(db.Statement.ConnPool) + m.Fields.db = db.Session(&gorm.Session{Initialized: true}) + m.Fields.db.Statement.ConnPool = db.Statement.ConnPool return m } func (m member) replaceDB(db *gorm.DB) member { m.memberDo.ReplaceDB(db) + m.Fields.db = db.Session(&gorm.Session{}) return m } @@ -202,6 +205,11 @@ func (a memberHasOneFields) Model(m *dao.Member) *memberHasOneFieldsTx { return &memberHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } +func (a memberHasOneFields) Unscoped() *memberHasOneFields { + a.db = a.db.Unscoped() + return &a +} + type memberHasOneFieldsTx struct{ tx *gorm.Association } func (a memberHasOneFieldsTx) Find() (result *dao.MemberField, err error) { @@ -240,6 +248,11 @@ func (a memberHasOneFieldsTx) Count() int64 { return a.tx.Count() } +func (a memberHasOneFieldsTx) Unscoped() *memberHasOneFieldsTx { + a.tx = a.tx.Unscoped() + return &a +} + type memberDo struct{ gen.DO } func (m memberDo) Debug() *memberDo { diff --git a/dal/query/chii_person_cs_index.gen.go b/dal/query/chii_person_cs_index.gen.go index 46b908c48..d1e22a02b 100644 --- a/dal/query/chii_person_cs_index.gen.go +++ b/dal/query/chii_person_cs_index.gen.go @@ -140,11 +140,17 @@ func (p *personSubjects) fillFieldMap() { func (p personSubjects) clone(db *gorm.DB) personSubjects { p.personSubjectsDo.ReplaceConnPool(db.Statement.ConnPool) + p.Subject.db = db.Session(&gorm.Session{Initialized: true}) + p.Subject.db.Statement.ConnPool = db.Statement.ConnPool + p.Person.db = db.Session(&gorm.Session{Initialized: true}) + p.Person.db.Statement.ConnPool = db.Statement.ConnPool return p } func (p personSubjects) replaceDB(db *gorm.DB) personSubjects { p.personSubjectsDo.ReplaceDB(db) + p.Subject.db = db.Session(&gorm.Session{}) + p.Person.db = db.Session(&gorm.Session{}) return p } @@ -185,6 +191,11 @@ func (a personSubjectsHasOneSubject) Model(m *dao.PersonSubjects) *personSubject return &personSubjectsHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a personSubjectsHasOneSubject) Unscoped() *personSubjectsHasOneSubject { + a.db = a.db.Unscoped() + return &a +} + type personSubjectsHasOneSubjectTx struct{ tx *gorm.Association } func (a personSubjectsHasOneSubjectTx) Find() (result *dao.Subject, err error) { @@ -223,6 +234,11 @@ func (a personSubjectsHasOneSubjectTx) Count() int64 { return a.tx.Count() } +func (a personSubjectsHasOneSubjectTx) Unscoped() *personSubjectsHasOneSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type personSubjectsHasOnePerson struct { db *gorm.DB @@ -260,6 +276,11 @@ func (a personSubjectsHasOnePerson) Model(m *dao.PersonSubjects) *personSubjects return &personSubjectsHasOnePersonTx{a.db.Model(m).Association(a.Name())} } +func (a personSubjectsHasOnePerson) Unscoped() *personSubjectsHasOnePerson { + a.db = a.db.Unscoped() + return &a +} + type personSubjectsHasOnePersonTx struct{ tx *gorm.Association } func (a personSubjectsHasOnePersonTx) Find() (result *dao.Person, err error) { @@ -298,6 +319,11 @@ func (a personSubjectsHasOnePersonTx) Count() int64 { return a.tx.Count() } +func (a personSubjectsHasOnePersonTx) Unscoped() *personSubjectsHasOnePersonTx { + a.tx = a.tx.Unscoped() + return &a +} + type personSubjectsDo struct{ gen.DO } func (p personSubjectsDo) Debug() *personSubjectsDo { diff --git a/dal/query/chii_persons.gen.go b/dal/query/chii_persons.gen.go index 6922a861d..aeb85e21a 100644 --- a/dal/query/chii_persons.gen.go +++ b/dal/query/chii_persons.gen.go @@ -182,11 +182,14 @@ func (p *person) fillFieldMap() { func (p person) clone(db *gorm.DB) person { p.personDo.ReplaceConnPool(db.Statement.ConnPool) + p.Fields.db = db.Session(&gorm.Session{Initialized: true}) + p.Fields.db.Statement.ConnPool = db.Statement.ConnPool return p } func (p person) replaceDB(db *gorm.DB) person { p.personDo.ReplaceDB(db) + p.Fields.db = db.Session(&gorm.Session{}) return p } @@ -223,6 +226,11 @@ func (a personHasOneFields) Model(m *dao.Person) *personHasOneFieldsTx { return &personHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } +func (a personHasOneFields) Unscoped() *personHasOneFields { + a.db = a.db.Unscoped() + return &a +} + type personHasOneFieldsTx struct{ tx *gorm.Association } func (a personHasOneFieldsTx) Find() (result *dao.PersonField, err error) { @@ -261,6 +269,11 @@ func (a personHasOneFieldsTx) Count() int64 { return a.tx.Count() } +func (a personHasOneFieldsTx) Unscoped() *personHasOneFieldsTx { + a.tx = a.tx.Unscoped() + return &a +} + type personDo struct{ gen.DO } func (p personDo) Debug() *personDo { diff --git a/dal/query/chii_subject_relations.gen.go b/dal/query/chii_subject_relations.gen.go index 06591e68c..caa59094a 100644 --- a/dal/query/chii_subject_relations.gen.go +++ b/dal/query/chii_subject_relations.gen.go @@ -127,11 +127,14 @@ func (s *subjectRelation) fillFieldMap() { func (s subjectRelation) clone(db *gorm.DB) subjectRelation { s.subjectRelationDo.ReplaceConnPool(db.Statement.ConnPool) + s.Subject.db = db.Session(&gorm.Session{Initialized: true}) + s.Subject.db.Statement.ConnPool = db.Statement.ConnPool return s } func (s subjectRelation) replaceDB(db *gorm.DB) subjectRelation { s.subjectRelationDo.ReplaceDB(db) + s.Subject.db = db.Session(&gorm.Session{}) return s } @@ -172,6 +175,11 @@ func (a subjectRelationHasOneSubject) Model(m *dao.SubjectRelation) *subjectRela return &subjectRelationHasOneSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a subjectRelationHasOneSubject) Unscoped() *subjectRelationHasOneSubject { + a.db = a.db.Unscoped() + return &a +} + type subjectRelationHasOneSubjectTx struct{ tx *gorm.Association } func (a subjectRelationHasOneSubjectTx) Find() (result *dao.Subject, err error) { @@ -210,6 +218,11 @@ func (a subjectRelationHasOneSubjectTx) Count() int64 { return a.tx.Count() } +func (a subjectRelationHasOneSubjectTx) Unscoped() *subjectRelationHasOneSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type subjectRelationDo struct{ gen.DO } func (s subjectRelationDo) Debug() *subjectRelationDo { diff --git a/dal/query/chii_subject_revisions.gen.go b/dal/query/chii_subject_revisions.gen.go index 93c7f4927..f27a25761 100644 --- a/dal/query/chii_subject_revisions.gen.go +++ b/dal/query/chii_subject_revisions.gen.go @@ -158,11 +158,14 @@ func (s *subjectRevision) fillFieldMap() { func (s subjectRevision) clone(db *gorm.DB) subjectRevision { s.subjectRevisionDo.ReplaceConnPool(db.Statement.ConnPool) + s.Subject.db = db.Session(&gorm.Session{Initialized: true}) + s.Subject.db.Statement.ConnPool = db.Statement.ConnPool return s } func (s subjectRevision) replaceDB(db *gorm.DB) subjectRevision { s.subjectRevisionDo.ReplaceDB(db) + s.Subject.db = db.Session(&gorm.Session{}) return s } @@ -203,6 +206,11 @@ func (a subjectRevisionBelongsToSubject) Model(m *dao.SubjectRevision) *subjectR return &subjectRevisionBelongsToSubjectTx{a.db.Model(m).Association(a.Name())} } +func (a subjectRevisionBelongsToSubject) Unscoped() *subjectRevisionBelongsToSubject { + a.db = a.db.Unscoped() + return &a +} + type subjectRevisionBelongsToSubjectTx struct{ tx *gorm.Association } func (a subjectRevisionBelongsToSubjectTx) Find() (result *dao.Subject, err error) { @@ -241,6 +249,11 @@ func (a subjectRevisionBelongsToSubjectTx) Count() int64 { return a.tx.Count() } +func (a subjectRevisionBelongsToSubjectTx) Unscoped() *subjectRevisionBelongsToSubjectTx { + a.tx = a.tx.Unscoped() + return &a +} + type subjectRevisionDo struct{ gen.DO } func (s subjectRevisionDo) Debug() *subjectRevisionDo { diff --git a/dal/query/chii_subjects.gen.go b/dal/query/chii_subjects.gen.go index 53b6a059f..d91ab6079 100644 --- a/dal/query/chii_subjects.gen.go +++ b/dal/query/chii_subjects.gen.go @@ -193,11 +193,14 @@ func (s *subject) fillFieldMap() { func (s subject) clone(db *gorm.DB) subject { s.subjectDo.ReplaceConnPool(db.Statement.ConnPool) + s.Fields.db = db.Session(&gorm.Session{Initialized: true}) + s.Fields.db.Statement.ConnPool = db.Statement.ConnPool return s } func (s subject) replaceDB(db *gorm.DB) subject { s.subjectDo.ReplaceDB(db) + s.Fields.db = db.Session(&gorm.Session{}) return s } @@ -234,6 +237,11 @@ func (a subjectHasOneFields) Model(m *dao.Subject) *subjectHasOneFieldsTx { return &subjectHasOneFieldsTx{a.db.Model(m).Association(a.Name())} } +func (a subjectHasOneFields) Unscoped() *subjectHasOneFields { + a.db = a.db.Unscoped() + return &a +} + type subjectHasOneFieldsTx struct{ tx *gorm.Association } func (a subjectHasOneFieldsTx) Find() (result *dao.SubjectField, err error) { @@ -272,6 +280,11 @@ func (a subjectHasOneFieldsTx) Count() int64 { return a.tx.Count() } +func (a subjectHasOneFieldsTx) Unscoped() *subjectHasOneFieldsTx { + a.tx = a.tx.Unscoped() + return &a +} + type subjectDo struct{ gen.DO } func (s subjectDo) Debug() *subjectDo { diff --git a/dal/query/chii_tag_neue_list.gen.go b/dal/query/chii_tag_neue_list.gen.go index ee820e9ef..f21d036af 100644 --- a/dal/query/chii_tag_neue_list.gen.go +++ b/dal/query/chii_tag_neue_list.gen.go @@ -113,11 +113,14 @@ func (t *tagList) fillFieldMap() { func (t tagList) clone(db *gorm.DB) tagList { t.tagListDo.ReplaceConnPool(db.Statement.ConnPool) + t.Tag.db = db.Session(&gorm.Session{Initialized: true}) + t.Tag.db.Statement.ConnPool = db.Statement.ConnPool return t } func (t tagList) replaceDB(db *gorm.DB) tagList { t.tagListDo.ReplaceDB(db) + t.Tag.db = db.Session(&gorm.Session{}) return t } @@ -154,6 +157,11 @@ func (a tagListHasOneTag) Model(m *dao.TagList) *tagListHasOneTagTx { return &tagListHasOneTagTx{a.db.Model(m).Association(a.Name())} } +func (a tagListHasOneTag) Unscoped() *tagListHasOneTag { + a.db = a.db.Unscoped() + return &a +} + type tagListHasOneTagTx struct{ tx *gorm.Association } func (a tagListHasOneTagTx) Find() (result *dao.TagIndex, err error) { @@ -192,6 +200,11 @@ func (a tagListHasOneTagTx) Count() int64 { return a.tx.Count() } +func (a tagListHasOneTagTx) Unscoped() *tagListHasOneTagTx { + a.tx = a.tx.Unscoped() + return &a +} + type tagListDo struct{ gen.DO } func (t tagListDo) Debug() *tagListDo { diff --git a/go.mod b/go.mod index 1433508d9..176b354ba 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( golang.org/x/sync v0.13.0 golang.org/x/text v0.24.0 gorm.io/driver/mysql v1.5.7 - gorm.io/gen v0.3.26 + gorm.io/gen v0.3.27 gorm.io/gorm v1.26.0 gorm.io/plugin/dbresolver v1.6.0 gorm.io/plugin/soft_delete v1.2.1 @@ -126,7 +126,7 @@ require ( golang.org/x/tools v0.32.0 // indirect google.golang.org/protobuf v1.36.5 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gorm.io/datatypes v1.2.2 // indirect + gorm.io/datatypes v1.2.4 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index 0b478148c..66202f711 100644 --- a/go.sum +++ b/go.sum @@ -355,8 +355,8 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/datatypes v1.2.2 h1:sdn7ZmG4l7JWtMDUb3L98f2Ym7CO5F8mZLlrQJMfF9g= -gorm.io/datatypes v1.2.2/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI= +gorm.io/datatypes v1.2.4 h1:uZmGAcK/QZ0uyfCuVg0VQY1ZmV9h1fuG0tMwKByO1z4= +gorm.io/datatypes v1.2.4/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= @@ -366,8 +366,8 @@ gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= -gorm.io/gen v0.3.26 h1:sFf1j7vNStimPRRAtH4zz5NiHM+1dr6eA9aaRdplyhY= -gorm.io/gen v0.3.26/go.mod h1:a5lq5y3w4g5LMxBcw0wnO6tYUCdNutWODq5LrIt75LE= +gorm.io/gen v0.3.27 h1:ziocAFLpE7e0g4Rum69pGfB9S6DweTxK8gAun7cU8as= +gorm.io/gen v0.3.27/go.mod h1:9zquz2xD1f3Eb/eHq4oLn2z6vDVvQlCY5S3uMBLv4EA= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= From 468a91354634d1a83d9998f6f70429cb28e5266b Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 6 May 2025 13:04:13 +0800 Subject: [PATCH 642/888] fix: index subject count after delete (#820) --- internal/index/mysql_repository.go | 72 +++++++++++++------------ internal/index/mysql_repository_test.go | 5 +- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index d1ee2d172..5473fd5c5 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -19,6 +19,7 @@ import ( "errors" "time" + "github.com/jmoiron/sqlx" "github.com/trim21/errgo" "go.uber.org/zap" "gorm.io/gen" @@ -31,13 +32,14 @@ import ( "github.com/bangumi/server/internal/subject" ) -func NewMysqlRepo(q *query.Query, log *zap.Logger) (Repo, error) { - return mysqlRepo{q: q, log: log.Named("index.mysqlRepo")}, nil +func NewMysqlRepo(q *query.Query, log *zap.Logger, db *sqlx.DB) (Repo, error) { + return mysqlRepo{q: q, log: log.Named("index.mysqlRepo"), db: db}, nil } type mysqlRepo struct { q *query.Query log *zap.Logger + db *sqlx.DB } func (r mysqlRepo) isNsfw(ctx context.Context, id model.IndexID) (bool, error) { @@ -159,7 +161,7 @@ func (r mysqlRepo) AddOrUpdateIndexSubject( ctx context.Context, id model.IndexID, subjectID model.SubjectID, sort uint32, comment string, ) (*Subject, error) { - index, err := r.Get(ctx, id) + _, err := r.Get(ctx, id) if err != nil { return nil, err } @@ -194,7 +196,7 @@ func (r mysqlRepo) AddOrUpdateIndexSubject( // 已经存在,更新! err = r.updateIndexSubject(ctx, id, subjectID, sort, comment) } else { - err = r.addSubjectToIndex(ctx, index, &dao.IndexSubject{ + err = r.addSubjectToIndex(ctx, &dao.IndexSubject{ Comment: comment, Order: sort, CreatedTime: uint32(now.Unix()), @@ -225,43 +227,45 @@ func (r mysqlRepo) updateIndexSubject( return r.WrapResult(result, err, "failed to update index subject") } -func (r mysqlRepo) addSubjectToIndex(ctx context.Context, index model.Index, subject *dao.IndexSubject) error { - return r.q.Transaction(func(tx *query.Query) error { - err := r.q.IndexSubject.WithContext(ctx).Create(subject) - if err != nil { - return errgo.Wrap(err, "failed to create subject in index") - } +func (r mysqlRepo) addSubjectToIndex(ctx context.Context, subject *dao.IndexSubject) error { + err := r.q.IndexSubject.WithContext(ctx).Create(subject) + if err != nil { + return errgo.Wrap(err, "failed to create subject in index") + } - result, err := r.q.Index.WithContext(ctx). - Where(r.q.Index.ID.Eq(index.ID)). - Updates(dao.Index{ - UpdatedTime: uint32(time.Now().Unix()), - SubjectCount: index.Total + 1, - }) + return r.countSubjectTotal(ctx, subject.IndexID) +} - return r.WrapResult(result, err, "failed to update index info") - }) +func (r mysqlRepo) countSubjectTotal(ctx context.Context, index model.IndexID) error { + _, err := r.db.ExecContext(ctx, ` + update chii_index set + idx_subject_total = ( + select count(1) + from chii_index_related as tl + where tl.idx_rlt_ban = 0 AND tl.idx_rlt_rid = ? + ), + idx_dateline = ? + where idx_id = ? + `, index, time.Now().Unix(), index) + + return errgo.Wrap(err, "failed to update index info") } func (r mysqlRepo) DeleteIndexSubject( ctx context.Context, id model.IndexID, subjectID model.SubjectID, ) error { - return r.q.Transaction(func(tx *query.Query) error { - index, err := r.Get(ctx, id) - if err != nil { - return err - } - result, err := r.q.IndexSubject.WithContext(ctx). - Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.SubjectID.Eq(subjectID)). - Delete() - if err = r.WrapResult(result, err, "failed to delete index subject"); err != nil { - return err - } - result, err = r.q.Index.WithContext(ctx).Where(r.q.Index.ID.Eq(id)).Updates(dao.Index{ - SubjectCount: index.Total - 1, - }) - return r.WrapResult(result, err, "failed to update index info") - }) + _, err := r.Get(ctx, id) + if err != nil { + return err + } + + result, err := r.q.IndexSubject.WithContext(ctx). + Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.SubjectID.Eq(subjectID)). + Delete() + if err = r.WrapResult(result, err, "failed to delete index subject"); err != nil { + return err + } + return r.countSubjectTotal(ctx, id) } func (r mysqlRepo) GetIndexCollect(ctx context.Context, id model.IndexID, uid model.UserID) (*IndexCollect, error) { diff --git a/internal/index/mysql_repository_test.go b/internal/index/mysql_repository_test.go index d57e2b288..eefd6c4bc 100644 --- a/internal/index/mysql_repository_test.go +++ b/internal/index/mysql_repository_test.go @@ -20,6 +20,8 @@ import ( "testing" "time" + "github.com/jmoiron/sqlx" + "github.com/samber/lo" "github.com/stretchr/testify/require" "go.uber.org/zap" @@ -32,7 +34,8 @@ import ( func getRepo(t *testing.T) index.Repo { t.Helper() - repo, err := index.NewMysqlRepo(query.Use(test.GetGorm(t)), zap.NewNop()) + q := query.Use(test.GetGorm(t)) + repo, err := index.NewMysqlRepo(q, zap.NewNop(), sqlx.NewDb(lo.Must(q.DB().DB()), "mysql")) require.NoError(t, err) return repo From 67ae3837da38e5ffb33c45241385102f32540686 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 6 May 2025 14:50:29 +0800 Subject: [PATCH 643/888] chore: disable codecov status check --- .github/codecov.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/codecov.yml b/.github/codecov.yml index 7a286f790..35629e99b 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -1,5 +1,10 @@ comment: false +coverage: + status: + patch: false + project: false + ignore: - "**/mock_*.go" - "**/*_test.go" From 056adeb67b92eec53eca1b41f288e1b3c618c5a0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 7 May 2025 05:24:25 +0800 Subject: [PATCH 644/888] feat: cache image 302 url --- .golangci.yaml | 1 + web/handler/character/get.go | 2 ++ web/handler/person/get.go | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.golangci.yaml b/.golangci.yaml index 54fb56b58..04fec7545 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -154,6 +154,7 @@ linters: - "2" - "3" - "10" + - "24" - "100" - "1000" - "10000" diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 9ea43fcbf..81ba08f83 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -80,6 +80,8 @@ func (h Character) GetImage(c echo.Context) error { return res.BadRequest("bad image type: " + c.QueryParam("type")) } + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour * 24}) + if l == "" { return c.Redirect(http.StatusFound, res.DefaultImageURL) } diff --git a/web/handler/person/get.go b/web/handler/person/get.go index 4330714c6..dd8d7179b 100644 --- a/web/handler/person/get.go +++ b/web/handler/person/get.go @@ -72,7 +72,7 @@ func (h Person) GetImage(c echo.Context) error { return res.BadRequest("bad image type: " + c.QueryParam("type")) } - res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour}) + res.SetCacheControl(c, res.CacheControlParams{Public: true, MaxAge: time.Hour * 24}) if l == "" { return c.Redirect(http.StatusFound, res.DefaultImageURL) From ccdebb871e396603023b50c46c8de6b7365f5611 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 18:14:53 +0800 Subject: [PATCH 645/888] build(deps): update dependency go to v1.24.3 (#822) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 176b354ba..2c58e0d1e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.2 +go 1.24.3 tool github.com/vektra/mockery/v3 From 617419f5515aad84f96cd63c863786feed912742 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 20:16:58 +0800 Subject: [PATCH 646/888] chore(config): migrate renovate config (#823) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- .github/renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 3003fcfd3..100ef1178 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -7,7 +7,7 @@ "local>Trim21/renovate-config:monthly" ], "dockerfile": { - "fileMatch": [".*dockerfile$"], + "managerFilePatterns": ["**/dockerfile"], "enabled": true }, "packageRules": [ From 65d66310c78bb4c1c8a80dd61af36474c4dcd5c5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 20:53:14 +0800 Subject: [PATCH 647/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.32.0 (#824) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2c58e0d1e..0fcda4445 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.3 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.31.0 + github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 github.com/redis/rueidis v1.0.59 diff --git a/go.sum b/go.sum index 66202f711..3cbf46831 100644 --- a/go.sum +++ b/go.sum @@ -177,8 +177,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.31.0 h1:yZRhY1qJqdH8h6GFZALGtkDLyj8f9v5aJpsNMyrUmnY= -github.com/meilisearch/meilisearch-go v0.31.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= +github.com/meilisearch/meilisearch-go v0.32.0 h1:cWcycpONSH3VLTZ5npUl1O5aXPkNM0vUx6bywnYqGbE= +github.com/meilisearch/meilisearch-go v0.32.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From 02edb039864580aa3c13f8944eae344373be94f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 21:05:18 +0800 Subject: [PATCH 648/888] build(deps): update module github.com/trim21/go-phpserialize to v0.1.1 (#825) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 0fcda4445..ef759fd32 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.3 - github.com/trim21/go-phpserialize v0.1.0 + github.com/trim21/go-phpserialize v0.1.1 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 3cbf46831..80a2e7706 100644 --- a/go.sum +++ b/go.sum @@ -59,8 +59,6 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= -github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= @@ -221,8 +219,6 @@ github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= @@ -244,8 +240,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= -github.com/trim21/go-phpserialize v0.1.0 h1:4wLvVYkP6Ya07M+2YweFdx4WOrydZzVyxKRDGK/L5KM= -github.com/trim21/go-phpserialize v0.1.0/go.mod h1:99ibWRqdNj3DTX+dbHvo+L47TsoEXwArpvBPRLrvz20= +github.com/trim21/go-phpserialize v0.1.1 h1:YDDTZ10D+xqWgvnaSeud90xHRb+51VBUiQYxRTZY11k= +github.com/trim21/go-phpserialize v0.1.1/go.mod h1:StH8iTviDvvY7dcMSNgRSzRzcuKmj2YZ/EETVRGlIws= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= From 2dee0b8821d14fb9fcdeb591ad4e5e3e25562886 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 May 2025 23:53:59 +0800 Subject: [PATCH 649/888] ci: update golangci/golangci-lint-action action to v8 (#826) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- .github/workflows/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 56255efb8..3738e7c76 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,7 +26,7 @@ jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: submodules: true @@ -35,6 +35,6 @@ jobs: cache-namespace: lint - name: Run linters - uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7 + uses: golangci/golangci-lint-action@v8 with: version: v2.0.2 From c98f16414c590031aaca833fb514071eb0ae3694 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 7 May 2025 23:56:50 +0800 Subject: [PATCH 650/888] style: upgrade golangci-lint to v2.1.0 (#827) --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 3738e7c76..8cf720f71 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -37,4 +37,4 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v8 with: - version: v2.0.2 + version: v2.1.0 From 177d66fcbe4c4f9311b0441b96b31f8cf4f4dff7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 00:06:12 +0800 Subject: [PATCH 651/888] build(deps): update module golang.org/x/sync to v0.14.0 (#828) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ef759fd32..998683d03 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.13.0 + golang.org/x/sync v0.14.0 golang.org/x/text v0.24.0 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.27 diff --git a/go.sum b/go.sum index 80a2e7706..f5e7d2d40 100644 --- a/go.sum +++ b/go.sum @@ -303,8 +303,8 @@ golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 60a7ebef36ced4e0b6d72b905e9caef8dc0d4d65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 00:06:25 +0800 Subject: [PATCH 652/888] build(deps): update module gorm.io/gorm to v1.26.1 (#813) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 998683d03..2cb42114a 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( golang.org/x/text v0.24.0 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.27 - gorm.io/gorm v1.26.0 + gorm.io/gorm v1.26.1 gorm.io/plugin/dbresolver v1.6.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index f5e7d2d40..815f96e02 100644 --- a/go.sum +++ b/go.sum @@ -369,8 +369,8 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.26.0 h1:9lqQVPG5aNNS6AyHdRiwScAVnXHg/L/Srzx55G5fOgs= -gorm.io/gorm v1.26.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.26.1 h1:ghB2gUI9FkS46luZtn6DLZ0f6ooBJ5IbVej2ENFDjRw= +gorm.io/gorm v1.26.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.6.0 h1:XvKDeOtTn1EIX6s4SrKpEH82q0gXVemhYjbYZFGFVcw= From ab8fb3fd4626a903c6330f85a9917f5391f1db63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 May 2025 00:08:23 +0800 Subject: [PATCH 653/888] build(deps): update module golang.org/x/text to v0.25.0 (#829) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2cb42114a..02fbac5e7 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( go.uber.org/fx v1.23.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.14.0 - golang.org/x/text v0.24.0 + golang.org/x/text v0.25.0 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.27 gorm.io/gorm v1.26.1 diff --git a/go.sum b/go.sum index 815f96e02..898b8f4db 100644 --- a/go.sum +++ b/go.sum @@ -332,8 +332,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 9c01e6e5dae8a928dd41673af6328384e6df6354 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 8 May 2025 18:14:22 +0800 Subject: [PATCH 654/888] refactor: decode from both php-serialize and json (#830) --- internal/auth/mysql_compat.go | 9 ++++---- internal/auth/mysql_compat_internal_test.go | 2 +- internal/auth/mysql_repository.go | 2 +- internal/collections/infra/mysql_repo.go | 8 +++---- .../collections/infra/mysql_repo_compat.go | 12 ++++------ internal/collections/infra/mysql_repo_test.go | 8 +++---- internal/pkg/serialize/serialize.go | 23 +++++++++++++++++++ internal/revision/mysql_repository.go | 5 ++-- internal/subject/mysq_repository_compat.go | 6 ++--- internal/user/model.go | 5 ++-- 10 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 internal/pkg/serialize/serialize.go diff --git a/internal/auth/mysql_compat.go b/internal/auth/mysql_compat.go index 2e18235c4..79048f2cf 100644 --- a/internal/auth/mysql_compat.go +++ b/internal/auth/mysql_compat.go @@ -16,7 +16,8 @@ package auth import ( "github.com/trim21/errgo" - "github.com/trim21/go-phpserialize" + + "github.com/bangumi/server/internal/pkg/serialize" ) func parseBool(s string) bool { @@ -58,12 +59,12 @@ type phpPermission struct { AppErase string `php:"app_erase"` } -func parsePhpSerializedPermission(b []byte) (Permission, error) { +func parseSerializedPermission(b []byte) (Permission, error) { var p phpPermission if len(b) > 0 { - err := phpserialize.Unmarshal(b, &p) + err := serialize.Decode(b, &p) if err != nil { - return Permission{}, errgo.Wrap(err, "parsing permission: phpserialize.Unmarshal") + return Permission{}, errgo.Wrap(err, "parsing permission: serialize.Decode") } } diff --git a/internal/auth/mysql_compat_internal_test.go b/internal/auth/mysql_compat_internal_test.go index 936bc0476..5d2ae834c 100644 --- a/internal/auth/mysql_compat_internal_test.go +++ b/internal/auth/mysql_compat_internal_test.go @@ -23,7 +23,7 @@ import ( func TestUnmarshalPHP(t *testing.T) { t.Parallel() raw := "a:2:{s:15:\"user_wiki_apply\";s:1:\"1\";s:6:\"report\";s:1:\"1\";}" - p, err := parsePhpSerializedPermission([]byte(raw)) + p, err := parseSerializedPermission([]byte(raw)) require.NoError(t, err) require.True(t, p.Report) require.False(t, p.ManageReport) diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index 25248fe8f..1a32a591b 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -98,7 +98,7 @@ func (m mysqlRepo) GetPermission(ctx context.Context, groupID uint8) (Permission return Permission{}, errgo.Wrap(err, "dal") } - p, err := parsePhpSerializedPermission(r.Perm) + p, err := parseSerializedPermission(r.Perm) if err != nil { m.log.Error("failed to decode php serialized content", zap.Error(err), zap.Uint8("user_group_id", groupID)) return Permission{}, nil diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e0375d152..2d039cc44 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -26,7 +26,6 @@ import ( "github.com/samber/lo" "github.com/trim21/errgo" - "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen" "gorm.io/gen/field" @@ -42,6 +41,7 @@ import ( "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/dam" "github.com/bangumi/server/internal/pkg/gstr" + "github.com/bangumi/server/internal/pkg/serialize" "github.com/bangumi/server/internal/subject" ) @@ -359,7 +359,7 @@ func (r mysqlRepo) reCountSubjectTags(ctx context.Context, tx *query.Query, return -cmp.Compare(a.Count, b.Count) }) - newTag, err := phpserialize.Marshal(lo.Slice(phpTags, 0, 30)) //nolint:mnd + newTag, err := serialize.Encode(lo.Slice(phpTags, 0, 30)) //nolint:mnd if err != nil { return errgo.Wrap(err, "php.Marshal") } @@ -533,7 +533,7 @@ func (r mysqlRepo) GetSubjectEpisodesCollection( return nil, errgo.Wrap(err, "query.EpCollection.Find") } - e, err := deserializePhpEpStatus(d.Status) + e, err := deserializeEpStatus(d.Status) if err != nil { return nil, err } @@ -837,7 +837,7 @@ func (r mysqlRepo) UpdateEpisodeCollection( return nil, errgo.Wrap(err, "dal") } - e, err := deserializePhpEpStatus(d.Status) + e, err := deserializeEpStatus(d.Status) if err != nil { r.log.Error("failed to deserialize php-serialized bytes to go data", zap.Error(err)) return nil, err diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index c4c5435d1..17c2b4094 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -18,10 +18,10 @@ package infra import ( "github.com/trim21/errgo" - "github.com/trim21/go-phpserialize" "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/serialize" ) type mysqlEpCollectionItem struct { @@ -31,19 +31,17 @@ type mysqlEpCollectionItem struct { type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem -func deserializePhpEpStatus(phpSerialized []byte) (mysqlEpCollection, error) { +func deserializeEpStatus(serialized []byte) (mysqlEpCollection, error) { var e map[model.EpisodeID]mysqlEpCollectionItem - if len(phpSerialized) != 0 { - if err := phpserialize.Unmarshal(phpSerialized, &e); err != nil { - return nil, errgo.Wrap(err, "php deserialize") - } + if err := serialize.Decode(serialized, &e); err != nil { + return nil, errgo.Wrap(err, "php deserialize") } return e, nil } func serializePhpEpStatus(data mysqlEpCollection) ([]byte, error) { - b, err := phpserialize.Marshal(data) + b, err := serialize.Encode(data) return b, errgo.Wrap(err, "php serialize") } diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index b464faee7..a75470964 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -21,7 +21,6 @@ import ( "github.com/samber/lo" "github.com/stretchr/testify/require" - "github.com/trim21/go-phpserialize" "go.uber.org/zap" "gorm.io/gen/field" "gorm.io/gorm" @@ -33,6 +32,7 @@ import ( "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/collections/infra" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/serialize" "github.com/bangumi/server/internal/pkg/test" subject2 "github.com/bangumi/server/internal/subject" ) @@ -477,7 +477,7 @@ func TestMysqlRepo_UpdateEpisodeCollection(t *testing.T) { var m map[uint32]struct { Type int `php:"type"` } - require.NoError(t, phpserialize.Unmarshal(r.Status, &m)) + require.NoError(t, serialize.Decode(r.Status, &m)) require.Len(t, m, 2) require.Contains(t, m, uint32(1)) require.EqualValues(t, collection.EpisodeCollectionDone, m[1].Type) @@ -495,7 +495,7 @@ func TestMysqlRepo_UpdateEpisodeCollection(t *testing.T) { var m2 map[uint32]struct { Type int `php:"type"` } - require.NoError(t, phpserialize.Unmarshal(r.Status, &m2)) + require.NoError(t, serialize.Decode(r.Status, &m2)) require.Len(t, m2, 0) } @@ -527,7 +527,7 @@ func TestMysqlRepo_UpdateEpisodeCollection_create_ep_status(t *testing.T) { var m map[uint32]struct { Type int `php:"type"` } - require.NoError(t, phpserialize.Unmarshal(r.Status, &m)) + require.NoError(t, serialize.Decode(r.Status, &m)) require.Len(t, m, 2) require.Contains(t, m, uint32(1)) require.EqualValues(t, collection.EpisodeCollectionDone, m[1].Type) diff --git a/internal/pkg/serialize/serialize.go b/internal/pkg/serialize/serialize.go new file mode 100644 index 000000000..b78058db1 --- /dev/null +++ b/internal/pkg/serialize/serialize.go @@ -0,0 +1,23 @@ +package serialize + +import ( + "bytes" + "encoding/json" + + "github.com/trim21/go-phpserialize" +) + +func Encode(v any) ([]byte, error) { + return phpserialize.Marshal(v) +} + +func Decode(data []byte, v any) error { + if len(data) == 0 { + return nil + } + if bytes.HasPrefix(data, []byte("a:")) { + return phpserialize.Unmarshal(data, v) + } + + return json.Unmarshal(data, v) +} diff --git a/internal/revision/mysql_repository.go b/internal/revision/mysql_repository.go index 99b7b337d..5bcbd081e 100644 --- a/internal/revision/mysql_repository.go +++ b/internal/revision/mysql_repository.go @@ -24,7 +24,6 @@ import ( "reflect" "time" - "github.com/elliotchance/phpserialize" "github.com/mitchellh/mapstructure" "github.com/trim21/errgo" "go.uber.org/zap" @@ -34,6 +33,7 @@ import ( "github.com/bangumi/server/dal/query" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/serialize" ) type mysqlRepo struct { @@ -237,7 +237,8 @@ func convertRevisionText(text []byte) map[string]any { if err != nil { return nil } - result, err := phpserialize.UnmarshalAssociativeArray(b) + var result map[any]any + err = serialize.Decode(b, &result) if err != nil { return nil } diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index b3c2ef2b4..93707e158 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -16,10 +16,10 @@ package subject import ( "github.com/trim21/errgo" - "github.com/trim21/go-phpserialize" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/generic/slice" + "github.com/bangumi/server/internal/pkg/serialize" ) type Tag struct { @@ -31,9 +31,9 @@ type Tag struct { func ParseTags(b []byte) ([]model.Tag, error) { var tags []Tag if len(b) != 0 { - err := phpserialize.Unmarshal(b, &tags) + err := serialize.Decode(b, &tags) if err != nil { - return nil, errgo.Wrap(err, "ParseTags: phpserialize.Unmarshal") + return nil, errgo.Wrap(err, "ParseTags: serialize.Decode") } } diff --git a/internal/user/model.go b/internal/user/model.go index cb700cf6b..e4fb36d4e 100644 --- a/internal/user/model.go +++ b/internal/user/model.go @@ -17,9 +17,8 @@ package user import ( "time" - "github.com/trim21/go-phpserialize" - "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/serialize" ) // FullUser is for current user or admin only. @@ -79,7 +78,7 @@ type PrivacySettings struct { func (settings *PrivacySettings) Unmarshal(s []byte) { rawMap := make(map[PrivacySettingsField]ReceiveFilter, 4) if len(s) != 0 { - err := phpserialize.Unmarshal(s, &rawMap) + err := serialize.Decode(s, &rawMap) if err != nil { return } From 2bc7eefa9f04433098d538e4051c19b19e928a2e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 8 May 2025 19:19:33 +0800 Subject: [PATCH 655/888] fix: prepare to drop php serialize (#831) --- internal/auth/mysql_compat.go | 64 +++++++++---------- internal/auth/user_group.go | 20 +++--- .../collections/infra/mysql_repo_compat.go | 4 +- internal/collections/infra/mysql_repo_test.go | 2 +- internal/subject/mysq_repository_compat.go | 6 +- internal/user/model.go | 6 +- pkg/vars/enum/eptype.go | 40 ------------ pkg/vars/enum/user_group.go | 47 -------------- 8 files changed, 50 insertions(+), 139 deletions(-) delete mode 100644 pkg/vars/enum/eptype.go delete mode 100644 pkg/vars/enum/user_group.go diff --git a/internal/auth/mysql_compat.go b/internal/auth/mysql_compat.go index 79048f2cf..5c04dde10 100644 --- a/internal/auth/mysql_compat.go +++ b/internal/auth/mysql_compat.go @@ -25,38 +25,38 @@ func parseBool(s string) bool { } type phpPermission struct { - UserList string `php:"user_list"` - ManageUserGroup string `php:"manage_user_group"` - ManageUserPhoto string `php:"manage_user_photo"` - ManageTopicState string `php:"manage_topic_state"` - ManageReport string `php:"manage_report"` - UserBan string `php:"user_ban"` - ManageUser string `php:"manage_user"` - UserGroup string `php:"user_group"` - UserWikiApprove string `php:"user_wiki_approve"` - DoujinSubjectErase string `php:"doujin_subject_erase"` - UserWikiApply string `php:"user_wiki_apply"` - DoujinSubjectLock string `php:"doujin_subject_lock"` - SubjectEdit string `php:"subject_edit"` - SubjectLock string `php:"subject_lock"` - SubjectRefresh string `php:"subject_refresh"` - SubjectRelated string `php:"subject_related"` - SubjectMerge string `php:"subject_merge"` - SubjectErase string `php:"subject_erase"` - SubjectCoverLock string `php:"subject_cover_lock"` - SubjectCoverErase string `php:"subject_cover_erase"` - MonoEdit string `php:"mono_edit"` - MonoLock string `php:"mono_lock"` - MonoMerge string `php:"mono_merge"` - MonoErase string `php:"mono_erase"` - EpEdit string `php:"ep_edit"` - EpMove string `php:"ep_move"` - EpMerge string `php:"ep_merge"` - EpLock string `php:"ep_lock"` - EpErase string `php:"ep_erase"` - Report string `php:"report"` - ManageApp string `php:"manage_app"` - AppErase string `php:"app_erase"` + UserList string `php:"user_list" json:"user_list"` + ManageUserGroup string `php:"manage_user_group" json:"manage_user_group"` + ManageUserPhoto string `php:"manage_user_photo" json:"manage_user_photo"` + ManageTopicState string `php:"manage_topic_state" json:"manage_topic_state"` + ManageReport string `php:"manage_report" json:"manage_report"` + UserBan string `php:"user_ban" json:"user_ban"` + ManageUser string `php:"manage_user" json:"manage_user"` + UserGroup string `php:"user_group" json:"user_group"` + UserWikiApprove string `php:"user_wiki_approve" json:"user_wiki_approve"` + DoujinSubjectErase string `php:"doujin_subject_erase" json:"doujin_subject_erase"` + UserWikiApply string `php:"user_wiki_apply" json:"user_wiki_apply"` + DoujinSubjectLock string `php:"doujin_subject_lock" json:"doujin_subject_lock"` + SubjectEdit string `php:"subject_edit" json:"subject_edit"` + SubjectLock string `php:"subject_lock" json:"subject_lock"` + SubjectRefresh string `php:"subject_refresh" json:"subject_refresh"` + SubjectRelated string `php:"subject_related" json:"subject_related"` + SubjectMerge string `php:"subject_merge" json:"subject_merge"` + SubjectErase string `php:"subject_erase" json:"subject_erase"` + SubjectCoverLock string `php:"subject_cover_lock" json:"subject_cover_lock"` + SubjectCoverErase string `php:"subject_cover_erase" json:"subject_cover_erase"` + MonoEdit string `php:"mono_edit" json:"mono_edit"` + MonoLock string `php:"mono_lock" json:"mono_lock"` + MonoMerge string `php:"mono_merge" json:"mono_merge"` + MonoErase string `php:"mono_erase" json:"mono_erase"` + EpEdit string `php:"ep_edit" json:"ep_edit"` + EpMove string `php:"ep_move" json:"ep_move"` + EpMerge string `php:"ep_merge" json:"ep_merge"` + EpLock string `php:"ep_lock" json:"ep_lock"` + EpErase string `php:"ep_erase" json:"ep_erase"` + Report string `php:"report" json:"report"` + ManageApp string `php:"manage_app" json:"manage_app"` + AppErase string `php:"app_erase" json:"app_erase"` } func parseSerializedPermission(b []byte) (Permission, error) { diff --git a/internal/auth/user_group.go b/internal/auth/user_group.go index be8dd4c35..fd51a8108 100644 --- a/internal/auth/user_group.go +++ b/internal/auth/user_group.go @@ -15,15 +15,13 @@ package auth const ( - UserGroupAdmin uint8 = iota + 1 - UserGroupBangumiAdmin - UserGroupWindowAdmin - UserGroupQuite - UserGroupBanned - _ - _ - UserGroupCharacterAdmin - UserGroupWikiAdmin - UserGroupNormal - UserGroupWikiEditor + UserGroupAdmin uint8 = 1 + UserGroupBangumiAdmin uint8 = 2 + UserGroupWindowAdmin uint8 = 3 + UserGroupQuite uint8 = 4 + UserGroupBanned uint8 = 5 + UserGroupCharacterAdmin uint8 = 8 + UserGroupWikiAdmin uint8 = 9 + UserGroupNormal uint8 = 10 + UserGroupWikiEditor uint8 = 11 ) diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index 17c2b4094..e20e41eb7 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -25,8 +25,8 @@ import ( ) type mysqlEpCollectionItem struct { - EpisodeID model.EpisodeID `php:"eid,string"` - Type collection.EpisodeCollection `php:"type"` + EpisodeID model.EpisodeID `php:"eid,string" json:"eid,string"` + Type collection.EpisodeCollection `php:"type" json:"type"` } type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index a75470964..9f5f9af20 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -475,7 +475,7 @@ func TestMysqlRepo_UpdateEpisodeCollection(t *testing.T) { require.EqualValues(t, now.Unix(), r.UpdatedTime) var m map[uint32]struct { - Type int `php:"type"` + Type int `php:"type" json:"type"` } require.NoError(t, serialize.Decode(r.Status, &m)) require.Len(t, m, 2) diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index 93707e158..a4ab962b4 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -23,9 +23,9 @@ import ( ) type Tag struct { - Name *string `php:"tag_name"` - Count uint `php:"result,string"` - TotalCount uint `php:"tag_results,string"` + Name *string `php:"tag_name" json:"tag_name"` + Count uint `php:"result,string" json:"result,string"` + TotalCount uint `php:"tag_results,string" json:"tag_results,string"` } func ParseTags(b []byte) ([]model.Tag, error) { diff --git a/internal/user/model.go b/internal/user/model.go index e4fb36d4e..409ea5474 100644 --- a/internal/user/model.go +++ b/internal/user/model.go @@ -54,9 +54,9 @@ func (u User) GetID() model.UserID { type ReceiveFilter uint8 const ( - ReceiveFilterAll ReceiveFilter = iota - ReceiveFilterFriends - ReceiveFilterNone + ReceiveFilterAll ReceiveFilter = 0 + ReceiveFilterFriends ReceiveFilter = 1 + ReceiveFilterNone ReceiveFilter = 2 ) type PrivacySettingsField int diff --git a/pkg/vars/enum/eptype.go b/pkg/vars/enum/eptype.go deleted file mode 100644 index 68b4341f3..000000000 --- a/pkg/vars/enum/eptype.go +++ /dev/null @@ -1,40 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package enum - -// EpType -// Deprecated. -type EpType = int16 - -const ( - // EpTypeNormal - // Deprecated. - EpTypeNormal EpType = 0 - // EpTypeSpecial - // Deprecated. - EpTypeSpecial EpType = 1 - // EpTypeOpening - // Deprecated. - EpTypeOpening EpType = 2 - // EpTypeEnding - // Deprecated. - EpTypeEnding EpType = 3 - // EpTypeMad - // Deprecated. - EpTypeMad EpType = 4 - // EpTypeOther - // Deprecated. - EpTypeOther EpType = 6 -) diff --git a/pkg/vars/enum/user_group.go b/pkg/vars/enum/user_group.go deleted file mode 100644 index 252b19d2e..000000000 --- a/pkg/vars/enum/user_group.go +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see - -package enum - -const ( - // UserGroupAdmin - // Deprecated. - UserGroupAdmin uint8 = iota + 1 - // UserGroupBangumiAdmin - // Deprecated. - UserGroupBangumiAdmin - // UserGroupWindowAdmin - // Deprecated. - UserGroupWindowAdmin - // UserGroupQuite - // Deprecated. - UserGroupQuite - // UserGroupBanned - // Deprecated. - UserGroupBanned - _ - _ - // UserGroupCharacterAdmin - // Deprecated. - UserGroupCharacterAdmin - // UserGroupWikiAdmin - // Deprecated. - UserGroupWikiAdmin - // UserGroupNormal - // Deprecated. - UserGroupNormal - // UserGroupWikiEditor - // Deprecated. - UserGroupWikiEditor -) From 3ba6dbb686b27be2ef1b4ff3d5f8796f7965ef68 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 May 2025 21:12:58 +0800 Subject: [PATCH 656/888] fix: tag total count --- go.mod | 1 - go.sum | 2 -- internal/subject/mysq_repository_compat.go | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 02fbac5e7..e170f1337 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc - github.com/elliotchance/phpserialize v1.4.0 github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.26.0 diff --git a/go.sum b/go.sum index 898b8f4db..195c291f9 100644 --- a/go.sum +++ b/go.sum @@ -57,8 +57,6 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/elliotchance/phpserialize v1.4.0 h1:cAp/9+KSnEbUC8oYCE32n2n84BeW8HOY3HMDI8hG2OY= -github.com/elliotchance/phpserialize v1.4.0/go.mod h1:gt7XX9+ETUcLXbtTKEuyrqW3lcLUAeS/AnGZ2e49TZs= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= diff --git a/internal/subject/mysq_repository_compat.go b/internal/subject/mysq_repository_compat.go index a4ab962b4..afc8d7017 100644 --- a/internal/subject/mysq_repository_compat.go +++ b/internal/subject/mysq_repository_compat.go @@ -41,6 +41,6 @@ func ParseTags(b []byte) ([]model.Tag, error) { if item.Name == nil { return model.Tag{}, false } - return model.Tag{Name: *item.Name, Count: item.Count}, true + return model.Tag{Name: *item.Name, Count: item.Count, TotalCount: item.TotalCount}, true }), nil } From 923488f20c9c42776e98ea5fbb7df9d1637b999d Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 May 2025 21:23:03 +0800 Subject: [PATCH 657/888] fix: tag total count --- internal/search/subject/handle.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index ba3242988..0cdd2286a 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -329,8 +329,9 @@ func toResponseSubject(s model.Subject, metaTags []tag.Tag) ReponseSubject { }), Tags: slice.Map(s.Tags, func(tag model.Tag) res.SubjectTag { return res.SubjectTag{ - Name: tag.Name, - Count: tag.Count, + Name: tag.Name, + Count: tag.Count, + TotalCont: tag.TotalCount, } }), Collection: res.SubjectCollectionStat{ From 80f4092dffe66ac87edad5873aa87fa9f2cfd2a9 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 May 2025 22:29:01 +0800 Subject: [PATCH 658/888] fix: use json as encoder --- internal/pkg/serialize/serialize.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/serialize/serialize.go b/internal/pkg/serialize/serialize.go index b78058db1..122c4c87a 100644 --- a/internal/pkg/serialize/serialize.go +++ b/internal/pkg/serialize/serialize.go @@ -8,7 +8,7 @@ import ( ) func Encode(v any) ([]byte, error) { - return phpserialize.Marshal(v) + return json.Marshal(v) } func Decode(data []byte, v any) error { From 8fc4a8f26e0cc7d3057c53748a3afee2dd35ca7f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 May 2025 22:48:00 +0800 Subject: [PATCH 659/888] fix: index update time --- internal/index/mysql_repository.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index 5473fd5c5..1f790bbcc 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -244,7 +244,7 @@ func (r mysqlRepo) countSubjectTotal(ctx context.Context, index model.IndexID) e from chii_index_related as tl where tl.idx_rlt_ban = 0 AND tl.idx_rlt_rid = ? ), - idx_dateline = ? + idx_lasttouch = ? where idx_id = ? `, index, time.Now().Unix(), index) From 50f23f17e5dc0c8150650c902e6bcd7acaba2a8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 07:51:21 +0800 Subject: [PATCH 660/888] build(deps): update module github.com/trim21/errgo to v0.0.5 (#832) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 4 ++-- go.sum | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index e170f1337..d3713424c 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 - github.com/trim21/errgo v0.0.3 + github.com/trim21/errgo v0.0.5 github.com/trim21/go-phpserialize v0.1.1 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.23.0 @@ -101,7 +101,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/zerolog v1.33.0 // indirect + github.com/rs/zerolog v1.34.0 // indirect github.com/spf13/afero v1.12.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect diff --git a/go.sum b/go.sum index 195c291f9..61c0dee0b 100644 --- a/go.sum +++ b/go.sum @@ -209,9 +209,9 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= +github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= +github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= @@ -236,8 +236,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/trim21/errgo v0.0.3 h1:q0cUPTs+4c5NxByA4f0HUGRvlNyBlUtdxFiTKQdTE68= -github.com/trim21/errgo v0.0.3/go.mod h1:AH1KzogdvSkSPXbZq9QAuqSt1L1Eu5W8eYK32zPYv9s= +github.com/trim21/errgo v0.0.5 h1:lIB52BB5ebqDPJwRpGbQJ+5eh/K9tHf/vipPqy1OQZI= +github.com/trim21/errgo v0.0.5/go.mod h1:8uSKeZAGc+XDaPDqcgOCduVPb2Xpb1YxqxfMK1JcLlo= github.com/trim21/go-phpserialize v0.1.1 h1:YDDTZ10D+xqWgvnaSeud90xHRb+51VBUiQYxRTZY11k= github.com/trim21/go-phpserialize v0.1.1/go.mod h1:StH8iTviDvvY7dcMSNgRSzRzcuKmj2YZ/EETVRGlIws= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From 69cb07481e7aca27163e3c60619269c9a33381d5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 10 May 2025 08:00:49 +0800 Subject: [PATCH 661/888] fix: music subject platform warning --- pkg/vars/platform.go.json | 10 ++++++++++ scripts/build-common.mjs | 19 ++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index 801a34ae5..d347aba0c 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -123,6 +123,16 @@ "order": 4 } }, + "3": { + "0": { + "id": 0, + "type": "", + "type_cn": "", + "alias": "", + "wiki_tpl": "", + "order": 0 + } + }, "4": { "0": { "id": 0, diff --git a/scripts/build-common.mjs b/scripts/build-common.mjs index 1224ad9d0..f70dac1dd 100644 --- a/scripts/build-common.mjs +++ b/scripts/build-common.mjs @@ -1,14 +1,23 @@ -import * as path from "node:path"; import * as fs from "node:fs"; import * as yaml from "yaml"; const data = yaml.parse(fs.readFileSync("pkg/vars/common/subject_platforms.yml", "utf-8")); -fs.writeFileSync( - "pkg/vars/platform.go.json", - JSON.stringify(Object.fromEntries(Object.entries(data.platforms).filter(([key, value]) => /\d/.test(key))), null, 2), -); +const platforms = Object.fromEntries(Object.entries(data.platforms).filter(([key, value]) => /\d/.test(key))); + +platforms[3] ??= { + 0: { + id: 0, + type: "", + type_cn: "", + alias: "", + wiki_tpl: "", + order: 0, + }, +}; + +fs.writeFileSync("pkg/vars/platform.go.json", JSON.stringify(platforms, null, 2)); fs.writeFileSync( "pkg/vars/staffs.go.json", From 0103b98c629349199a15058a99560ec3338dd3a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 May 2025 20:33:53 +0800 Subject: [PATCH 662/888] build(deps): update module github.com/trim21/errgo to v0.0.6 (#833) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d3713424c..96323f995 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 - github.com/trim21/errgo v0.0.5 + github.com/trim21/errgo v0.0.6 github.com/trim21/go-phpserialize v0.1.1 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.23.0 diff --git a/go.sum b/go.sum index 61c0dee0b..e586c728e 100644 --- a/go.sum +++ b/go.sum @@ -236,8 +236,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/trim21/errgo v0.0.5 h1:lIB52BB5ebqDPJwRpGbQJ+5eh/K9tHf/vipPqy1OQZI= -github.com/trim21/errgo v0.0.5/go.mod h1:8uSKeZAGc+XDaPDqcgOCduVPb2Xpb1YxqxfMK1JcLlo= +github.com/trim21/errgo v0.0.6 h1:Qz10hGY51k5u7ADRa/jqan8VaQYKx7hAqUJ6t5m42/I= +github.com/trim21/errgo v0.0.6/go.mod h1:8uSKeZAGc+XDaPDqcgOCduVPb2Xpb1YxqxfMK1JcLlo= github.com/trim21/go-phpserialize v0.1.1 h1:YDDTZ10D+xqWgvnaSeud90xHRb+51VBUiQYxRTZY11k= github.com/trim21/go-phpserialize v0.1.1/go.mod h1:StH8iTviDvvY7dcMSNgRSzRzcuKmj2YZ/EETVRGlIws= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= From 9c02a75df86c93d36ee418e0f83d956a0dd5bc76 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 10 May 2025 22:22:44 +0800 Subject: [PATCH 663/888] ci: do not pin actions --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 8 ++++---- .github/workflows/release-docker.yaml | 8 ++++---- .github/workflows/release-github.yaml | 4 ++-- .github/workflows/release-openapi.yaml | 8 ++++---- .github/workflows/security.yaml | 2 +- .github/workflows/test-openapi.yaml | 4 ++-- .github/workflows/test.yaml | 6 +++--- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 62a2df1a7..25c792b46 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: submodules: true diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index cf7bee7ad..1bc38f52f 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,17 +16,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@v4 with: submodules: true - name: Install Node LTS - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + uses: actions/setup-node@v4 with: cache: yarn - name: Install Go - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 + uses: actions/setup-go@v5 with: go-version-file: "go.mod" @@ -36,4 +36,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef + - uses: autofix-ci/action@v1 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index a0b2c40bf..5ff022f6c 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: submodules: true @@ -47,7 +47,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5 + uses: docker/metadata-action@v5 with: images: ${{ env.IMAGE }} tags: | @@ -57,14 +57,14 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 + - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6 + uses: docker/build-push-action@v6 with: context: ./ provenance: false diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index f934065d4..dffbf0816 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -12,13 +12,13 @@ jobs: github: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Generate Changelog id: changelog - uses: requarks/changelog-action@6d71e098526ee17bae963f058d34cd763378337f # v1.10.2 + uses: requarks/changelog-action@v1.10.2 with: token: ${{ github.token }} tag: ${{ github.ref_name }} diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 44d28ffbd..727ef17c4 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -13,15 +13,15 @@ jobs: openapi: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: 20 - run: yarn install --frozen-lockfile - run: yarn run build - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: repository: "bangumi/api" path: api @@ -29,7 +29,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7 + uses: peter-evans/create-pull-request@v7 with: path: api token: ${{ secrets.PAT }} diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 9cea88b26..afb2a5e6c 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -25,7 +25,7 @@ jobs: vulnerability-scan: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: submodules: true diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index c106239b4..5e2150588 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -28,8 +28,8 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5ce917256..a949e1e58 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@v4 with: submodules: recursive @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0 + uses: jaxxstorm/action-install-gh-release@v2.1.0 with: repo: gotestyourself/gotestsum tag: v1.12.1 @@ -69,7 +69,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # v5 + - uses: codecov/codecov-action@v5 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required From cebfef7add37ca73c5b5a90a9e5188b5502ceadb Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 10 May 2025 22:27:11 +0800 Subject: [PATCH 664/888] build: run `go get -u ./...` --- go.mod | 36 +++++++++++++------------- go.sum | 79 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 58 insertions(+), 57 deletions(-) diff --git a/go.mod b/go.mod index 96323f995..ce338286d 100644 --- a/go.mod +++ b/go.mod @@ -48,7 +48,7 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect - github.com/BurntSushi/toml v1.4.0 // indirect + github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect @@ -58,7 +58,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect - github.com/aws/smithy-go v1.22.2 // indirect + github.com/aws/smithy-go v1.22.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect @@ -67,7 +67,7 @@ require ( github.com/cloudwego/base64x v0.1.5 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gabriel-vasile/mimetype v1.4.9 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/huandu/xstrings v1.5.0 // indirect @@ -78,7 +78,7 @@ require ( github.com/joho/godotenv v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/knadh/koanf/parsers/yaml v0.1.0 // indirect github.com/knadh/koanf/providers/env v1.0.0 // indirect @@ -94,11 +94,11 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.34.0 // indirect @@ -111,21 +111,21 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - go.uber.org/dig v1.18.0 // indirect + go.uber.org/dig v1.18.2 // indirect go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect - golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/crypto v0.37.0 // indirect + golang.org/x/arch v0.17.0 // indirect + golang.org/x/crypto v0.38.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.39.0 // indirect - golang.org/x/sys v0.32.0 // indirect - golang.org/x/term v0.31.0 // indirect - golang.org/x/time v0.8.0 // indirect - golang.org/x/tools v0.32.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/term v0.32.0 // indirect + golang.org/x/time v0.11.0 // indirect + golang.org/x/tools v0.33.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - gorm.io/datatypes v1.2.4 // indirect + gorm.io/datatypes v1.2.5 // indirect gorm.io/hints v1.1.2 // indirect olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect ) diff --git a/go.sum b/go.sum index e586c728e..1780a00c5 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,8 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= -github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= @@ -29,8 +29,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91Liq github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3 h1:BRXS0U76Z8wfF+bnkilA2QwpIch6URlm++yPUt9QPmQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3/go.mod h1:bNXKFFyaiVvWuR6O16h/I1724+aXe/tAkA9/QS01t5k= -github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= -github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.22.3 h1:Z//5NuZCSW6R4PhQ93hShNbyBbn8BWCmCVCt+Q8Io5k= +github.com/aws/smithy-go v1.22.3/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -61,8 +61,8 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= -github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gabriel-vasile/mimetype v1.4.9 h1:5k+WDwEsD9eTLL8Tz3L0VnmVh9QxGjRmjBvAG7U/oYY= +github.com/gabriel-vasile/mimetype v1.4.9/go.mod h1:WnSQhFKJuBlRyLiKohA/2DtIlPFAbguNaG7QCHcyGok= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= @@ -124,8 +124,9 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= +github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w= @@ -175,8 +176,8 @@ github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/meilisearch/meilisearch-go v0.32.0 h1:cWcycpONSH3VLTZ5npUl1O5aXPkNM0vUx6bywnYqGbE= github.com/meilisearch/meilisearch-go v0.32.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= -github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= -github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= +github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= +github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -188,20 +189,20 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= +github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/redis/rueidis v1.0.59 h1:r4SpgqrKnKwO2omN+BB5+24OCu+K15zmf/2b/zP7NKw= github.com/redis/rueidis v1.0.59/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -265,8 +266,8 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= -go.uber.org/dig v1.18.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/dig v1.18.2 h1:HElIfvmw0jYfmbgk+OU/1vbpYQFcImnuvaUEeuILS2c= +go.uber.org/dig v1.18.2/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -277,13 +278,13 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= +golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -296,8 +297,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -314,15 +315,15 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -332,25 +333,25 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= -golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/datatypes v1.2.4 h1:uZmGAcK/QZ0uyfCuVg0VQY1ZmV9h1fuG0tMwKByO1z4= -gorm.io/datatypes v1.2.4/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI= +gorm.io/datatypes v1.2.5 h1:9UogU3jkydFVW1bIVVeoYsTpLRgwDVW3rHfJG6/Ek9I= +gorm.io/datatypes v1.2.5/go.mod h1:I5FUdlKpLb5PMqeMQhm30CQ6jXP8Rj89xkTeCSAaAD4= gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= @@ -358,8 +359,8 @@ gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1 gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= -gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= -gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= +gorm.io/driver/sqlserver v1.5.4 h1:xA+Y1KDNspv79q43bPyjDMUgHoYHLhXYmdFcYPobg8g= +gorm.io/driver/sqlserver v1.5.4/go.mod h1:+frZ/qYmuna11zHPlh5oc2O6ZA/lS88Keb0XSH1Zh/g= gorm.io/gen v0.3.27 h1:ziocAFLpE7e0g4Rum69pGfB9S6DweTxK8gAun7cU8as= gorm.io/gen v0.3.27/go.mod h1:9zquz2xD1f3Eb/eHq4oLn2z6vDVvQlCY5S3uMBLv4EA= gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= From 729559c20293b1c7002f3c99d5924e9799c70970 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 10 May 2025 22:57:29 +0800 Subject: [PATCH 665/888] fix: check meili search filter syntax (#834) --- internal/search/subject/handle.go | 74 ++++++++++++++----- .../search/subject/handle_internal_test.go | 4 +- 2 files changed, 58 insertions(+), 20 deletions(-) diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index 0cdd2286a..07c46aecb 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -12,17 +12,18 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see -// Package search 基于 meilisearch 提供搜索功能 +// Package subject 提供 subject 相关的搜索功能 package subject import ( "encoding/json" "fmt" "net/http" + "regexp" "strconv" "strings" - wiki "github.com/bangumi/wiki-parser-go" + "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" @@ -64,7 +65,7 @@ type hit struct { ID model.SubjectID `json:"id"` } -type ReponseSubject struct { +type ResponseSubject struct { Date *string `json:"date"` Platform *string `json:"platform"` Images res.SubjectImages `json:"images"` @@ -104,7 +105,12 @@ func (c *client) Handle(ctx echo.Context) error { r.Filter.NSFW = null.Bool{Set: true, Value: false} } - result, err := c.doSearch(r.Keyword, filterToMeiliFilter(r.Filter), r.Sort, q.Limit, q.Offset) + meiliFilter, err := filterToMeiliFilter(r.Filter) + if err != nil { + return err + } + + result, err := c.doSearch(r.Keyword, meiliFilter, r.Sort, q.Limit, q.Offset) if err != nil { return errgo.Wrap(err, "search") } @@ -120,7 +126,7 @@ func (c *client) Handle(ctx echo.Context) error { return errgo.Wrap(err, "subjectRepo.GetByIDs") } - var data = make([]ReponseSubject, 0, len(subjects)) + var data = make([]ResponseSubject, 0, len(subjects)) for _, id := range ids { s, ok := subjects[id] if !ok { @@ -135,8 +141,7 @@ func (c *client) Handle(ctx echo.Context) error { metaTags = append(metaTags, tag.Tag{Name: t, Count: 1}) } - subject := toResponseSubject(s, metaTags) - data = append(data, subject) + data = append(data, toResponseSubject(s, metaTags)) } return ctx.JSON(http.StatusOK, res.Paged{ @@ -147,6 +152,9 @@ func (c *client) Handle(ctx echo.Context) error { }) } +var intFilterPattern = regexp.MustCompile(`^(?:>|<|>=|<=|=) *\d+$`) +var floatFilterPattern = regexp.MustCompile(`^(?:>|<|>=|<=|=) *\d+(?:\.\d+)?$`) + func (c *client) doSearch( words string, filter [][]string, @@ -195,13 +203,17 @@ type meiliSearchResponse struct { EstimatedTotalHits int64 `json:"estimatedTotalHits"` //nolint:tagliatelle } -func filterToMeiliFilter(req ReqFilter) [][]string { +func filterToMeiliFilter(req ReqFilter) ([][]string, error) { var filter = make([][]string, 0, 5+len(req.Tag)) // OR if len(req.AirDate) != 0 { - filter = append(filter, parseDateFilter(req.AirDate)...) + dateFilters, err := parseDateFilter(req.AirDate) + if err != nil { + return nil, err + } + filter = append(filter, dateFilters...) } if len(req.Type) != 0 { @@ -214,29 +226,38 @@ func filterToMeiliFilter(req ReqFilter) [][]string { filter = append(filter, []string{fmt.Sprintf("nsfw = %t", req.NSFW.Value)}) } - for _, tag := range req.MetaTags { - filter = append(filter, []string{"meta_tag = " + strconv.Quote(tag)}) + for _, t := range req.MetaTags { + filter = append(filter, []string{"meta_tag = " + strconv.Quote(t)}) } // AND - for _, tag := range req.Tag { - filter = append(filter, []string{"tag = " + strconv.Quote(tag)}) + for _, t := range req.Tag { + filter = append(filter, []string{"tag = " + strconv.Quote(t)}) } for _, s := range req.Rank { - filter = append(filter, []string{"rank" + s}) + if !intFilterPattern.MatchString(s) { + return nil, res.BadRequest(fmt.Sprintf( + `invalid rank filter: %q, should be in the format of "^(>|<|>=|<=|=) *\d+$"`, s)) + } + filter = append(filter, []string{"rank " + s}) } for _, s := range req.Score { + if !floatFilterPattern.MatchString(s) { + return nil, res.BadRequest(fmt.Sprintf( + `invalid score filter: %q, should be in the format of "^(>|<|>=|<=|=) *\d+(\.\d)?$"`, s)) + } + filter = append(filter, []string{"score " + s}) } - return filter + return filter, nil } // parse date filter like `<2020-01-20`, `>=2020-01-23`. -func parseDateFilter(filters []string) [][]string { +func parseDateFilter(filters []string) ([][]string, error) { var result = make([][]string, 0, len(filters)) for _, s := range filters { @@ -244,27 +265,42 @@ func parseDateFilter(filters []string) [][]string { case strings.HasPrefix(s, ">="): if v, ok := parseDateValOk(s[2:]); ok { result = append(result, []string{fmt.Sprintf("date >= %d", v)}) + } else { + return nil, res.BadRequest(fmt.Sprintf( + `invalid date filter: %q, date should be in the format of ">= YYYY-MM-DD"`, s)) } case strings.HasPrefix(s, ">"): if v, ok := parseDateValOk(s[1:]); ok { result = append(result, []string{fmt.Sprintf("date > %d", v)}) + } else { + return nil, res.BadRequest(fmt.Sprintf( + `invalid date filter: %q, date should be in the format of "> YYYY-MM-DD"`, s)) } case strings.HasPrefix(s, "<="): if v, ok := parseDateValOk(s[2:]); ok { result = append(result, []string{fmt.Sprintf("date <= %d", v)}) + } else { + return nil, res.BadRequest(fmt.Sprintf( + `invalid date filter: %q, date should be in the format of "<= YYYY-MM-DD"`, s)) } case strings.HasPrefix(s, "<"): if v, ok := parseDateValOk(s[1:]); ok { result = append(result, []string{fmt.Sprintf("date < %d", v)}) + } else { + return nil, res.BadRequest(fmt.Sprintf( + `invalid date filter: %q, date should be in the format of "< YYYY-MM-DD"`, s)) } default: if v, ok := parseDateValOk(s); ok { result = append(result, []string{fmt.Sprintf("date = %d", v)}) + } else { + return nil, res.BadRequest(fmt.Sprintf( + `invalid date filter: %q, date should be in the format of "YYYY-MM-DD"`, s)) } } } - return result + return result, nil } func parseDateValOk(date string) (int, bool) { @@ -309,9 +345,9 @@ func isDigitsOnly(s string) bool { return true } -func toResponseSubject(s model.Subject, metaTags []tag.Tag) ReponseSubject { +func toResponseSubject(s model.Subject, metaTags []tag.Tag) ResponseSubject { images := res.SubjectImage(s.Image) - return ReponseSubject{ + return ResponseSubject{ ID: s.ID, Image: images.Large, Images: images, diff --git a/internal/search/subject/handle_internal_test.go b/internal/search/subject/handle_internal_test.go index 5eb9e839f..bad3931d8 100644 --- a/internal/search/subject/handle_internal_test.go +++ b/internal/search/subject/handle_internal_test.go @@ -25,11 +25,13 @@ import ( func Test_ReqFilterToMeiliFilter(t *testing.T) { t.Parallel() - actual := filterToMeiliFilter(ReqFilter{ + actual, err := filterToMeiliFilter(ReqFilter{ Tag: []string{"a", "b"}, NSFW: null.Bool{Set: true, Value: false}, }) + require.NoError(t, err) + require.Equal(t, [][]string{ {`nsfw = false`}, {`tag = "a"`}, From b578faa1b97fc4143bea5a340ead9b70dfdc637f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 May 2025 11:59:39 +0800 Subject: [PATCH 666/888] build(deps): lock file maintenance npm (#835) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b2721b492..e50489824 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^12.0.1", + "@apidevtools/json-schema-ref-parser": "^12.0.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.7.1" diff --git a/yarn.lock b/yarn.lock index 7c00306ab..410126211 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^12.0.1": - version "12.0.1" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-12.0.1.tgz#74cd3f3a8338b4a98193f95fc82714dda6a19bcd" - integrity sha512-D3n3T19ly/RYyEvsrqKa/cSAlzQF8KXj1o0XLTI+9GKnJvdHT3WW50yZYCf+4JU7+pLlhXZVV1q1AJ0SPN/pmw== +"@apidevtools/json-schema-ref-parser@^12.0.2": + version "12.0.2" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-12.0.2.tgz#f63c888827f62de2435e47a9c6af3a0f028084e8" + integrity sha512-SoZWqQz4YMKdw4kEMfG5w6QAy+rntjsoAT1FtvZAnVEnCR4uy9YSuDBNoVAFHgzSz0dJbISLLCSrGR2Zd7bcvA== dependencies: "@jsdevtools/ono" "^7.1.3" "@types/json-schema" "^7.0.15" From 6bed2e68fec54e77dfbbc0ad3c0a9e2637c07ef6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 14 May 2025 05:17:33 +0800 Subject: [PATCH 667/888] fix: subject search nsfw filter --- internal/search/subject/handle.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index 07c46aecb..232713278 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -223,7 +223,9 @@ func filterToMeiliFilter(req ReqFilter) ([][]string, error) { } if req.NSFW.Set { - filter = append(filter, []string{fmt.Sprintf("nsfw = %t", req.NSFW.Value)}) + if !req.NSFW.Value { + filter = append(filter, []string{fmt.Sprintf("nsfw = %t", req.NSFW.Value)}) + } } for _, t := range req.MetaTags { From 77e4b13d7d9ed323a7796547a4f61e5e26187224 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 17 May 2025 13:16:20 +0800 Subject: [PATCH 668/888] docs: update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 4f72a25c5..44bac5a21 100644 --- a/readme.md +++ b/readme.md @@ -122,7 +122,7 @@ task lint ## License -Copyright (C) 2021-2022 bangumi server contributors. +Copyright (C) 2021-2025 bangumi server contributors. Source is licensed under the GNU AGPLv3 license that can be found in the [LICENSE.txt](https://github.com/bangumi/server/blob/master/LICENSE.txt) file. From 5eab77cc6226903d1e39b05898a5f63631fa5d85 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 May 2025 13:19:53 +0800 Subject: [PATCH 669/888] build(deps): lock file maintenance npm (#838) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e50489824..b8963f178 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@apidevtools/json-schema-ref-parser": "^12.0.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "yaml": "^2.7.1" + "yaml": "^2.8.0" }, "devDependencies": { "colors": "^1.4.0", diff --git a/yarn.lock b/yarn.lock index 410126211..e5f03d812 100644 --- a/yarn.lock +++ b/yarn.lock @@ -263,10 +263,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.1.tgz#44a247d1b88523855679ac7fa7cda6ed7e135cf6" - integrity sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ== +yaml@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.0.tgz#15f8c9866211bdc2d3781a0890e44d4fa1a5fff6" + integrity sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ== yargs-parser@^21.1.1: version "21.1.1" From 3004b820b8fa622fc06a91f8c38e5723fdb0b3e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 17 May 2025 13:20:33 +0800 Subject: [PATCH 670/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.48 (#837) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ce338286d..12b90cd29 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/prometheus/client_golang v1.22.0 github.com/redis/rueidis v1.0.59 github.com/samber/lo v1.50.0 - github.com/segmentio/kafka-go v0.4.47 + github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/stretchr/testify v1.10.0 diff --git a/go.sum b/go.sum index 1780a00c5..4fea918f1 100644 --- a/go.sum +++ b/go.sum @@ -216,8 +216,8 @@ github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= -github.com/segmentio/kafka-go v0.4.47 h1:IqziR4pA3vrZq7YdRxaT3w1/5fvIH5qpCwstUanQQB0= -github.com/segmentio/kafka-go v0.4.47/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= +github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= +github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= From 35f95b59fc42e4f3fd79a6ccbe6013abf4b2af37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 May 2025 01:10:02 +0800 Subject: [PATCH 671/888] build(deps): update gcr.io/distroless/static docker digest to d9f9472 (#841) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index c9b2e28c1..e8c00fedd 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:3d0f463de06b7ddff27684ec3bfd0b54a425149d0f8685308b1fdf297b0265e9 +FROM gcr.io/distroless/static@sha256:d9f9472a8f4541368192d714a995eb1a99bab1f7071fc8bde261d7eda3b667d8 ENTRYPOINT ["/app/chii.exe"] From 393f6426cfd109516182de3a5bb31f788bdd9bdb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:19:50 +0800 Subject: [PATCH 672/888] build(deps): update module go.uber.org/fx to v1.24.0 (#846) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 12b90cd29..0981a76f6 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/trim21/errgo v0.0.6 github.com/trim21/go-phpserialize v0.1.1 github.com/trim21/htest v0.0.4 - go.uber.org/fx v1.23.0 + go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.14.0 golang.org/x/text v0.25.0 @@ -111,7 +111,7 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - go.uber.org/dig v1.18.2 // indirect + go.uber.org/dig v1.19.0 // indirect go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect diff --git a/go.sum b/go.sum index 4fea918f1..62566e761 100644 --- a/go.sum +++ b/go.sum @@ -266,10 +266,10 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.uber.org/dig v1.18.2 h1:HElIfvmw0jYfmbgk+OU/1vbpYQFcImnuvaUEeuILS2c= -go.uber.org/dig v1.18.2/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= -go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= +go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= +go.uber.org/dig v1.19.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.24.0 h1:wE8mruvpg2kiiL1Vqd0CC+tr0/24XIB10Iwp2lLWzkg= +go.uber.org/fx v1.24.0/go.mod h1:AmDeGyS+ZARGKM4tlH4FY2Jr63VjbEDJHtqXTGP5hbo= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= From 4c7de7d00722de79776e0147bfa2c364dcc115e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:20:03 +0800 Subject: [PATCH 673/888] build(deps): update module gorm.io/gorm to v1.30.0 (#847) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0981a76f6..6a3efc260 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( golang.org/x/text v0.25.0 gorm.io/driver/mysql v1.5.7 gorm.io/gen v0.3.27 - gorm.io/gorm v1.26.1 + gorm.io/gorm v1.30.0 gorm.io/plugin/dbresolver v1.6.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 62566e761..6818174e1 100644 --- a/go.sum +++ b/go.sum @@ -368,8 +368,8 @@ gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= -gorm.io/gorm v1.26.1 h1:ghB2gUI9FkS46luZtn6DLZ0f6ooBJ5IbVej2ENFDjRw= -gorm.io/gorm v1.26.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= +gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.6.0 h1:XvKDeOtTn1EIX6s4SrKpEH82q0gXVemhYjbYZFGFVcw= From f8ea0b5a82a6e5f5834354b6f12242402e753b5c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:20:27 +0800 Subject: [PATCH 674/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.80.0 (#844) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6a3efc260..b1075eb42 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/avast/retry-go/v4 v4.6.1 github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/credentials v1.17.67 - github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.13.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -55,7 +55,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/smithy-go v1.22.3 // indirect diff --git a/go.sum b/go.sum index 6818174e1..25e1166d5 100644 --- a/go.sum +++ b/go.sum @@ -21,14 +21,14 @@ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcu github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1 h1:4nm2G6A4pV9rdlWzGMPv4BNtQp22v1hg3yrtkYpeLl8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.1/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 h1:BCG7DCXEXpNCcpwCxg1oi9pkJWH2+eZzTn9MY56MbVw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3 h1:BRXS0U76Z8wfF+bnkilA2QwpIch6URlm++yPUt9QPmQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.79.3/go.mod h1:bNXKFFyaiVvWuR6O16h/I1724+aXe/tAkA9/QS01t5k= +github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0 h1:fV4XIU5sn/x8gjRouoJpDVHj+ExJaUk4prYF+eb6qTs= +github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0/go.mod h1:qbn305Je/IofWBJ4bJz/Q7pDEtnnoInw/dGt71v6rHE= github.com/aws/smithy-go v1.22.3 h1:Z//5NuZCSW6R4PhQ93hShNbyBbn8BWCmCVCt+Q8Io5k= github.com/aws/smithy-go v1.22.3/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 96c07dada5497bfbfdf215bad567055e56aa9975 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:20:40 +0800 Subject: [PATCH 675/888] build(deps): update module github.com/redis/rueidis to v1.0.60 (#843) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1075eb42..fae31215a 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 - github.com/redis/rueidis v1.0.59 + github.com/redis/rueidis v1.0.60 github.com/samber/lo v1.50.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 25e1166d5..ea6b77790 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.59 h1:r4SpgqrKnKwO2omN+BB5+24OCu+K15zmf/2b/zP7NKw= -github.com/redis/rueidis v1.0.59/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.60 h1:MGZX8uNdw7iyWz22JhjA/9iXzddfCUE/EMK4VxKoKpA= +github.com/redis/rueidis v1.0.60/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From d8f9259a91e518bc06eb3fbb567b1c10c2f76254 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 02:20:51 +0800 Subject: [PATCH 676/888] build(deps): update module github.com/labstack/echo/v4 to v4.13.4 (#842) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fae31215a..22391784c 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.0 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v4 v4.13.3 + github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index ea6b77790..db94daaeb 100644 --- a/go.sum +++ b/go.sum @@ -148,8 +148,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= -github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= +github.com/labstack/echo/v4 v4.13.4 h1:oTZZW+T3s9gAu5L8vmzihV7/lkXGZuITzTQkTEhcXEA= +github.com/labstack/echo/v4 v4.13.4/go.mod h1:g63b33BZ5vZzcIUF8AtRH40DrTlXnx4UMC8rBdndmjQ= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= From 65859fc1d7e8cfb5fbf94008d4ef08521adc6ffe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 19:43:14 +0800 Subject: [PATCH 677/888] build(deps): update module github.com/bytedance/sonic to v1.13.3 (#848) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 22391784c..1e0b11bc0 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.67 github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.13.2 + github.com/bytedance/sonic v1.13.3 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 diff --git a/go.sum b/go.sum index db94daaeb..66b71081a 100644 --- a/go.sum +++ b/go.sum @@ -39,8 +39,8 @@ github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oM github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= -github.com/bytedance/sonic v1.13.2 h1:8/H1FempDZqC4VqjptGo14QQlJx8VdZJegxs6wwfqpQ= -github.com/bytedance/sonic v1.13.2/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0= +github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= From bd8832cc049a8ed0f3a93f2d8e571561042f2bd7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 20:30:51 +0800 Subject: [PATCH 678/888] build(deps): update module github.com/vektra/mockery/v3 to v3.3.3 (#845) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 4 +- go.sum | 8 +- internal/mocks/AuthRepo.go | 34 ++- internal/mocks/AuthService.go | 17 +- internal/mocks/CacheRedisCache.go | 99 +++++-- internal/mocks/CharacterRepo.go | 85 +++++- internal/mocks/CollectionsRepo.go | 438 +++++++++++++++++++++++----- internal/mocks/EpisodeRepo.go | 89 +++++- internal/mocks/IndexRepo.go | 278 +++++++++++++++--- internal/mocks/PersonRepo.go | 68 ++++- internal/mocks/PersonService.go | 51 +++- internal/mocks/RevisionRepo.go | 260 ++++++++++++++--- internal/mocks/SearchClient.go | 89 +++++- internal/mocks/SessionManager.go | 68 ++++- internal/mocks/SessionRepo.go | 82 +++++- internal/mocks/SubjectCachedRepo.go | 171 +++++++++-- internal/mocks/SubjectRepo.go | 171 +++++++++-- internal/mocks/TagRepo.go | 41 ++- internal/mocks/TimeLineService.go | 128 ++++++-- internal/mocks/UserRepo.go | 129 ++++++-- 20 files changed, 1915 insertions(+), 395 deletions(-) diff --git a/go.mod b/go.mod index 1e0b11bc0..750e04cae 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,6 @@ require ( github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/chigopher/pathlib v0.19.1 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect @@ -102,12 +101,11 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.34.0 // indirect - github.com/spf13/afero v1.12.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.2.5 // indirect + github.com/vektra/mockery/v3 v3.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index 66b71081a..e5b4f901f 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,6 @@ github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCN github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= -github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= @@ -218,8 +216,6 @@ github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= -github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= -github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= @@ -249,8 +245,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.2.5 h1:l65hiOW/zR7Z9XJtCS4EpOP3jhGExS2MV8INWwgcuaQ= -github.com/vektra/mockery/v3 v3.2.5/go.mod h1:UQwIbP5U84gbN/nkMyYVSW+tp7BFhaSym907rfS1HL4= +github.com/vektra/mockery/v3 v3.3.3 h1:JlT9COXGqEuPG0jeeBozie4T/OAACpVKVVfxqCJ2XkA= +github.com/vektra/mockery/v3 v3.3.3/go.mod h1:RQvsmgBhN039Gl5O2IgVg04+kCh1CO07Vi/OhkJfgl0= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= diff --git a/internal/mocks/AuthRepo.go b/internal/mocks/AuthRepo.go index 17a4abaea..4e5d86c38 100644 --- a/internal/mocks/AuthRepo.go +++ b/internal/mocks/AuthRepo.go @@ -70,15 +70,26 @@ type AuthRepo_GetByToken_Call struct { } // GetByToken is a helper method to define mock.On call -// - ctx -// - token +// - ctx context.Context +// - token string func (_e *AuthRepo_Expecter) GetByToken(ctx interface{}, token interface{}) *AuthRepo_GetByToken_Call { return &AuthRepo_GetByToken_Call{Call: _e.mock.On("GetByToken", ctx, token)} } func (_c *AuthRepo_GetByToken_Call) Run(run func(ctx context.Context, token string)) *AuthRepo_GetByToken_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -125,15 +136,26 @@ type AuthRepo_GetPermission_Call struct { } // GetPermission is a helper method to define mock.On call -// - ctx -// - groupID +// - ctx context.Context +// - groupID uint8 func (_e *AuthRepo_Expecter) GetPermission(ctx interface{}, groupID interface{}) *AuthRepo_GetPermission_Call { return &AuthRepo_GetPermission_Call{Call: _e.mock.On("GetPermission", ctx, groupID)} } func (_c *AuthRepo_GetPermission_Call) Run(run func(ctx context.Context, groupID uint8)) *AuthRepo_GetPermission_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint8)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 uint8 + if args[1] != nil { + arg1 = args[1].(uint8) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/AuthService.go b/internal/mocks/AuthService.go index db5bb32dd..cf512b90f 100644 --- a/internal/mocks/AuthService.go +++ b/internal/mocks/AuthService.go @@ -70,15 +70,26 @@ type AuthService_GetByToken_Call struct { } // GetByToken is a helper method to define mock.On call -// - ctx -// - token +// - ctx context.Context +// - token string func (_e *AuthService_Expecter) GetByToken(ctx interface{}, token interface{}) *AuthService_GetByToken_Call { return &AuthService_GetByToken_Call{Call: _e.mock.On("GetByToken", ctx, token)} } func (_c *AuthService_GetByToken_Call) Run(run func(ctx context.Context, token string)) *AuthService_GetByToken_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/CacheRedisCache.go b/internal/mocks/CacheRedisCache.go index ad4c83c77..9531a5901 100644 --- a/internal/mocks/CacheRedisCache.go +++ b/internal/mocks/CacheRedisCache.go @@ -67,8 +67,8 @@ type RedisCache_Del_Call struct { } // Del is a helper method to define mock.On call -// - ctx -// - keys +// - ctx context.Context +// - keys ...string func (_e *RedisCache_Expecter) Del(ctx interface{}, keys ...interface{}) *RedisCache_Del_Call { return &RedisCache_Del_Call{Call: _e.mock.On("Del", append([]interface{}{ctx}, keys...)...)} @@ -76,8 +76,20 @@ func (_e *RedisCache_Expecter) Del(ctx interface{}, keys ...interface{}) *RedisC func (_c *RedisCache_Del_Call) Run(run func(ctx context.Context, keys ...string)) *RedisCache_Del_Call { _c.Call.Run(func(args mock.Arguments) { - variadicArgs := args[1].([]string) - run(args[0].(context.Context), variadicArgs...) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []string + var variadicArgs []string + if len(args) > 1 { + variadicArgs = args[1].([]string) + } + arg1 = variadicArgs + run( + arg0, + arg1..., + ) }) return _c } @@ -124,16 +136,32 @@ type RedisCache_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - key -// - value +// - ctx context.Context +// - key string +// - value any func (_e *RedisCache_Expecter) Get(ctx interface{}, key interface{}, value interface{}) *RedisCache_Get_Call { return &RedisCache_Get_Call{Call: _e.mock.On("Get", ctx, key, value)} } func (_c *RedisCache_Get_Call) Run(run func(ctx context.Context, key string, value any)) *RedisCache_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string), args[2].(any)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + var arg2 any + if args[2] != nil { + arg2 = args[2].(any) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -171,16 +199,32 @@ type RedisCache_MGet_Call struct { } // MGet is a helper method to define mock.On call -// - ctx -// - key -// - result +// - ctx context.Context +// - key []string +// - result any func (_e *RedisCache_Expecter) MGet(ctx interface{}, key interface{}, result interface{}) *RedisCache_MGet_Call { return &RedisCache_MGet_Call{Call: _e.mock.On("MGet", ctx, key, result)} } func (_c *RedisCache_MGet_Call) Run(run func(ctx context.Context, key []string, result any)) *RedisCache_MGet_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]string), args[2].(any)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []string + if args[1] != nil { + arg1 = args[1].([]string) + } + var arg2 any + if args[2] != nil { + arg2 = args[2].(any) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -218,17 +262,38 @@ type RedisCache_Set_Call struct { } // Set is a helper method to define mock.On call -// - ctx -// - key -// - value -// - ttl +// - ctx context.Context +// - key string +// - value any +// - ttl time.Duration func (_e *RedisCache_Expecter) Set(ctx interface{}, key interface{}, value interface{}, ttl interface{}) *RedisCache_Set_Call { return &RedisCache_Set_Call{Call: _e.mock.On("Set", ctx, key, value, ttl)} } func (_c *RedisCache_Set_Call) Run(run func(ctx context.Context, key string, value any, ttl time.Duration)) *RedisCache_Set_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string), args[2].(any), args[3].(time.Duration)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + var arg2 any + if args[2] != nil { + arg2 = args[2].(any) + } + var arg3 time.Duration + if args[3] != nil { + arg3 = args[3].(time.Duration) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } diff --git a/internal/mocks/CharacterRepo.go b/internal/mocks/CharacterRepo.go index ccab00b92..9e6ddf007 100644 --- a/internal/mocks/CharacterRepo.go +++ b/internal/mocks/CharacterRepo.go @@ -72,15 +72,26 @@ type CharacterRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.CharacterID func (_e *CharacterRepo_Expecter) Get(ctx interface{}, id interface{}) *CharacterRepo_Get_Call { return &CharacterRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } func (_c *CharacterRepo_Get_Call) Run(run func(ctx context.Context, id model.CharacterID)) *CharacterRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -129,15 +140,26 @@ type CharacterRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []model.CharacterID func (_e *CharacterRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *CharacterRepo_GetByIDs_Call { return &CharacterRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } func (_c *CharacterRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.CharacterID)) *CharacterRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.CharacterID + if args[1] != nil { + arg1 = args[1].([]model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -186,15 +208,26 @@ type CharacterRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx -// - personID +// - ctx context.Context +// - personID model.PersonID func (_e *CharacterRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *CharacterRepo_GetPersonRelated_Call { return &CharacterRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } func (_c *CharacterRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *CharacterRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -243,15 +276,26 @@ type CharacterRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.SubjectID func (_e *CharacterRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *CharacterRepo_GetSubjectRelated_Call { return &CharacterRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } func (_c *CharacterRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *CharacterRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -300,15 +344,26 @@ type CharacterRepo_GetSubjectRelationByIDs_Call struct { } // GetSubjectRelationByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []character.SubjectCompositeID func (_e *CharacterRepo_Expecter) GetSubjectRelationByIDs(ctx interface{}, ids interface{}) *CharacterRepo_GetSubjectRelationByIDs_Call { return &CharacterRepo_GetSubjectRelationByIDs_Call{Call: _e.mock.On("GetSubjectRelationByIDs", ctx, ids)} } func (_c *CharacterRepo_GetSubjectRelationByIDs_Call) Run(run func(ctx context.Context, ids []character.SubjectCompositeID)) *CharacterRepo_GetSubjectRelationByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]character.SubjectCompositeID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []character.SubjectCompositeID + if args[1] != nil { + arg1 = args[1].([]character.SubjectCompositeID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/CollectionsRepo.go b/internal/mocks/CollectionsRepo.go index 42ccd534c..4ba1c3d53 100644 --- a/internal/mocks/CollectionsRepo.go +++ b/internal/mocks/CollectionsRepo.go @@ -65,17 +65,38 @@ type CollectionsRepo_AddPersonCollection_Call struct { } // AddPersonCollection is a helper method to define mock.On call -// - ctx -// - userID -// - cat -// - targetID +// - ctx context.Context +// - userID model.UserID +// - cat collection.PersonCollectCategory +// - targetID model.PersonID func (_e *CollectionsRepo_Expecter) AddPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_AddPersonCollection_Call { return &CollectionsRepo_AddPersonCollection_Call{Call: _e.mock.On("AddPersonCollection", ctx, userID, cat, targetID)} } func (_c *CollectionsRepo_AddPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_AddPersonCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 collection.PersonCollectCategory + if args[2] != nil { + arg2 = args[2].(collection.PersonCollectCategory) + } + var arg3 model.PersonID + if args[3] != nil { + arg3 = args[3].(model.PersonID) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -122,16 +143,32 @@ type CollectionsRepo_CountPersonCollections_Call struct { } // CountPersonCollections is a helper method to define mock.On call -// - ctx -// - userID -// - cat +// - ctx context.Context +// - userID model.UserID +// - cat collection.PersonCollectCategory func (_e *CollectionsRepo_Expecter) CountPersonCollections(ctx interface{}, userID interface{}, cat interface{}) *CollectionsRepo_CountPersonCollections_Call { return &CollectionsRepo_CountPersonCollections_Call{Call: _e.mock.On("CountPersonCollections", ctx, userID, cat)} } func (_c *CollectionsRepo_CountPersonCollections_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory)) *CollectionsRepo_CountPersonCollections_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 collection.PersonCollectCategory + if args[2] != nil { + arg2 = args[2].(collection.PersonCollectCategory) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -178,18 +215,44 @@ type CollectionsRepo_CountSubjectCollections_Call struct { } // CountSubjectCollections is a helper method to define mock.On call -// - ctx -// - userID -// - subjectType -// - collectionType -// - showPrivate +// - ctx context.Context +// - userID model.UserID +// - subjectType model.SubjectType +// - collectionType collection.SubjectCollection +// - showPrivate bool func (_e *CollectionsRepo_Expecter) CountSubjectCollections(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}) *CollectionsRepo_CountSubjectCollections_Call { return &CollectionsRepo_CountSubjectCollections_Call{Call: _e.mock.On("CountSubjectCollections", ctx, userID, subjectType, collectionType, showPrivate)} } func (_c *CollectionsRepo_CountSubjectCollections_Call) Run(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool)) *CollectionsRepo_CountSubjectCollections_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectType), args[3].(collection.SubjectCollection), args[4].(bool)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.SubjectType + if args[2] != nil { + arg2 = args[2].(model.SubjectType) + } + var arg3 collection.SubjectCollection + if args[3] != nil { + arg3 = args[3].(collection.SubjectCollection) + } + var arg4 bool + if args[4] != nil { + arg4 = args[4].(bool) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -236,17 +299,38 @@ type CollectionsRepo_GetPersonCollection_Call struct { } // GetPersonCollection is a helper method to define mock.On call -// - ctx -// - userID -// - cat -// - targetID +// - ctx context.Context +// - userID model.UserID +// - cat collection.PersonCollectCategory +// - targetID model.PersonID func (_e *CollectionsRepo_Expecter) GetPersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_GetPersonCollection_Call { return &CollectionsRepo_GetPersonCollection_Call{Call: _e.mock.On("GetPersonCollection", ctx, userID, cat, targetID)} } func (_c *CollectionsRepo_GetPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_GetPersonCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 collection.PersonCollectCategory + if args[2] != nil { + arg2 = args[2].(collection.PersonCollectCategory) + } + var arg3 model.PersonID + if args[3] != nil { + arg3 = args[3].(model.PersonID) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -293,16 +377,32 @@ type CollectionsRepo_GetSubjectCollection_Call struct { } // GetSubjectCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subjectID +// - ctx context.Context +// - userID model.UserID +// - subjectID model.SubjectID func (_e *CollectionsRepo_Expecter) GetSubjectCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionsRepo_GetSubjectCollection_Call { return &CollectionsRepo_GetSubjectCollection_Call{Call: _e.mock.On("GetSubjectCollection", ctx, userID, subjectID)} } func (_c *CollectionsRepo_GetSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID)) *CollectionsRepo_GetSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.SubjectID + if args[2] != nil { + arg2 = args[2].(model.SubjectID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -351,16 +451,32 @@ type CollectionsRepo_GetSubjectEpisodesCollection_Call struct { } // GetSubjectEpisodesCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subjectID +// - ctx context.Context +// - userID model.UserID +// - subjectID model.SubjectID func (_e *CollectionsRepo_Expecter) GetSubjectEpisodesCollection(ctx interface{}, userID interface{}, subjectID interface{}) *CollectionsRepo_GetSubjectEpisodesCollection_Call { return &CollectionsRepo_GetSubjectEpisodesCollection_Call{Call: _e.mock.On("GetSubjectEpisodesCollection", ctx, userID, subjectID)} } func (_c *CollectionsRepo_GetSubjectEpisodesCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID)) *CollectionsRepo_GetSubjectEpisodesCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.SubjectID + if args[2] != nil { + arg2 = args[2].(model.SubjectID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -409,18 +525,44 @@ type CollectionsRepo_ListPersonCollection_Call struct { } // ListPersonCollection is a helper method to define mock.On call -// - ctx -// - userID -// - cat -// - limit -// - offset +// - ctx context.Context +// - userID model.UserID +// - cat collection.PersonCollectCategory +// - limit int +// - offset int func (_e *CollectionsRepo_Expecter) ListPersonCollection(ctx interface{}, userID interface{}, cat interface{}, limit interface{}, offset interface{}) *CollectionsRepo_ListPersonCollection_Call { return &CollectionsRepo_ListPersonCollection_Call{Call: _e.mock.On("ListPersonCollection", ctx, userID, cat, limit, offset)} } func (_c *CollectionsRepo_ListPersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, limit int, offset int)) *CollectionsRepo_ListPersonCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(int), args[4].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 collection.PersonCollectCategory + if args[2] != nil { + arg2 = args[2].(collection.PersonCollectCategory) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + var arg4 int + if args[4] != nil { + arg4 = args[4].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -469,20 +611,56 @@ type CollectionsRepo_ListSubjectCollection_Call struct { } // ListSubjectCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subjectType -// - collectionType -// - showPrivate -// - limit -// - offset +// - ctx context.Context +// - userID model.UserID +// - subjectType model.SubjectType +// - collectionType collection.SubjectCollection +// - showPrivate bool +// - limit int +// - offset int func (_e *CollectionsRepo_Expecter) ListSubjectCollection(ctx interface{}, userID interface{}, subjectType interface{}, collectionType interface{}, showPrivate interface{}, limit interface{}, offset interface{}) *CollectionsRepo_ListSubjectCollection_Call { return &CollectionsRepo_ListSubjectCollection_Call{Call: _e.mock.On("ListSubjectCollection", ctx, userID, subjectType, collectionType, showPrivate, limit, offset)} } func (_c *CollectionsRepo_ListSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectType model.SubjectType, collectionType collection.SubjectCollection, showPrivate bool, limit int, offset int)) *CollectionsRepo_ListSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectType), args[3].(collection.SubjectCollection), args[4].(bool), args[5].(int), args[6].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.SubjectType + if args[2] != nil { + arg2 = args[2].(model.SubjectType) + } + var arg3 collection.SubjectCollection + if args[3] != nil { + arg3 = args[3].(collection.SubjectCollection) + } + var arg4 bool + if args[4] != nil { + arg4 = args[4].(bool) + } + var arg5 int + if args[5] != nil { + arg5 = args[5].(int) + } + var arg6 int + if args[6] != nil { + arg6 = args[6].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + ) }) return _c } @@ -520,17 +698,38 @@ type CollectionsRepo_RemovePersonCollection_Call struct { } // RemovePersonCollection is a helper method to define mock.On call -// - ctx -// - userID -// - cat -// - targetID +// - ctx context.Context +// - userID model.UserID +// - cat collection.PersonCollectCategory +// - targetID model.PersonID func (_e *CollectionsRepo_Expecter) RemovePersonCollection(ctx interface{}, userID interface{}, cat interface{}, targetID interface{}) *CollectionsRepo_RemovePersonCollection_Call { return &CollectionsRepo_RemovePersonCollection_Call{Call: _e.mock.On("RemovePersonCollection", ctx, userID, cat, targetID)} } func (_c *CollectionsRepo_RemovePersonCollection_Call) Run(run func(ctx context.Context, userID model.UserID, cat collection.PersonCollectCategory, targetID model.PersonID)) *CollectionsRepo_RemovePersonCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(collection.PersonCollectCategory), args[3].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 collection.PersonCollectCategory + if args[2] != nil { + arg2 = args[2].(collection.PersonCollectCategory) + } + var arg3 model.PersonID + if args[3] != nil { + arg3 = args[3].(model.PersonID) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -579,19 +778,50 @@ type CollectionsRepo_UpdateEpisodeCollection_Call struct { } // UpdateEpisodeCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subjectID -// - episodeIDs -// - collection1 -// - at +// - ctx context.Context +// - userID model.UserID +// - subjectID model.SubjectID +// - episodeIDs []model.EpisodeID +// - collection1 collection.EpisodeCollection +// - at time.Time func (_e *CollectionsRepo_Expecter) UpdateEpisodeCollection(ctx interface{}, userID interface{}, subjectID interface{}, episodeIDs interface{}, collection1 interface{}, at interface{}) *CollectionsRepo_UpdateEpisodeCollection_Call { return &CollectionsRepo_UpdateEpisodeCollection_Call{Call: _e.mock.On("UpdateEpisodeCollection", ctx, userID, subjectID, episodeIDs, collection1, at)} } func (_c *CollectionsRepo_UpdateEpisodeCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subjectID model.SubjectID, episodeIDs []model.EpisodeID, collection1 collection.EpisodeCollection, at time.Time)) *CollectionsRepo_UpdateEpisodeCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.SubjectID), args[3].([]model.EpisodeID), args[4].(collection.EpisodeCollection), args[5].(time.Time)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.SubjectID + if args[2] != nil { + arg2 = args[2].(model.SubjectID) + } + var arg3 []model.EpisodeID + if args[3] != nil { + arg3 = args[3].([]model.EpisodeID) + } + var arg4 collection.EpisodeCollection + if args[4] != nil { + arg4 = args[4].(collection.EpisodeCollection) + } + var arg5 time.Time + if args[5] != nil { + arg5 = args[5].(time.Time) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + ) }) return _c } @@ -629,19 +859,50 @@ type CollectionsRepo_UpdateOrCreateSubjectCollection_Call struct { } // UpdateOrCreateSubjectCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subject -// - at -// - ip -// - update +// - ctx context.Context +// - userID model.UserID +// - subject model.Subject +// - at time.Time +// - ip string +// - update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) func (_e *CollectionsRepo_Expecter) UpdateOrCreateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { return &CollectionsRepo_UpdateOrCreateSubjectCollection_Call{Call: _e.mock.On("UpdateOrCreateSubjectCollection", ctx, userID, subject, at, ip, update)} } func (_c *CollectionsRepo_UpdateOrCreateSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) *CollectionsRepo_UpdateOrCreateSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.Subject + if args[2] != nil { + arg2 = args[2].(model.Subject) + } + var arg3 time.Time + if args[3] != nil { + arg3 = args[3].(time.Time) + } + var arg4 string + if args[4] != nil { + arg4 = args[4].(string) + } + var arg5 func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) + if args[5] != nil { + arg5 = args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + ) }) return _c } @@ -679,19 +940,50 @@ type CollectionsRepo_UpdateSubjectCollection_Call struct { } // UpdateSubjectCollection is a helper method to define mock.On call -// - ctx -// - userID -// - subject -// - at -// - ip -// - update +// - ctx context.Context +// - userID model.UserID +// - subject model.Subject +// - at time.Time +// - ip string +// - update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) func (_e *CollectionsRepo_Expecter) UpdateSubjectCollection(ctx interface{}, userID interface{}, subject interface{}, at interface{}, ip interface{}, update interface{}) *CollectionsRepo_UpdateSubjectCollection_Call { return &CollectionsRepo_UpdateSubjectCollection_Call{Call: _e.mock.On("UpdateSubjectCollection", ctx, userID, subject, at, ip, update)} } func (_c *CollectionsRepo_UpdateSubjectCollection_Call) Run(run func(ctx context.Context, userID model.UserID, subject model.Subject, at time.Time, ip string, update func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) *CollectionsRepo_UpdateSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(time.Time), args[4].(string), args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error))) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.Subject + if args[2] != nil { + arg2 = args[2].(model.Subject) + } + var arg3 time.Time + if args[3] != nil { + arg3 = args[3].(time.Time) + } + var arg4 string + if args[4] != nil { + arg4 = args[4].(string) + } + var arg5 func(ctx context.Context, s *collection.Subject) (*collection.Subject, error) + if args[5] != nil { + arg5 = args[5].(func(ctx context.Context, s *collection.Subject) (*collection.Subject, error)) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + ) }) return _c } @@ -731,14 +1023,20 @@ type CollectionsRepo_WithQuery_Call struct { } // WithQuery is a helper method to define mock.On call -// - query1 +// - query1 *query.Query func (_e *CollectionsRepo_Expecter) WithQuery(query1 interface{}) *CollectionsRepo_WithQuery_Call { return &CollectionsRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", query1)} } func (_c *CollectionsRepo_WithQuery_Call) Run(run func(query1 *query.Query)) *CollectionsRepo_WithQuery_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*query.Query)) + var arg0 *query.Query + if args[0] != nil { + arg0 = args[0].(*query.Query) + } + run( + arg0, + ) }) return _c } diff --git a/internal/mocks/EpisodeRepo.go b/internal/mocks/EpisodeRepo.go index 95835b67c..068dd0ce6 100644 --- a/internal/mocks/EpisodeRepo.go +++ b/internal/mocks/EpisodeRepo.go @@ -72,16 +72,32 @@ type EpisodeRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx -// - subjectID -// - filter +// - ctx context.Context +// - subjectID model.SubjectID +// - filter episode.Filter func (_e *EpisodeRepo_Expecter) Count(ctx interface{}, subjectID interface{}, filter interface{}) *EpisodeRepo_Count_Call { return &EpisodeRepo_Count_Call{Call: _e.mock.On("Count", ctx, subjectID, filter)} } func (_c *EpisodeRepo_Count_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter)) *EpisodeRepo_Count_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(episode.Filter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 episode.Filter + if args[2] != nil { + arg2 = args[2].(episode.Filter) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -128,15 +144,26 @@ type EpisodeRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - episodeID +// - ctx context.Context +// - episodeID model.EpisodeID func (_e *EpisodeRepo_Expecter) Get(ctx interface{}, episodeID interface{}) *EpisodeRepo_Get_Call { return &EpisodeRepo_Get_Call{Call: _e.mock.On("Get", ctx, episodeID)} } func (_c *EpisodeRepo_Get_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID)) *EpisodeRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.EpisodeID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.EpisodeID + if args[1] != nil { + arg1 = args[1].(model.EpisodeID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -185,18 +212,44 @@ type EpisodeRepo_List_Call struct { } // List is a helper method to define mock.On call -// - ctx -// - subjectID -// - filter -// - limit -// - offset +// - ctx context.Context +// - subjectID model.SubjectID +// - filter episode.Filter +// - limit int +// - offset int func (_e *EpisodeRepo_Expecter) List(ctx interface{}, subjectID interface{}, filter interface{}, limit interface{}, offset interface{}) *EpisodeRepo_List_Call { return &EpisodeRepo_List_Call{Call: _e.mock.On("List", ctx, subjectID, filter, limit, offset)} } func (_c *EpisodeRepo_List_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, filter episode.Filter, limit int, offset int)) *EpisodeRepo_List_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(episode.Filter), args[3].(int), args[4].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 episode.Filter + if args[2] != nil { + arg2 = args[2].(episode.Filter) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + var arg4 int + if args[4] != nil { + arg4 = args[4].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -236,14 +289,20 @@ type EpisodeRepo_WithQuery_Call struct { } // WithQuery is a helper method to define mock.On call -// - query1 +// - query1 *query.Query func (_e *EpisodeRepo_Expecter) WithQuery(query1 interface{}) *EpisodeRepo_WithQuery_Call { return &EpisodeRepo_WithQuery_Call{Call: _e.mock.On("WithQuery", query1)} } func (_c *EpisodeRepo_WithQuery_Call) Run(run func(query1 *query.Query)) *EpisodeRepo_WithQuery_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*query.Query)) + var arg0 *query.Query + if args[0] != nil { + arg0 = args[0].(*query.Query) + } + run( + arg0, + ) }) return _c } diff --git a/internal/mocks/IndexRepo.go b/internal/mocks/IndexRepo.go index 268fcd308..999ffec5e 100644 --- a/internal/mocks/IndexRepo.go +++ b/internal/mocks/IndexRepo.go @@ -62,16 +62,32 @@ type IndexRepo_AddIndexCollect_Call struct { } // AddIndexCollect is a helper method to define mock.On call -// - ctx -// - id -// - uid +// - ctx context.Context +// - id model.IndexID +// - uid model.UserID func (_e *IndexRepo_Expecter) AddIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_AddIndexCollect_Call { return &IndexRepo_AddIndexCollect_Call{Call: _e.mock.On("AddIndexCollect", ctx, id, uid)} } func (_c *IndexRepo_AddIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_AddIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.UserID + if args[2] != nil { + arg2 = args[2].(model.UserID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -120,18 +136,44 @@ type IndexRepo_AddOrUpdateIndexSubject_Call struct { } // AddOrUpdateIndexSubject is a helper method to define mock.On call -// - ctx -// - id -// - subjectID -// - sort -// - comment +// - ctx context.Context +// - id model.IndexID +// - subjectID model.SubjectID +// - sort uint32 +// - comment string func (_e *IndexRepo_Expecter) AddOrUpdateIndexSubject(ctx interface{}, id interface{}, subjectID interface{}, sort interface{}, comment interface{}) *IndexRepo_AddOrUpdateIndexSubject_Call { return &IndexRepo_AddOrUpdateIndexSubject_Call{Call: _e.mock.On("AddOrUpdateIndexSubject", ctx, id, subjectID, sort, comment)} } func (_c *IndexRepo_AddOrUpdateIndexSubject_Call) Run(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID, sort uint32, comment string)) *IndexRepo_AddOrUpdateIndexSubject_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectID), args[3].(uint32), args[4].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.SubjectID + if args[2] != nil { + arg2 = args[2].(model.SubjectID) + } + var arg3 uint32 + if args[3] != nil { + arg3 = args[3].(uint32) + } + var arg4 string + if args[4] != nil { + arg4 = args[4].(string) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -178,16 +220,32 @@ type IndexRepo_CountSubjects_Call struct { } // CountSubjects is a helper method to define mock.On call -// - ctx -// - id -// - subjectType +// - ctx context.Context +// - id model.IndexID +// - subjectType model.SubjectType func (_e *IndexRepo_Expecter) CountSubjects(ctx interface{}, id interface{}, subjectType interface{}) *IndexRepo_CountSubjects_Call { return &IndexRepo_CountSubjects_Call{Call: _e.mock.On("CountSubjects", ctx, id, subjectType)} } func (_c *IndexRepo_CountSubjects_Call) Run(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType)) *IndexRepo_CountSubjects_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectType)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.SubjectType + if args[2] != nil { + arg2 = args[2].(model.SubjectType) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -225,15 +283,26 @@ type IndexRepo_Delete_Call struct { } // Delete is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.IndexID func (_e *IndexRepo_Expecter) Delete(ctx interface{}, id interface{}) *IndexRepo_Delete_Call { return &IndexRepo_Delete_Call{Call: _e.mock.On("Delete", ctx, id)} } func (_c *IndexRepo_Delete_Call) Run(run func(ctx context.Context, id model.IndexID)) *IndexRepo_Delete_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -271,16 +340,32 @@ type IndexRepo_DeleteIndexCollect_Call struct { } // DeleteIndexCollect is a helper method to define mock.On call -// - ctx -// - id -// - uid +// - ctx context.Context +// - id model.IndexID +// - uid model.UserID func (_e *IndexRepo_Expecter) DeleteIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_DeleteIndexCollect_Call { return &IndexRepo_DeleteIndexCollect_Call{Call: _e.mock.On("DeleteIndexCollect", ctx, id, uid)} } func (_c *IndexRepo_DeleteIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_DeleteIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.UserID + if args[2] != nil { + arg2 = args[2].(model.UserID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -318,16 +403,32 @@ type IndexRepo_DeleteIndexSubject_Call struct { } // DeleteIndexSubject is a helper method to define mock.On call -// - ctx -// - id -// - subjectID +// - ctx context.Context +// - id model.IndexID +// - subjectID model.SubjectID func (_e *IndexRepo_Expecter) DeleteIndexSubject(ctx interface{}, id interface{}, subjectID interface{}) *IndexRepo_DeleteIndexSubject_Call { return &IndexRepo_DeleteIndexSubject_Call{Call: _e.mock.On("DeleteIndexSubject", ctx, id, subjectID)} } func (_c *IndexRepo_DeleteIndexSubject_Call) Run(run func(ctx context.Context, id model.IndexID, subjectID model.SubjectID)) *IndexRepo_DeleteIndexSubject_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.SubjectID + if args[2] != nil { + arg2 = args[2].(model.SubjectID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -374,15 +475,26 @@ type IndexRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.IndexID func (_e *IndexRepo_Expecter) Get(ctx interface{}, id interface{}) *IndexRepo_Get_Call { return &IndexRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } func (_c *IndexRepo_Get_Call) Run(run func(ctx context.Context, id model.IndexID)) *IndexRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -431,16 +543,32 @@ type IndexRepo_GetIndexCollect_Call struct { } // GetIndexCollect is a helper method to define mock.On call -// - ctx -// - id -// - uid +// - ctx context.Context +// - id model.IndexID +// - uid model.UserID func (_e *IndexRepo_Expecter) GetIndexCollect(ctx interface{}, id interface{}, uid interface{}) *IndexRepo_GetIndexCollect_Call { return &IndexRepo_GetIndexCollect_Call{Call: _e.mock.On("GetIndexCollect", ctx, id, uid)} } func (_c *IndexRepo_GetIndexCollect_Call) Run(run func(ctx context.Context, id model.IndexID, uid model.UserID)) *IndexRepo_GetIndexCollect_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.UserID + if args[2] != nil { + arg2 = args[2].(model.UserID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -489,18 +617,44 @@ type IndexRepo_ListSubjects_Call struct { } // ListSubjects is a helper method to define mock.On call -// - ctx -// - id -// - subjectType -// - limit -// - offset +// - ctx context.Context +// - id model.IndexID +// - subjectType model.SubjectType +// - limit int +// - offset int func (_e *IndexRepo_Expecter) ListSubjects(ctx interface{}, id interface{}, subjectType interface{}, limit interface{}, offset interface{}) *IndexRepo_ListSubjects_Call { return &IndexRepo_ListSubjects_Call{Call: _e.mock.On("ListSubjects", ctx, id, subjectType, limit, offset)} } func (_c *IndexRepo_ListSubjects_Call) Run(run func(ctx context.Context, id model.IndexID, subjectType model.SubjectType, limit int, offset int)) *IndexRepo_ListSubjects_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(model.SubjectType), args[3].(int), args[4].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 model.SubjectType + if args[2] != nil { + arg2 = args[2].(model.SubjectType) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + var arg4 int + if args[4] != nil { + arg4 = args[4].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -538,15 +692,26 @@ type IndexRepo_New_Call struct { } // New is a helper method to define mock.On call -// - ctx -// - i +// - ctx context.Context +// - i *model.Index func (_e *IndexRepo_Expecter) New(ctx interface{}, i interface{}) *IndexRepo_New_Call { return &IndexRepo_New_Call{Call: _e.mock.On("New", ctx, i)} } func (_c *IndexRepo_New_Call) Run(run func(ctx context.Context, i *model.Index)) *IndexRepo_New_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(*model.Index)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 *model.Index + if args[1] != nil { + arg1 = args[1].(*model.Index) + } + run( + arg0, + arg1, + ) }) return _c } @@ -584,17 +749,38 @@ type IndexRepo_Update_Call struct { } // Update is a helper method to define mock.On call -// - ctx -// - id -// - title -// - desc +// - ctx context.Context +// - id model.IndexID +// - title string +// - desc string func (_e *IndexRepo_Expecter) Update(ctx interface{}, id interface{}, title interface{}, desc interface{}) *IndexRepo_Update_Call { return &IndexRepo_Update_Call{Call: _e.mock.On("Update", ctx, id, title, desc)} } func (_c *IndexRepo_Update_Call) Run(run func(ctx context.Context, id model.IndexID, title string, desc string)) *IndexRepo_Update_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.IndexID), args[2].(string), args[3].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.IndexID + if args[1] != nil { + arg1 = args[1].(model.IndexID) + } + var arg2 string + if args[2] != nil { + arg2 = args[2].(string) + } + var arg3 string + if args[3] != nil { + arg3 = args[3].(string) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } diff --git a/internal/mocks/PersonRepo.go b/internal/mocks/PersonRepo.go index 70f3c57b2..a6f4a1dd7 100644 --- a/internal/mocks/PersonRepo.go +++ b/internal/mocks/PersonRepo.go @@ -71,15 +71,26 @@ type PersonRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.PersonID func (_e *PersonRepo_Expecter) Get(ctx interface{}, id interface{}) *PersonRepo_Get_Call { return &PersonRepo_Get_Call{Call: _e.mock.On("Get", ctx, id)} } func (_c *PersonRepo_Get_Call) Run(run func(ctx context.Context, id model.PersonID)) *PersonRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -128,15 +139,26 @@ type PersonRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []model.PersonID func (_e *PersonRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *PersonRepo_GetByIDs_Call { return &PersonRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } func (_c *PersonRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.PersonID)) *PersonRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.PersonID + if args[1] != nil { + arg1 = args[1].([]model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -185,15 +207,26 @@ type PersonRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.CharacterID func (_e *PersonRepo_Expecter) GetCharacterRelated(ctx interface{}, subjectID interface{}) *PersonRepo_GetCharacterRelated_Call { return &PersonRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, subjectID)} } func (_c *PersonRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, subjectID model.CharacterID)) *PersonRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -242,15 +275,26 @@ type PersonRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.SubjectID func (_e *PersonRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *PersonRepo_GetSubjectRelated_Call { return &PersonRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } func (_c *PersonRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *PersonRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/PersonService.go b/internal/mocks/PersonService.go index 8323d4695..05fa750ff 100644 --- a/internal/mocks/PersonService.go +++ b/internal/mocks/PersonService.go @@ -70,15 +70,26 @@ type PersonService_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.PersonID func (_e *PersonService_Expecter) Get(ctx interface{}, id interface{}) *PersonService_Get_Call { return &PersonService_Get_Call{Call: _e.mock.On("Get", ctx, id)} } func (_c *PersonService_Get_Call) Run(run func(ctx context.Context, id model.PersonID)) *PersonService_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -127,15 +138,26 @@ type PersonService_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx -// - characterID +// - ctx context.Context +// - characterID model.CharacterID func (_e *PersonService_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *PersonService_GetCharacterRelated_Call { return &PersonService_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } func (_c *PersonService_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *PersonService_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -184,15 +206,26 @@ type PersonService_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.SubjectID func (_e *PersonService_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *PersonService_GetSubjectRelated_Call { return &PersonService_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } func (_c *PersonService_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *PersonService_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/RevisionRepo.go b/internal/mocks/RevisionRepo.go index 70e2d07af..ee14e0993 100644 --- a/internal/mocks/RevisionRepo.go +++ b/internal/mocks/RevisionRepo.go @@ -70,15 +70,26 @@ type RevisionRepo_CountCharacterRelated_Call struct { } // CountCharacterRelated is a helper method to define mock.On call -// - ctx -// - characterID +// - ctx context.Context +// - characterID model.CharacterID func (_e *RevisionRepo_Expecter) CountCharacterRelated(ctx interface{}, characterID interface{}) *RevisionRepo_CountCharacterRelated_Call { return &RevisionRepo_CountCharacterRelated_Call{Call: _e.mock.On("CountCharacterRelated", ctx, characterID)} } func (_c *RevisionRepo_CountCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *RevisionRepo_CountCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -125,15 +136,26 @@ type RevisionRepo_CountEpisodeRelated_Call struct { } // CountEpisodeRelated is a helper method to define mock.On call -// - ctx -// - episodeID +// - ctx context.Context +// - episodeID model.EpisodeID func (_e *RevisionRepo_Expecter) CountEpisodeRelated(ctx interface{}, episodeID interface{}) *RevisionRepo_CountEpisodeRelated_Call { return &RevisionRepo_CountEpisodeRelated_Call{Call: _e.mock.On("CountEpisodeRelated", ctx, episodeID)} } func (_c *RevisionRepo_CountEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID)) *RevisionRepo_CountEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.EpisodeID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.EpisodeID + if args[1] != nil { + arg1 = args[1].(model.EpisodeID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -180,15 +202,26 @@ type RevisionRepo_CountPersonRelated_Call struct { } // CountPersonRelated is a helper method to define mock.On call -// - ctx -// - personID +// - ctx context.Context +// - personID model.PersonID func (_e *RevisionRepo_Expecter) CountPersonRelated(ctx interface{}, personID interface{}) *RevisionRepo_CountPersonRelated_Call { return &RevisionRepo_CountPersonRelated_Call{Call: _e.mock.On("CountPersonRelated", ctx, personID)} } func (_c *RevisionRepo_CountPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *RevisionRepo_CountPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -235,15 +268,26 @@ type RevisionRepo_CountSubjectRelated_Call struct { } // CountSubjectRelated is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.SubjectID func (_e *RevisionRepo_Expecter) CountSubjectRelated(ctx interface{}, id interface{}) *RevisionRepo_CountSubjectRelated_Call { return &RevisionRepo_CountSubjectRelated_Call{Call: _e.mock.On("CountSubjectRelated", ctx, id)} } func (_c *RevisionRepo_CountSubjectRelated_Call) Run(run func(ctx context.Context, id model.SubjectID)) *RevisionRepo_CountSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -290,15 +334,26 @@ type RevisionRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.RevisionID func (_e *RevisionRepo_Expecter) GetCharacterRelated(ctx interface{}, id interface{}) *RevisionRepo_GetCharacterRelated_Call { return &RevisionRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, id)} } func (_c *RevisionRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.RevisionID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.RevisionID + if args[1] != nil { + arg1 = args[1].(model.RevisionID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -345,15 +400,26 @@ type RevisionRepo_GetEpisodeRelated_Call struct { } // GetEpisodeRelated is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.RevisionID func (_e *RevisionRepo_Expecter) GetEpisodeRelated(ctx interface{}, id interface{}) *RevisionRepo_GetEpisodeRelated_Call { return &RevisionRepo_GetEpisodeRelated_Call{Call: _e.mock.On("GetEpisodeRelated", ctx, id)} } func (_c *RevisionRepo_GetEpisodeRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.RevisionID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.RevisionID + if args[1] != nil { + arg1 = args[1].(model.RevisionID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -400,15 +466,26 @@ type RevisionRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.RevisionID func (_e *RevisionRepo_Expecter) GetPersonRelated(ctx interface{}, id interface{}) *RevisionRepo_GetPersonRelated_Call { return &RevisionRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, id)} } func (_c *RevisionRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.RevisionID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.RevisionID + if args[1] != nil { + arg1 = args[1].(model.RevisionID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -455,15 +532,26 @@ type RevisionRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.RevisionID func (_e *RevisionRepo_Expecter) GetSubjectRelated(ctx interface{}, id interface{}) *RevisionRepo_GetSubjectRelated_Call { return &RevisionRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, id)} } func (_c *RevisionRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, id model.RevisionID)) *RevisionRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.RevisionID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.RevisionID + if args[1] != nil { + arg1 = args[1].(model.RevisionID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -512,17 +600,38 @@ type RevisionRepo_ListCharacterRelated_Call struct { } // ListCharacterRelated is a helper method to define mock.On call -// - ctx -// - characterID -// - limit -// - offset +// - ctx context.Context +// - characterID model.CharacterID +// - limit int +// - offset int func (_e *RevisionRepo_Expecter) ListCharacterRelated(ctx interface{}, characterID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListCharacterRelated_Call { return &RevisionRepo_ListCharacterRelated_Call{Call: _e.mock.On("ListCharacterRelated", ctx, characterID, limit, offset)} } func (_c *RevisionRepo_ListCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID, limit int, offset int)) *RevisionRepo_ListCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -571,17 +680,38 @@ type RevisionRepo_ListEpisodeRelated_Call struct { } // ListEpisodeRelated is a helper method to define mock.On call -// - ctx -// - episodeID -// - limit -// - offset +// - ctx context.Context +// - episodeID model.EpisodeID +// - limit int +// - offset int func (_e *RevisionRepo_Expecter) ListEpisodeRelated(ctx interface{}, episodeID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListEpisodeRelated_Call { return &RevisionRepo_ListEpisodeRelated_Call{Call: _e.mock.On("ListEpisodeRelated", ctx, episodeID, limit, offset)} } func (_c *RevisionRepo_ListEpisodeRelated_Call) Run(run func(ctx context.Context, episodeID model.EpisodeID, limit int, offset int)) *RevisionRepo_ListEpisodeRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.EpisodeID), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.EpisodeID + if args[1] != nil { + arg1 = args[1].(model.EpisodeID) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -630,17 +760,38 @@ type RevisionRepo_ListPersonRelated_Call struct { } // ListPersonRelated is a helper method to define mock.On call -// - ctx -// - personID -// - limit -// - offset +// - ctx context.Context +// - personID model.PersonID +// - limit int +// - offset int func (_e *RevisionRepo_Expecter) ListPersonRelated(ctx interface{}, personID interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListPersonRelated_Call { return &RevisionRepo_ListPersonRelated_Call{Call: _e.mock.On("ListPersonRelated", ctx, personID, limit, offset)} } func (_c *RevisionRepo_ListPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID, limit int, offset int)) *RevisionRepo_ListPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -689,17 +840,38 @@ type RevisionRepo_ListSubjectRelated_Call struct { } // ListSubjectRelated is a helper method to define mock.On call -// - ctx -// - id -// - limit -// - offset +// - ctx context.Context +// - id model.SubjectID +// - limit int +// - offset int func (_e *RevisionRepo_Expecter) ListSubjectRelated(ctx interface{}, id interface{}, limit interface{}, offset interface{}) *RevisionRepo_ListSubjectRelated_Call { return &RevisionRepo_ListSubjectRelated_Call{Call: _e.mock.On("ListSubjectRelated", ctx, id, limit, offset)} } func (_c *RevisionRepo_ListSubjectRelated_Call) Run(run func(ctx context.Context, id model.SubjectID, limit int, offset int)) *RevisionRepo_ListSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index 7b5292dc5..9200c87d7 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -95,16 +95,32 @@ type SearchClient_EventAdded_Call struct { } // EventAdded is a helper method to define mock.On call -// - ctx -// - id -// - target +// - ctx context.Context +// - id uint32 +// - target search.SearchTarget func (_e *SearchClient_Expecter) EventAdded(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventAdded_Call { return &SearchClient_EventAdded_Call{Call: _e.mock.On("EventAdded", ctx, id, target)} } func (_c *SearchClient_EventAdded_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventAdded_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 uint32 + if args[1] != nil { + arg1 = args[1].(uint32) + } + var arg2 search.SearchTarget + if args[2] != nil { + arg2 = args[2].(search.SearchTarget) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -142,16 +158,32 @@ type SearchClient_EventDelete_Call struct { } // EventDelete is a helper method to define mock.On call -// - ctx -// - id -// - target +// - ctx context.Context +// - id uint32 +// - target search.SearchTarget func (_e *SearchClient_Expecter) EventDelete(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventDelete_Call { return &SearchClient_EventDelete_Call{Call: _e.mock.On("EventDelete", ctx, id, target)} } func (_c *SearchClient_EventDelete_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventDelete_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 uint32 + if args[1] != nil { + arg1 = args[1].(uint32) + } + var arg2 search.SearchTarget + if args[2] != nil { + arg2 = args[2].(search.SearchTarget) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -189,16 +221,32 @@ type SearchClient_EventUpdate_Call struct { } // EventUpdate is a helper method to define mock.On call -// - ctx -// - id -// - target +// - ctx context.Context +// - id uint32 +// - target search.SearchTarget func (_e *SearchClient_Expecter) EventUpdate(ctx interface{}, id interface{}, target interface{}) *SearchClient_EventUpdate_Call { return &SearchClient_EventUpdate_Call{Call: _e.mock.On("EventUpdate", ctx, id, target)} } func (_c *SearchClient_EventUpdate_Call) Run(run func(ctx context.Context, id uint32, target search.SearchTarget)) *SearchClient_EventUpdate_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(uint32), args[2].(search.SearchTarget)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 uint32 + if args[1] != nil { + arg1 = args[1].(uint32) + } + var arg2 search.SearchTarget + if args[2] != nil { + arg2 = args[2].(search.SearchTarget) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -236,15 +284,26 @@ type SearchClient_Handle_Call struct { } // Handle is a helper method to define mock.On call -// - c -// - target +// - c echo.Context +// - target search.SearchTarget func (_e *SearchClient_Expecter) Handle(c interface{}, target interface{}) *SearchClient_Handle_Call { return &SearchClient_Handle_Call{Call: _e.mock.On("Handle", c, target)} } func (_c *SearchClient_Handle_Call) Run(run func(c echo.Context, target search.SearchTarget)) *SearchClient_Handle_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(echo.Context), args[1].(search.SearchTarget)) + var arg0 echo.Context + if args[0] != nil { + arg0 = args[0].(echo.Context) + } + var arg1 search.SearchTarget + if args[1] != nil { + arg1 = args[1].(search.SearchTarget) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/SessionManager.go b/internal/mocks/SessionManager.go index c3ee48328..7fe9befe8 100644 --- a/internal/mocks/SessionManager.go +++ b/internal/mocks/SessionManager.go @@ -78,15 +78,26 @@ type SessionManager_Create_Call struct { } // Create is a helper method to define mock.On call -// - ctx -// - a +// - ctx context.Context +// - a auth.Auth func (_e *SessionManager_Expecter) Create(ctx interface{}, a interface{}) *SessionManager_Create_Call { return &SessionManager_Create_Call{Call: _e.mock.On("Create", ctx, a)} } func (_c *SessionManager_Create_Call) Run(run func(ctx context.Context, a auth.Auth)) *SessionManager_Create_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(auth.Auth)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 auth.Auth + if args[1] != nil { + arg1 = args[1].(auth.Auth) + } + run( + arg0, + arg1, + ) }) return _c } @@ -133,15 +144,26 @@ type SessionManager_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - key +// - ctx context.Context +// - key string func (_e *SessionManager_Expecter) Get(ctx interface{}, key interface{}) *SessionManager_Get_Call { return &SessionManager_Get_Call{Call: _e.mock.On("Get", ctx, key)} } func (_c *SessionManager_Get_Call) Run(run func(ctx context.Context, key string)) *SessionManager_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -179,15 +201,26 @@ type SessionManager_Revoke_Call struct { } // Revoke is a helper method to define mock.On call -// - ctx -// - key +// - ctx context.Context +// - key string func (_e *SessionManager_Expecter) Revoke(ctx interface{}, key interface{}) *SessionManager_Revoke_Call { return &SessionManager_Revoke_Call{Call: _e.mock.On("Revoke", ctx, key)} } func (_c *SessionManager_Revoke_Call) Run(run func(ctx context.Context, key string)) *SessionManager_Revoke_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -225,15 +258,26 @@ type SessionManager_RevokeUser_Call struct { } // RevokeUser is a helper method to define mock.On call -// - ctx -// - id +// - ctx context.Context +// - id model.UserID func (_e *SessionManager_Expecter) RevokeUser(ctx interface{}, id interface{}) *SessionManager_RevokeUser_Call { return &SessionManager_RevokeUser_Call{Call: _e.mock.On("RevokeUser", ctx, id)} } func (_c *SessionManager_RevokeUser_Call) Run(run func(ctx context.Context, id model.UserID)) *SessionManager_RevokeUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/SessionRepo.go b/internal/mocks/SessionRepo.go index 39d747b5a..7f21e6d28 100644 --- a/internal/mocks/SessionRepo.go +++ b/internal/mocks/SessionRepo.go @@ -78,17 +78,38 @@ type SessionRepo_Create_Call struct { } // Create is a helper method to define mock.On call -// - ctx -// - userID -// - regTime -// - keyGen +// - ctx context.Context +// - userID model.UserID +// - regTime time.Time +// - keyGen func() string func (_e *SessionRepo_Expecter) Create(ctx interface{}, userID interface{}, regTime interface{}, keyGen interface{}) *SessionRepo_Create_Call { return &SessionRepo_Create_Call{Call: _e.mock.On("Create", ctx, userID, regTime, keyGen)} } func (_c *SessionRepo_Create_Call) Run(run func(ctx context.Context, userID model.UserID, regTime time.Time, keyGen func() string)) *SessionRepo_Create_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(time.Time), args[3].(func() string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 time.Time + if args[2] != nil { + arg2 = args[2].(time.Time) + } + var arg3 func() string + if args[3] != nil { + arg3 = args[3].(func() string) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -135,15 +156,26 @@ type SessionRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - key +// - ctx context.Context +// - key string func (_e *SessionRepo_Expecter) Get(ctx interface{}, key interface{}) *SessionRepo_Get_Call { return &SessionRepo_Get_Call{Call: _e.mock.On("Get", ctx, key)} } func (_c *SessionRepo_Get_Call) Run(run func(ctx context.Context, key string)) *SessionRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -181,15 +213,26 @@ type SessionRepo_Revoke_Call struct { } // Revoke is a helper method to define mock.On call -// - ctx -// - key +// - ctx context.Context +// - key string func (_e *SessionRepo_Expecter) Revoke(ctx interface{}, key interface{}) *SessionRepo_Revoke_Call { return &SessionRepo_Revoke_Call{Call: _e.mock.On("Revoke", ctx, key)} } func (_c *SessionRepo_Revoke_Call) Run(run func(ctx context.Context, key string)) *SessionRepo_Revoke_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -238,15 +281,26 @@ type SessionRepo_RevokeUser_Call struct { } // RevokeUser is a helper method to define mock.On call -// - ctx -// - userID +// - ctx context.Context +// - userID model.UserID func (_e *SessionRepo_Expecter) RevokeUser(ctx interface{}, userID interface{}) *SessionRepo_RevokeUser_Call { return &SessionRepo_RevokeUser_Call{Call: _e.mock.On("RevokeUser", ctx, userID)} } func (_c *SessionRepo_RevokeUser_Call) Run(run func(ctx context.Context, userID model.UserID)) *SessionRepo_RevokeUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/SubjectCachedRepo.go b/internal/mocks/SubjectCachedRepo.go index bf3ed39a0..0c2d9c9f1 100644 --- a/internal/mocks/SubjectCachedRepo.go +++ b/internal/mocks/SubjectCachedRepo.go @@ -74,17 +74,38 @@ type SubjectCachedRepo_Browse_Call struct { } // Browse is a helper method to define mock.On call -// - ctx -// - filter -// - limit -// - offset +// - ctx context.Context +// - filter subject.BrowseFilter +// - limit int +// - offset int func (_e *SubjectCachedRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectCachedRepo_Browse_Call { return &SubjectCachedRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} } func (_c *SubjectCachedRepo_Browse_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int)) *SubjectCachedRepo_Browse_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(subject.BrowseFilter), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 subject.BrowseFilter + if args[1] != nil { + arg1 = args[1].(subject.BrowseFilter) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -131,15 +152,26 @@ type SubjectCachedRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx -// - filter +// - ctx context.Context +// - filter subject.BrowseFilter func (_e *SubjectCachedRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectCachedRepo_Count_Call { return &SubjectCachedRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} } func (_c *SubjectCachedRepo_Count_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter)) *SubjectCachedRepo_Count_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(subject.BrowseFilter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 subject.BrowseFilter + if args[1] != nil { + arg1 = args[1].(subject.BrowseFilter) + } + run( + arg0, + arg1, + ) }) return _c } @@ -186,16 +218,32 @@ type SubjectCachedRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id -// - filter +// - ctx context.Context +// - id model.SubjectID +// - filter subject.Filter func (_e *SubjectCachedRepo_Expecter) Get(ctx interface{}, id interface{}, filter interface{}) *SubjectCachedRepo_Get_Call { return &SubjectCachedRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, filter)} } func (_c *SubjectCachedRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, filter subject.Filter)) *SubjectCachedRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(subject.Filter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 subject.Filter + if args[2] != nil { + arg2 = args[2].(subject.Filter) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -244,16 +292,32 @@ type SubjectCachedRepo_GetActors_Call struct { } // GetActors is a helper method to define mock.On call -// - ctx -// - subjectID -// - characterIDs +// - ctx context.Context +// - subjectID model.SubjectID +// - characterIDs []model.CharacterID func (_e *SubjectCachedRepo_Expecter) GetActors(ctx interface{}, subjectID interface{}, characterIDs interface{}) *SubjectCachedRepo_GetActors_Call { return &SubjectCachedRepo_GetActors_Call{Call: _e.mock.On("GetActors", ctx, subjectID, characterIDs)} } func (_c *SubjectCachedRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID)) *SubjectCachedRepo_GetActors_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].([]model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 []model.CharacterID + if args[2] != nil { + arg2 = args[2].([]model.CharacterID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -302,16 +366,32 @@ type SubjectCachedRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids -// - filter +// - ctx context.Context +// - ids []model.SubjectID +// - filter subject.Filter func (_e *SubjectCachedRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}, filter interface{}) *SubjectCachedRepo_GetByIDs_Call { return &SubjectCachedRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids, filter)} } func (_c *SubjectCachedRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter)) *SubjectCachedRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.SubjectID), args[2].(subject.Filter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.SubjectID + if args[1] != nil { + arg1 = args[1].([]model.SubjectID) + } + var arg2 subject.Filter + if args[2] != nil { + arg2 = args[2].(subject.Filter) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -360,15 +440,26 @@ type SubjectCachedRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx -// - characterID +// - ctx context.Context +// - characterID model.CharacterID func (_e *SubjectCachedRepo_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *SubjectCachedRepo_GetCharacterRelated_Call { return &SubjectCachedRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } func (_c *SubjectCachedRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *SubjectCachedRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -417,15 +508,26 @@ type SubjectCachedRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx -// - personID +// - ctx context.Context +// - personID model.PersonID func (_e *SubjectCachedRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *SubjectCachedRepo_GetPersonRelated_Call { return &SubjectCachedRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } func (_c *SubjectCachedRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *SubjectCachedRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -474,15 +576,26 @@ type SubjectCachedRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.SubjectID func (_e *SubjectCachedRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *SubjectCachedRepo_GetSubjectRelated_Call { return &SubjectCachedRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } func (_c *SubjectCachedRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *SubjectCachedRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/SubjectRepo.go b/internal/mocks/SubjectRepo.go index a18a7517c..2da3c639f 100644 --- a/internal/mocks/SubjectRepo.go +++ b/internal/mocks/SubjectRepo.go @@ -74,17 +74,38 @@ type SubjectRepo_Browse_Call struct { } // Browse is a helper method to define mock.On call -// - ctx -// - filter -// - limit -// - offset +// - ctx context.Context +// - filter subject.BrowseFilter +// - limit int +// - offset int func (_e *SubjectRepo_Expecter) Browse(ctx interface{}, filter interface{}, limit interface{}, offset interface{}) *SubjectRepo_Browse_Call { return &SubjectRepo_Browse_Call{Call: _e.mock.On("Browse", ctx, filter, limit, offset)} } func (_c *SubjectRepo_Browse_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter, limit int, offset int)) *SubjectRepo_Browse_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(subject.BrowseFilter), args[2].(int), args[3].(int)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 subject.BrowseFilter + if args[1] != nil { + arg1 = args[1].(subject.BrowseFilter) + } + var arg2 int + if args[2] != nil { + arg2 = args[2].(int) + } + var arg3 int + if args[3] != nil { + arg3 = args[3].(int) + } + run( + arg0, + arg1, + arg2, + arg3, + ) }) return _c } @@ -131,15 +152,26 @@ type SubjectRepo_Count_Call struct { } // Count is a helper method to define mock.On call -// - ctx -// - filter +// - ctx context.Context +// - filter subject.BrowseFilter func (_e *SubjectRepo_Expecter) Count(ctx interface{}, filter interface{}) *SubjectRepo_Count_Call { return &SubjectRepo_Count_Call{Call: _e.mock.On("Count", ctx, filter)} } func (_c *SubjectRepo_Count_Call) Run(run func(ctx context.Context, filter subject.BrowseFilter)) *SubjectRepo_Count_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(subject.BrowseFilter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 subject.BrowseFilter + if args[1] != nil { + arg1 = args[1].(subject.BrowseFilter) + } + run( + arg0, + arg1, + ) }) return _c } @@ -186,16 +218,32 @@ type SubjectRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id -// - filter +// - ctx context.Context +// - id model.SubjectID +// - filter subject.Filter func (_e *SubjectRepo_Expecter) Get(ctx interface{}, id interface{}, filter interface{}) *SubjectRepo_Get_Call { return &SubjectRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, filter)} } func (_c *SubjectRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, filter subject.Filter)) *SubjectRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(subject.Filter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 subject.Filter + if args[2] != nil { + arg2 = args[2].(subject.Filter) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -244,16 +292,32 @@ type SubjectRepo_GetActors_Call struct { } // GetActors is a helper method to define mock.On call -// - ctx -// - subjectID -// - characterIDs +// - ctx context.Context +// - subjectID model.SubjectID +// - characterIDs []model.CharacterID func (_e *SubjectRepo_Expecter) GetActors(ctx interface{}, subjectID interface{}, characterIDs interface{}) *SubjectRepo_GetActors_Call { return &SubjectRepo_GetActors_Call{Call: _e.mock.On("GetActors", ctx, subjectID, characterIDs)} } func (_c *SubjectRepo_GetActors_Call) Run(run func(ctx context.Context, subjectID model.SubjectID, characterIDs []model.CharacterID)) *SubjectRepo_GetActors_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].([]model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 []model.CharacterID + if args[2] != nil { + arg2 = args[2].([]model.CharacterID) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -302,16 +366,32 @@ type SubjectRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids -// - filter +// - ctx context.Context +// - ids []model.SubjectID +// - filter subject.Filter func (_e *SubjectRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}, filter interface{}) *SubjectRepo_GetByIDs_Call { return &SubjectRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids, filter)} } func (_c *SubjectRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID, filter subject.Filter)) *SubjectRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.SubjectID), args[2].(subject.Filter)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.SubjectID + if args[1] != nil { + arg1 = args[1].([]model.SubjectID) + } + var arg2 subject.Filter + if args[2] != nil { + arg2 = args[2].(subject.Filter) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -360,15 +440,26 @@ type SubjectRepo_GetCharacterRelated_Call struct { } // GetCharacterRelated is a helper method to define mock.On call -// - ctx -// - characterID +// - ctx context.Context +// - characterID model.CharacterID func (_e *SubjectRepo_Expecter) GetCharacterRelated(ctx interface{}, characterID interface{}) *SubjectRepo_GetCharacterRelated_Call { return &SubjectRepo_GetCharacterRelated_Call{Call: _e.mock.On("GetCharacterRelated", ctx, characterID)} } func (_c *SubjectRepo_GetCharacterRelated_Call) Run(run func(ctx context.Context, characterID model.CharacterID)) *SubjectRepo_GetCharacterRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.CharacterID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.CharacterID + if args[1] != nil { + arg1 = args[1].(model.CharacterID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -417,15 +508,26 @@ type SubjectRepo_GetPersonRelated_Call struct { } // GetPersonRelated is a helper method to define mock.On call -// - ctx -// - personID +// - ctx context.Context +// - personID model.PersonID func (_e *SubjectRepo_Expecter) GetPersonRelated(ctx interface{}, personID interface{}) *SubjectRepo_GetPersonRelated_Call { return &SubjectRepo_GetPersonRelated_Call{Call: _e.mock.On("GetPersonRelated", ctx, personID)} } func (_c *SubjectRepo_GetPersonRelated_Call) Run(run func(ctx context.Context, personID model.PersonID)) *SubjectRepo_GetPersonRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.PersonID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.PersonID + if args[1] != nil { + arg1 = args[1].(model.PersonID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -474,15 +576,26 @@ type SubjectRepo_GetSubjectRelated_Call struct { } // GetSubjectRelated is a helper method to define mock.On call -// - ctx -// - subjectID +// - ctx context.Context +// - subjectID model.SubjectID func (_e *SubjectRepo_Expecter) GetSubjectRelated(ctx interface{}, subjectID interface{}) *SubjectRepo_GetSubjectRelated_Call { return &SubjectRepo_GetSubjectRelated_Call{Call: _e.mock.On("GetSubjectRelated", ctx, subjectID)} } func (_c *SubjectRepo_GetSubjectRelated_Call) Run(run func(ctx context.Context, subjectID model.SubjectID)) *SubjectRepo_GetSubjectRelated_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/TagRepo.go b/internal/mocks/TagRepo.go index 1dac041f4..8ccb89c28 100644 --- a/internal/mocks/TagRepo.go +++ b/internal/mocks/TagRepo.go @@ -73,16 +73,32 @@ type TagRepo_Get_Call struct { } // Get is a helper method to define mock.On call -// - ctx -// - id -// - typeID +// - ctx context.Context +// - id model.SubjectID +// - typeID model.SubjectType func (_e *TagRepo_Expecter) Get(ctx interface{}, id interface{}, typeID interface{}) *TagRepo_Get_Call { return &TagRepo_Get_Call{Call: _e.mock.On("Get", ctx, id, typeID)} } func (_c *TagRepo_Get_Call) Run(run func(ctx context.Context, id model.SubjectID, typeID model.SubjectType)) *TagRepo_Get_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.SubjectID), args[2].(model.SubjectType)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.SubjectID + if args[1] != nil { + arg1 = args[1].(model.SubjectID) + } + var arg2 model.SubjectType + if args[2] != nil { + arg2 = args[2].(model.SubjectType) + } + run( + arg0, + arg1, + arg2, + ) }) return _c } @@ -131,15 +147,26 @@ type TagRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []model.SubjectID func (_e *TagRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *TagRepo_GetByIDs_Call { return &TagRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } func (_c *TagRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.SubjectID)) *TagRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.SubjectID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.SubjectID + if args[1] != nil { + arg1 = args[1].([]model.SubjectID) + } + run( + arg0, + arg1, + ) }) return _c } diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimeLineService.go index 51dab090a..103dc8908 100644 --- a/internal/mocks/TimeLineService.go +++ b/internal/mocks/TimeLineService.go @@ -64,18 +64,44 @@ type TimelineService_ChangeEpisodeStatus_Call struct { } // ChangeEpisodeStatus is a helper method to define mock.On call -// - ctx -// - u -// - sbj -// - episode1 -// - t +// - ctx context.Context +// - u auth.Auth +// - sbj model.Subject +// - episode1 episode.Episode +// - t collection.EpisodeCollection func (_e *TimelineService_Expecter) ChangeEpisodeStatus(ctx interface{}, u interface{}, sbj interface{}, episode1 interface{}, t interface{}) *TimelineService_ChangeEpisodeStatus_Call { return &TimelineService_ChangeEpisodeStatus_Call{Call: _e.mock.On("ChangeEpisodeStatus", ctx, u, sbj, episode1, t)} } func (_c *TimelineService_ChangeEpisodeStatus_Call) Run(run func(ctx context.Context, u auth.Auth, sbj model.Subject, episode1 episode.Episode, t collection.EpisodeCollection)) *TimelineService_ChangeEpisodeStatus_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(auth.Auth), args[2].(model.Subject), args[3].(episode.Episode), args[4].(collection.EpisodeCollection)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 auth.Auth + if args[1] != nil { + arg1 = args[1].(auth.Auth) + } + var arg2 model.Subject + if args[2] != nil { + arg2 = args[2].(model.Subject) + } + var arg3 episode.Episode + if args[3] != nil { + arg3 = args[3].(episode.Episode) + } + var arg4 collection.EpisodeCollection + if args[4] != nil { + arg4 = args[4].(collection.EpisodeCollection) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } @@ -113,20 +139,56 @@ type TimelineService_ChangeSubjectCollection_Call struct { } // ChangeSubjectCollection is a helper method to define mock.On call -// - ctx -// - u -// - sbj -// - collect -// - collectID -// - comment -// - rate +// - ctx context.Context +// - u model.UserID +// - sbj model.Subject +// - collect collection.SubjectCollection +// - collectID uint64 +// - comment string +// - rate uint8 func (_e *TimelineService_Expecter) ChangeSubjectCollection(ctx interface{}, u interface{}, sbj interface{}, collect interface{}, collectID interface{}, comment interface{}, rate interface{}) *TimelineService_ChangeSubjectCollection_Call { return &TimelineService_ChangeSubjectCollection_Call{Call: _e.mock.On("ChangeSubjectCollection", ctx, u, sbj, collect, collectID, comment, rate)} } func (_c *TimelineService_ChangeSubjectCollection_Call) Run(run func(ctx context.Context, u model.UserID, sbj model.Subject, collect collection.SubjectCollection, collectID uint64, comment string, rate uint8)) *TimelineService_ChangeSubjectCollection_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(collection.SubjectCollection), args[4].(uint64), args[5].(string), args[6].(uint8)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.Subject + if args[2] != nil { + arg2 = args[2].(model.Subject) + } + var arg3 collection.SubjectCollection + if args[3] != nil { + arg3 = args[3].(collection.SubjectCollection) + } + var arg4 uint64 + if args[4] != nil { + arg4 = args[4].(uint64) + } + var arg5 string + if args[5] != nil { + arg5 = args[5].(string) + } + var arg6 uint8 + if args[6] != nil { + arg6 = args[6].(uint8) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + arg5, + arg6, + ) }) return _c } @@ -164,18 +226,44 @@ type TimelineService_ChangeSubjectProgress_Call struct { } // ChangeSubjectProgress is a helper method to define mock.On call -// - ctx -// - u -// - sbj -// - epsUpdate -// - volsUpdate +// - ctx context.Context +// - u model.UserID +// - sbj model.Subject +// - epsUpdate uint32 +// - volsUpdate uint32 func (_e *TimelineService_Expecter) ChangeSubjectProgress(ctx interface{}, u interface{}, sbj interface{}, epsUpdate interface{}, volsUpdate interface{}) *TimelineService_ChangeSubjectProgress_Call { return &TimelineService_ChangeSubjectProgress_Call{Call: _e.mock.On("ChangeSubjectProgress", ctx, u, sbj, epsUpdate, volsUpdate)} } func (_c *TimelineService_ChangeSubjectProgress_Call) Run(run func(ctx context.Context, u model.UserID, sbj model.Subject, epsUpdate uint32, volsUpdate uint32)) *TimelineService_ChangeSubjectProgress_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID), args[2].(model.Subject), args[3].(uint32), args[4].(uint32)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 model.Subject + if args[2] != nil { + arg2 = args[2].(model.Subject) + } + var arg3 uint32 + if args[3] != nil { + arg3 = args[3].(uint32) + } + var arg4 uint32 + if args[4] != nil { + arg4 = args[4].(uint32) + } + run( + arg0, + arg1, + arg2, + arg3, + arg4, + ) }) return _c } diff --git a/internal/mocks/UserRepo.go b/internal/mocks/UserRepo.go index 149697910..f9f9ab9eb 100644 --- a/internal/mocks/UserRepo.go +++ b/internal/mocks/UserRepo.go @@ -77,9 +77,9 @@ type UserRepo_CheckIsFriendToOthers_Call struct { } // CheckIsFriendToOthers is a helper method to define mock.On call -// - ctx -// - selfID -// - otherIDs +// - ctx context.Context +// - selfID model.UserID +// - otherIDs ...model.UserID func (_e *UserRepo_Expecter) CheckIsFriendToOthers(ctx interface{}, selfID interface{}, otherIDs ...interface{}) *UserRepo_CheckIsFriendToOthers_Call { return &UserRepo_CheckIsFriendToOthers_Call{Call: _e.mock.On("CheckIsFriendToOthers", append([]interface{}{ctx, selfID}, otherIDs...)...)} @@ -87,8 +87,25 @@ func (_e *UserRepo_Expecter) CheckIsFriendToOthers(ctx interface{}, selfID inter func (_c *UserRepo_CheckIsFriendToOthers_Call) Run(run func(ctx context.Context, selfID model.UserID, otherIDs ...model.UserID)) *UserRepo_CheckIsFriendToOthers_Call { _c.Call.Run(func(args mock.Arguments) { - variadicArgs := args[2].([]model.UserID) - run(args[0].(context.Context), args[1].(model.UserID), variadicArgs...) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + var arg2 []model.UserID + var variadicArgs []model.UserID + if len(args) > 2 { + variadicArgs = args[2].([]model.UserID) + } + arg2 = variadicArgs + run( + arg0, + arg1, + arg2..., + ) }) return _c } @@ -135,15 +152,26 @@ type UserRepo_GetByID_Call struct { } // GetByID is a helper method to define mock.On call -// - ctx -// - userID +// - ctx context.Context +// - userID model.UserID func (_e *UserRepo_Expecter) GetByID(ctx interface{}, userID interface{}) *UserRepo_GetByID_Call { return &UserRepo_GetByID_Call{Call: _e.mock.On("GetByID", ctx, userID)} } func (_c *UserRepo_GetByID_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetByID_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -192,15 +220,26 @@ type UserRepo_GetByIDs_Call struct { } // GetByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []model.UserID func (_e *UserRepo_Expecter) GetByIDs(ctx interface{}, ids interface{}) *UserRepo_GetByIDs_Call { return &UserRepo_GetByIDs_Call{Call: _e.mock.On("GetByIDs", ctx, ids)} } func (_c *UserRepo_GetByIDs_Call) Run(run func(ctx context.Context, ids []model.UserID)) *UserRepo_GetByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.UserID + if args[1] != nil { + arg1 = args[1].([]model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -247,15 +286,26 @@ type UserRepo_GetByName_Call struct { } // GetByName is a helper method to define mock.On call -// - ctx -// - username +// - ctx context.Context +// - username string func (_e *UserRepo_Expecter) GetByName(ctx interface{}, username interface{}) *UserRepo_GetByName_Call { return &UserRepo_GetByName_Call{Call: _e.mock.On("GetByName", ctx, username)} } func (_c *UserRepo_GetByName_Call) Run(run func(ctx context.Context, username string)) *UserRepo_GetByName_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(string)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 string + if args[1] != nil { + arg1 = args[1].(string) + } + run( + arg0, + arg1, + ) }) return _c } @@ -304,15 +354,26 @@ type UserRepo_GetFieldsByIDs_Call struct { } // GetFieldsByIDs is a helper method to define mock.On call -// - ctx -// - ids +// - ctx context.Context +// - ids []model.UserID func (_e *UserRepo_Expecter) GetFieldsByIDs(ctx interface{}, ids interface{}) *UserRepo_GetFieldsByIDs_Call { return &UserRepo_GetFieldsByIDs_Call{Call: _e.mock.On("GetFieldsByIDs", ctx, ids)} } func (_c *UserRepo_GetFieldsByIDs_Call) Run(run func(ctx context.Context, ids []model.UserID)) *UserRepo_GetFieldsByIDs_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].([]model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 []model.UserID + if args[1] != nil { + arg1 = args[1].([]model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -361,15 +422,26 @@ type UserRepo_GetFriends_Call struct { } // GetFriends is a helper method to define mock.On call -// - ctx -// - userID +// - ctx context.Context +// - userID model.UserID func (_e *UserRepo_Expecter) GetFriends(ctx interface{}, userID interface{}) *UserRepo_GetFriends_Call { return &UserRepo_GetFriends_Call{Call: _e.mock.On("GetFriends", ctx, userID)} } func (_c *UserRepo_GetFriends_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetFriends_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } @@ -416,15 +488,26 @@ type UserRepo_GetFullUser_Call struct { } // GetFullUser is a helper method to define mock.On call -// - ctx -// - userID +// - ctx context.Context +// - userID model.UserID func (_e *UserRepo_Expecter) GetFullUser(ctx interface{}, userID interface{}) *UserRepo_GetFullUser_Call { return &UserRepo_GetFullUser_Call{Call: _e.mock.On("GetFullUser", ctx, userID)} } func (_c *UserRepo_GetFullUser_Call) Run(run func(ctx context.Context, userID model.UserID)) *UserRepo_GetFullUser_Call { _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(model.UserID)) + var arg0 context.Context + if args[0] != nil { + arg0 = args[0].(context.Context) + } + var arg1 model.UserID + if args[1] != nil { + arg1 = args[1].(model.UserID) + } + run( + arg0, + arg1, + ) }) return _c } From a0b3309810cd197c35a13380590ac7e77efb1a3e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 7 Jun 2025 20:41:41 +0800 Subject: [PATCH 679/888] feat: support episode updated time (#849) --- .../collections/domain/collection/model.go | 5 ++-- internal/collections/infra/mysql_repo.go | 27 ++++++++++++++----- .../collections/infra/mysql_repo_compat.go | 14 ++++++++-- .../get-user-episodes-collection.yaml | 9 ++++++- web/handler/user/get_episode_collection.go | 18 ++++++++----- 5 files changed, 55 insertions(+), 18 deletions(-) diff --git a/internal/collections/domain/collection/model.go b/internal/collections/domain/collection/model.go index ec1b0fb07..746c65215 100644 --- a/internal/collections/domain/collection/model.go +++ b/internal/collections/domain/collection/model.go @@ -46,8 +46,9 @@ type UserSubjectCollection struct { } type UserEpisodeCollection struct { - ID model.EpisodeID - Type EpisodeCollection + ID model.EpisodeID + Type EpisodeCollection + UpdatedAt int64 } type UserSubjectEpisodesCollection map[model.EpisodeID]UserEpisodeCollection diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 2d039cc44..e5058d2ce 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -843,7 +843,7 @@ func (r mysqlRepo) UpdateEpisodeCollection( return nil, err } - if updated := updateMysqlEpisodeCollection(e, episodeIDs, collectionType); !updated { + if updated := updateMysqlEpisodeCollection(e, episodeIDs, collectionType, at); !updated { return e.toModel(), nil } @@ -870,7 +870,7 @@ func (r mysqlRepo) createEpisodeCollection( at time.Time, ) (collection.UserSubjectEpisodesCollection, error) { var e = make(mysqlEpCollection, len(episodeIDs)) - updateMysqlEpisodeCollection(e, episodeIDs, collectionType) + updateMysqlEpisodeCollection(e, episodeIDs, collectionType, at) bytes, err := serializePhpEpStatus(e) if err != nil { @@ -897,6 +897,7 @@ func updateMysqlEpisodeCollection( e mysqlEpCollection, episodeIDs []model.EpisodeID, collectionType collection.EpisodeCollection, + now time.Time, ) bool { var updated bool @@ -911,16 +912,28 @@ func updateMysqlEpisodeCollection( delete(e, episodeID) updated = true } - } else { - for _, episodeID := range episodeIDs { - v, ok := e[episodeID] - if ok && v.Type == collectionType { + return updated + } + + for _, episodeID := range episodeIDs { + v, ok := e[episodeID] + if ok { + if v.Type == collectionType { continue } - e[episodeID] = mysqlEpCollectionItem{EpisodeID: episodeID, Type: collectionType} + v.Type = collectionType + v.UpdatedAt[collectionType] = now.Unix() updated = true + continue + } + + e[episodeID] = mysqlEpCollectionItem{ + EpisodeID: episodeID, + Type: collectionType, + UpdatedAt: map[collection.EpisodeCollection]int64{collectionType: now.Unix()}, } + updated = true } return updated diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index e20e41eb7..4cfbb7f0c 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -27,6 +27,8 @@ import ( type mysqlEpCollectionItem struct { EpisodeID model.EpisodeID `php:"eid,string" json:"eid,string"` Type collection.EpisodeCollection `php:"type" json:"type"` + // unix timestamp seconds + UpdatedAt map[collection.EpisodeCollection]int64 `php:"updated_at" json:"updated_at"` } type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem @@ -37,6 +39,13 @@ func deserializeEpStatus(serialized []byte) (mysqlEpCollection, error) { return nil, errgo.Wrap(err, "php deserialize") } + for _, v := range e { + // so we do not need to take care empty map later + if v.UpdatedAt == nil { + v.UpdatedAt = map[collection.EpisodeCollection]int64{} + } + } + return e, nil } @@ -49,8 +58,9 @@ func (c mysqlEpCollection) toModel() collection.UserSubjectEpisodesCollection { var d = make(collection.UserSubjectEpisodesCollection, len(c)) for key, value := range c { d[key] = collection.UserEpisodeCollection{ - ID: value.EpisodeID, - Type: value.Type, + ID: value.EpisodeID, + Type: value.Type, + UpdatedAt: value.UpdatedAt[value.Type], } } diff --git a/openapi/components/get-user-episodes-collection.yaml b/openapi/components/get-user-episodes-collection.yaml index df3e2afe4..cc8e580f2 100644 --- a/openapi/components/get-user-episodes-collection.yaml +++ b/openapi/components/get-user-episodes-collection.yaml @@ -1,10 +1,17 @@ -additionalProperties: false +additionalProperties: true properties: episode: $ref: "./episode.yaml" type: $ref: "./episode_collection_type.yaml" + updated_at: + type: integer + description: A int64 unix timestamp, `0` as unknown or un-recorded. + example: + - 0 + - 1700000000 required: - episode - type + - updated_at type: object diff --git a/web/handler/user/get_episode_collection.go b/web/handler/user/get_episode_collection.go index 2fc273b65..533039c3c 100644 --- a/web/handler/user/get_episode_collection.go +++ b/web/handler/user/get_episode_collection.go @@ -32,8 +32,9 @@ import ( ) type ResUserEpisodeCollection struct { - Episode res.Episode `json:"episode"` - Type collection.EpisodeCollection `json:"type"` + Episode res.Episode `json:"episode"` + Type collection.EpisodeCollection `json:"type"` + UpdatedAt int64 `json:"updated_at"` } func (h User) GetEpisodeCollection(c echo.Context) error { @@ -56,9 +57,12 @@ func (h User) GetEpisodeCollection(c echo.Context) error { return errgo.Wrap(err, "collectionRepo.GetSubjectEpisodesCollection") } + ee := m[episodeID] + return c.JSON(http.StatusOK, ResUserEpisodeCollection{ - Episode: res.ConvertModelEpisode(e), - Type: m[episodeID].Type, + Episode: res.ConvertModelEpisode(e), + Type: ee.Type, + UpdatedAt: ee.UpdatedAt, }) } @@ -107,9 +111,11 @@ func (h User) GetSubjectEpisodeCollection(c echo.Context) error { var data []ResUserEpisodeCollection for _, episode := range episodes { + e := ec[episode.ID] data = append(data, ResUserEpisodeCollection{ - Episode: res.ConvertModelEpisode(episode), - Type: ec[episode.ID].Type, + Episode: res.ConvertModelEpisode(episode), + Type: e.Type, + UpdatedAt: e.UpdatedAt, }) } From adb6fcb0365c62ed5d530d218b23f43eff61ac44 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 20:53:16 +0800 Subject: [PATCH 680/888] chore(deps): update pkg/vars/common digest to 706f2d8 (#850) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- pkg/vars/common | 2 +- pkg/vars/relations.go.json | 62 ++++++++++++++++++++++++++++++-------- 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/pkg/vars/common b/pkg/vars/common index 9568390b7..706f2d808 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 9568390b7bfd7bdf14c662fe8f28256654ed2983 +Subproject commit 706f2d80860590b868dd74b8b769c8b0e259219e diff --git a/pkg/vars/relations.go.json b/pkg/vars/relations.go.json index 4eed64bb5..5d3ed578a 100644 --- a/pkg/vars/relations.go.json +++ b/pkg/vars/relations.go.json @@ -52,19 +52,19 @@ "desc": "相同角色,没有关联的故事" }, "8": { - "en": "Same setting", + "en": "Same Setting", "cn": "相同世界观", "jp": "", "desc": "发生在同一个世界观/时间线下,不同的出演角色" }, "9": { - "en": "Alternative setting", + "en": "Alternative Setting", "cn": "不同世界观", "jp": "", "desc": "相同的主演角色,不同的世界观/时间线设定" }, "10": { - "en": "Alternative version", + "en": "Alternative Version", "cn": "不同演绎", "jp": "", "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" @@ -146,7 +146,7 @@ "desc": "" }, "1010": { - "en": "Alternative version", + "en": "Version", "cn": "不同版本", "jp": "", "desc": "" @@ -176,6 +176,12 @@ "desc": "出现了被关联作品中的角色", "skip_vice_versa": true }, + "1015": { + "en": "Alternative Version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式" + }, "1099": { "en": "Other", "cn": "其他", @@ -316,12 +322,24 @@ "desc": "" }, "4016": { + "en": "Version", + "cn": "不同版本", + "jp": "", + "desc": "相同故事、角色,画面、音乐或系统改进" + }, + "4017": { + "en": "Main Version", + "cn": "主版本", + "jp": "", + "desc": "游戏最初发售时的版本" + }, + "4018": { "en": "Collection", "cn": "合集", "jp": "", "desc": "收录本作品的合集条目" }, - "4017": { + "4019": { "en": "In Collection", "cn": "收录作品", "jp": "", @@ -388,7 +406,7 @@ "desc": "" }, "1010": { - "en": "Alternative version", + "en": "Version", "cn": "不同版本", "jp": "", "desc": "" @@ -418,6 +436,12 @@ "desc": "出现了被关联作品中的角色", "skip_vice_versa": true }, + "1015": { + "en": "Alternative Version", + "cn": "不同演绎", + "jp": "", + "desc": "相同设定、角色,不同的演绎方式" + }, "1099": { "en": "Other", "cn": "其他", @@ -470,19 +494,19 @@ "desc": "相同角色,没有关联的故事" }, "8": { - "en": "Same setting", + "en": "Same Setting", "cn": "相同世界观", "jp": "", "desc": "发生在同一个世界观/时间线下,不同的出演角色" }, "9": { - "en": "Alternative setting", + "en": "Alternative Setting", "cn": "不同世界观", "jp": "", "desc": "相同的主演角色,不同的世界观/时间线设定" }, "10": { - "en": "Alternative version", + "en": "Alternative Version", "cn": "不同演绎", "jp": "", "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" @@ -646,12 +670,24 @@ "desc": "" }, "4016": { + "en": "Version", + "cn": "不同版本", + "jp": "", + "desc": "相同故事、角色,画面、音乐或系统改进" + }, + "4017": { + "en": "Main Version", + "cn": "主版本", + "jp": "", + "desc": "游戏最初发售时的版本" + }, + "4018": { "en": "Collection", "cn": "合集", "jp": "", "desc": "收录本作品的合集条目" }, - "4017": { + "4019": { "en": "In Collection", "cn": "收录作品", "jp": "", @@ -709,19 +745,19 @@ "desc": "相同角色,没有关联的故事" }, "8": { - "en": "Same setting", + "en": "Same Setting", "cn": "相同世界观", "jp": "", "desc": "发生在同一个世界观/时间线下,不同的出演角色" }, "9": { - "en": "Alternative setting", + "en": "Alternative Setting", "cn": "不同世界观", "jp": "", "desc": "相同的主演角色,不同的世界观/时间线设定" }, "10": { - "en": "Alternative version", + "en": "Alternative Version", "cn": "不同演绎", "jp": "", "desc": "相同设定、角色,不同的演绎方式(如EVA原作与新剧场版)" From d085f8907ca0b9926704bc5e68f058cf39be2566 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 7 Jun 2025 22:03:46 +0800 Subject: [PATCH 681/888] fix: nil map assign panic (#851) --- internal/collections/infra/mysql_repo.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e5058d2ce..e5f4d8b35 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -893,6 +893,14 @@ func (r mysqlRepo) createEpisodeCollection( return e.toModel(), nil } +func assignMaybeNilMap[K comparable, V any](m map[K]V, key K, value V) map[K]V { + if m == nil { + return map[K]V{key: value} + } + m[key] = value + return m +} + func updateMysqlEpisodeCollection( e mysqlEpCollection, episodeIDs []model.EpisodeID, @@ -923,7 +931,7 @@ func updateMysqlEpisodeCollection( } v.Type = collectionType - v.UpdatedAt[collectionType] = now.Unix() + v.UpdatedAt = assignMaybeNilMap(v.UpdatedAt, collectionType, now.Unix()) updated = true continue } From 2607fc3f6cad1564e4a33d6f5f137da4a0224682 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 7 Jun 2025 22:14:43 +0800 Subject: [PATCH 682/888] refactor: move map utils to `gmap` package (#852) --- internal/collections/infra/mysql_repo.go | 11 ++--------- internal/collections/infra/mysql_repo_compat.go | 7 ------- internal/pkg/gmap/gmap.go | 10 ++++++++++ 3 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 internal/pkg/gmap/gmap.go diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index e5f4d8b35..1c4f16c4c 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -40,6 +40,7 @@ import ( "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/model" "github.com/bangumi/server/internal/pkg/dam" + "github.com/bangumi/server/internal/pkg/gmap" "github.com/bangumi/server/internal/pkg/gstr" "github.com/bangumi/server/internal/pkg/serialize" "github.com/bangumi/server/internal/subject" @@ -893,14 +894,6 @@ func (r mysqlRepo) createEpisodeCollection( return e.toModel(), nil } -func assignMaybeNilMap[K comparable, V any](m map[K]V, key K, value V) map[K]V { - if m == nil { - return map[K]V{key: value} - } - m[key] = value - return m -} - func updateMysqlEpisodeCollection( e mysqlEpCollection, episodeIDs []model.EpisodeID, @@ -931,7 +924,7 @@ func updateMysqlEpisodeCollection( } v.Type = collectionType - v.UpdatedAt = assignMaybeNilMap(v.UpdatedAt, collectionType, now.Unix()) + v.UpdatedAt = gmap.SafeAssign(v.UpdatedAt, collectionType, now.Unix()) updated = true continue } diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index 4cfbb7f0c..de3e68f1e 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -39,13 +39,6 @@ func deserializeEpStatus(serialized []byte) (mysqlEpCollection, error) { return nil, errgo.Wrap(err, "php deserialize") } - for _, v := range e { - // so we do not need to take care empty map later - if v.UpdatedAt == nil { - v.UpdatedAt = map[collection.EpisodeCollection]int64{} - } - } - return e, nil } diff --git a/internal/pkg/gmap/gmap.go b/internal/pkg/gmap/gmap.go new file mode 100644 index 000000000..a2917df3d --- /dev/null +++ b/internal/pkg/gmap/gmap.go @@ -0,0 +1,10 @@ +package gmap + +func SafeAssign[K comparable, V any](m map[K]V, key K, value V) map[K]V { + if m == nil { + return map[K]V{key: value} + } + + m[key] = value + return m +} From 7baceb5ed115d4f247955b4758ad256261a01711 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 00:21:19 +0800 Subject: [PATCH 683/888] build(deps): update dependency go to v1.24.4 (#853) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 750e04cae..1e897bb48 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.3 +go 1.24.4 tool github.com/vektra/mockery/v3 From 032a356a025fcf4802b4ee4c622d8d0b1df8c40c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 Jun 2025 14:31:22 +0800 Subject: [PATCH 684/888] chore(deps): update pkg/vars/common digest to 853a57f (#854) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- pkg/vars/common | 2 +- pkg/vars/relations.go.json | 24 ------------------------ 2 files changed, 1 insertion(+), 25 deletions(-) diff --git a/pkg/vars/common b/pkg/vars/common index 706f2d808..853a57f84 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 706f2d80860590b868dd74b8b769c8b0e259219e +Subproject commit 853a57f848b137ec92315c885a5a5e21d88151fe diff --git a/pkg/vars/relations.go.json b/pkg/vars/relations.go.json index 5d3ed578a..f17d469ad 100644 --- a/pkg/vars/relations.go.json +++ b/pkg/vars/relations.go.json @@ -290,24 +290,12 @@ "jp": "", "desc": "相同设定、角色,不同的演绎方式" }, - "4011": { - "en": "Version", - "cn": "不同版本", - "jp": "", - "desc": "相同故事、角色,画面、音乐或系统改进" - }, "4012": { "en": "Parent Story", "cn": "主线故事", "jp": "", "desc": "" }, - "4013": { - "en": "Main Version", - "cn": "主版本", - "jp": "", - "desc": "游戏最初发售时的版本" - }, "4014": { "en": "Collaboration", "cn": "联动", @@ -638,24 +626,12 @@ "jp": "", "desc": "相同设定、角色,不同的演绎方式" }, - "4011": { - "en": "Version", - "cn": "不同版本", - "jp": "", - "desc": "相同故事、角色,画面、音乐或系统改进" - }, "4012": { "en": "Parent Story", "cn": "主线故事", "jp": "", "desc": "" }, - "4013": { - "en": "Main Version", - "cn": "主版本", - "jp": "", - "desc": "游戏最初发售时的版本" - }, "4014": { "en": "Collaboration", "cn": "联动", From b8749186a48d35d0da7eddc3639fd2c04b312da6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 13 Jun 2025 23:34:11 +0800 Subject: [PATCH 685/888] ci: update common repo by ci --- .github/workflows/update-common.yaml | 33 ++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/update-common.yaml diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml new file mode 100644 index 000000000..993e0159c --- /dev/null +++ b/.github/workflows/update-common.yaml @@ -0,0 +1,33 @@ +name: Release(openapi) + +on: + repository_dispatch: + types: + - ci-update-common + +jobs: + openapi: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - run: git pull origin master + working-directory: ./pkg/vars/common + + - run: yarn install --frozen-lockfile + - run: yarn run build-common + - run: yarn run format + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.PAT }} + title: "feat: update common" + branch: "ci/update-common" + author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" diff --git a/package.json b/package.json index b8963f178..ced3ff6b3 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "format": "prettier -w --list-different ./", "test": "node openapi/test.js", - "common": "node scripts/build-common.mjs", + "build-common": "node scripts/build-common.mjs", "build": "node ./openapi/build.js" }, "prettier": { From 43c60d66ec2de910f4873b4b3e8035ac62db34d6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 13 Jun 2025 23:42:57 +0800 Subject: [PATCH 686/888] ci: fix --- .github/workflows/update-common.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index 993e0159c..b2e8e261f 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -1,12 +1,18 @@ -name: Release(openapi) +name: update common defs on: + push: + branches: + - master repository_dispatch: types: - ci-update-common +permissions: + contents: write + jobs: - openapi: + update: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -17,7 +23,7 @@ jobs: with: node-version: 22 - - run: git pull origin master + - run: git reset --hard origin/master working-directory: ./pkg/vars/common - run: yarn install --frozen-lockfile @@ -30,4 +36,5 @@ jobs: token: ${{ secrets.PAT }} title: "feat: update common" branch: "ci/update-common" + push-to-fork: "trim21-bot/bangumi-server" author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" From edd75802f4fb713213aa30f2e3854e3c019737b9 Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Fri, 13 Jun 2025 23:49:20 +0800 Subject: [PATCH 687/888] feat: update common (#855) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/workflows/update-common.yaml | 80 ++++++++++++++-------------- pkg/vars/common | 2 +- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index b2e8e261f..b14a4bf55 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -1,40 +1,40 @@ -name: update common defs - -on: - push: - branches: - - master - repository_dispatch: - types: - - ci-update-common - -permissions: - contents: write - -jobs: - update: - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - - uses: actions/setup-node@v4 - with: - node-version: 22 - - - run: git reset --hard origin/master - working-directory: ./pkg/vars/common - - - run: yarn install --frozen-lockfile - - run: yarn run build-common - - run: yarn run format - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.PAT }} - title: "feat: update common" - branch: "ci/update-common" - push-to-fork: "trim21-bot/bangumi-server" - author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" +name: update common defs + +on: + push: + branches: + - master + repository_dispatch: + types: + - ci-update-common + +permissions: + contents: write + +jobs: + update: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - run: git reset --hard origin/master + working-directory: ./pkg/vars/common + + - run: yarn install --frozen-lockfile + - run: yarn run build-common + - run: yarn run format + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.PAT }} + title: "feat: update common" + branch: "ci/update-common" + push-to-fork: "trim21-bot/bangumi-server" + author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" diff --git a/pkg/vars/common b/pkg/vars/common index 853a57f84..510d5fbf0 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 853a57f848b137ec92315c885a5a5e21d88151fe +Subproject commit 510d5fbf0cc49eb843e2d6583c00345a75a083e1 From 44baf9a7582e1809796b96372534873a35671906 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 21 Jun 2025 10:10:51 +0800 Subject: [PATCH 688/888] fix: workaround online breaking db schema change (#857) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- cmd/gen/gorm/main.go | 1 + dal/dao/chii_crt_subject_index.gen.go | 3 +-- dal/query/chii_crt_subject_index.gen.go | 6 +----- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 3f95e534b..a20963fe0 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -417,6 +417,7 @@ func main() { g.ApplyBasic( g.GenerateModelAs("chii_crt_subject_index", "CharacterSubjects", + gen.FieldIgnore("ctr_appear_eps"), gen.FieldRename("crt_id", "CharacterID"), gen.FieldType("crt_id", characterIDTypeString), gen.FieldType("subject_id", subjectIDTypeString), diff --git a/dal/dao/chii_crt_subject_index.gen.go b/dal/dao/chii_crt_subject_index.gen.go index 960048ca9..7663e4317 100644 --- a/dal/dao/chii_crt_subject_index.gen.go +++ b/dal/dao/chii_crt_subject_index.gen.go @@ -11,8 +11,7 @@ type CharacterSubjects struct { CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null" json:""` - CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 - CtrAppearEps string `gorm:"column:ctr_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节" json:""` // 可选,角色出场的的章节 + CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 CrtOrder uint16 `gorm:"column:crt_order;type:smallint(6) unsigned;not null" json:""` Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index 3844f6371..6b4698335 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -31,7 +31,6 @@ func newCharacterSubjects(db *gorm.DB, opts ...gen.DOOption) characterSubjects { _characterSubjects.SubjectID = field.NewUint32(tableName, "subject_id") _characterSubjects.SubjectTypeID = field.NewUint8(tableName, "subject_type_id") _characterSubjects.CrtType = field.NewUint8(tableName, "crt_type") - _characterSubjects.CtrAppearEps = field.NewString(tableName, "ctr_appear_eps") _characterSubjects.CrtOrder = field.NewUint16(tableName, "crt_order") _characterSubjects.Character = characterSubjectsHasOneCharacter{ db: db.Session(&gorm.Session{}), @@ -67,8 +66,7 @@ type characterSubjects struct { CharacterID field.Uint32 SubjectID field.Uint32 SubjectTypeID field.Uint8 - CrtType field.Uint8 // 主角,配角 - CtrAppearEps field.String // 可选,角色出场的的章节 + CrtType field.Uint8 // 主角,配角 CrtOrder field.Uint16 Character characterSubjectsHasOneCharacter @@ -93,7 +91,6 @@ func (c *characterSubjects) updateTableName(table string) *characterSubjects { c.SubjectID = field.NewUint32(table, "subject_id") c.SubjectTypeID = field.NewUint8(table, "subject_type_id") c.CrtType = field.NewUint8(table, "crt_type") - c.CtrAppearEps = field.NewString(table, "ctr_appear_eps") c.CrtOrder = field.NewUint16(table, "crt_order") c.fillFieldMap() @@ -128,7 +125,6 @@ func (c *characterSubjects) fillFieldMap() { c.fieldMap["subject_id"] = c.SubjectID c.fieldMap["subject_type_id"] = c.SubjectTypeID c.fieldMap["crt_type"] = c.CrtType - c.fieldMap["ctr_appear_eps"] = c.CtrAppearEps c.fieldMap["crt_order"] = c.CrtOrder } From 932895f5ef055f05059f5d808c8c069a4a3d5713 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:35:12 +0800 Subject: [PATCH 689/888] build(deps): lock file maintenance npm (#858) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ced3ff6b3..9273ebab6 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.5.3" + "prettier": "^3.6.0" }, "nodemonConfig": { "restartable": "rs", diff --git a/yarn.lock b/yarn.lock index e5f03d812..dde0f40da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -169,10 +169,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -prettier@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" - integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== +prettier@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.0.tgz#18ec98d62cb0757a5d4eab40253ff3e6d0fc8dea" + integrity sha512-ujSB9uXHJKzM/2GBuE0hBOUgC77CN3Bnpqa+g80bkv3T3A93wL/xlzDATHhnhkzifz/UE2SNOvmbTz5hSkDlHw== reftools@^1.1.9: version "1.1.9" From 0bd4a453a19edf5966ef3cd81257a9e967969cd0 Mon Sep 17 00:00:00 2001 From: Whalko <45971730+RtYkk@users.noreply.github.com> Date: Tue, 1 Jul 2025 18:20:37 +0800 Subject: [PATCH 690/888] docs: fix typo (#860) --- openapi/v0.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index fa46508dd..cbe6ea4d7 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -26,7 +26,7 @@ paths: 目前支持的筛选条件包括: - `type`: 条目类型,参照 `SubjectType` enum, `或`。 - `tag`: 标签,可以多次出现。`且` 关系。 - - `airdate`: 播出日期/发售日期。`且` 关系。 + - `air_date`: 播出日期/发售日期。`且` 关系。 - `rating`: 用于搜索指定评分的条目。`且` 关系。 - `rank`: 用于搜索指定排名的条目。`且` 关系。 - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。 From e458b8a4d62a167de35152324ea3cd5d47e3601a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 18:24:18 +0800 Subject: [PATCH 691/888] build(deps): update module github.com/go-viper/mapstructure/v2 to v2.3.0 [security] (#861) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1e897bb48..2eb22fd5e 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.9 // indirect - github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/go-viper/mapstructure/v2 v2.3.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect diff --git a/go.sum b/go.sum index e5b4f901f..6e929440e 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,8 @@ github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= -github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= -github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= +github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= From 4cbec50d897fedcc52a380cd81b3b4b99f1f08b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:51:02 +0800 Subject: [PATCH 692/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to v14 (#873) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 9273ebab6..c9002d945 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^12.0.2", + "@apidevtools/json-schema-ref-parser": "^14.0.3", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.8.0" diff --git a/yarn.lock b/yarn.lock index dde0f40da..69082713d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,11 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^12.0.2": - version "12.0.2" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-12.0.2.tgz#f63c888827f62de2435e47a9c6af3a0f028084e8" - integrity sha512-SoZWqQz4YMKdw4kEMfG5w6QAy+rntjsoAT1FtvZAnVEnCR4uy9YSuDBNoVAFHgzSz0dJbISLLCSrGR2Zd7bcvA== +"@apidevtools/json-schema-ref-parser@^14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.0.3.tgz#e4383570195da08581ef0e1a3e68e2897f2169b1" + integrity sha512-XtI3vr6mq5ySDV7j+/ya7m9UDkRYN91NeSM5CBjGE8EZHXTuu5duHMm5emG+X8tmjRCYpEkWpHfxHpVR91owVg== dependencies: - "@jsdevtools/ono" "^7.1.3" "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" @@ -16,11 +15,6 @@ resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== -"@jsdevtools/ono@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" - integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== - "@types/json-schema@^7.0.15": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" From 5df327c76910f396a512016f9615c69516c4ea13 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:51:14 +0800 Subject: [PATCH 693/888] build(deps): update module gorm.io/driver/mysql to v1.6.0 (#871) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 2eb22fd5e..344613a01 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/sync v0.14.0 golang.org/x/text v0.25.0 - gorm.io/driver/mysql v1.5.7 + gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.0 gorm.io/plugin/dbresolver v1.6.0 diff --git a/go.sum b/go.sum index 6e929440e..7efbb6451 100644 --- a/go.sum +++ b/go.sum @@ -71,7 +71,6 @@ github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= @@ -348,8 +347,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.2.5 h1:9UogU3jkydFVW1bIVVeoYsTpLRgwDVW3rHfJG6/Ek9I= gorm.io/datatypes v1.2.5/go.mod h1:I5FUdlKpLb5PMqeMQhm30CQ6jXP8Rj89xkTeCSAaAD4= -gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo= -gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= +gorm.io/driver/mysql v1.6.0 h1:eNbLmNTpPpTOVZi8MMxCi2aaIm0ZpInbORNXDwyLGvg= +gorm.io/driver/mysql v1.6.0/go.mod h1:D/oCC2GWK3M/dqoLxnOlaNKmXz8WNTfcS9y5ovaSqKo= gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= @@ -363,7 +362,6 @@ gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= From ed25e9711260cc63595e1ac1775d77e4d3fc175e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:51:34 +0800 Subject: [PATCH 694/888] build(deps): update gcr.io/distroless/static docker digest to b7b9a69 (#862) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index e8c00fedd..9804a3fc3 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:d9f9472a8f4541368192d714a995eb1a99bab1f7071fc8bde261d7eda3b667d8 +FROM gcr.io/distroless/static@sha256:b7b9a6953e7bed6baaf37329331051d7bdc1b99c885f6dbeb72d75b1baad54f9 ENTRYPOINT ["/app/chii.exe"] From 650547d50d39ee73a537413d392f0ee80beda69e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:55:17 +0800 Subject: [PATCH 695/888] build(deps): update module golang.org/x/text to v0.26.0 (#870) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 344613a01..0fe933882 100644 --- a/go.mod +++ b/go.mod @@ -37,8 +37,8 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.14.0 - golang.org/x/text v0.25.0 + golang.org/x/sync v0.15.0 + golang.org/x/text v0.26.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.0 @@ -115,7 +115,7 @@ require ( golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.38.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.24.0 // indirect + golang.org/x/mod v0.25.0 // indirect golang.org/x/net v0.40.0 // indirect golang.org/x/sys v0.33.0 // indirect golang.org/x/term v0.32.0 // indirect diff --git a/go.sum b/go.sum index 7efbb6451..25af2dd94 100644 --- a/go.sum +++ b/go.sum @@ -284,8 +284,8 @@ golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5Z golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -297,8 +297,8 @@ golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -326,8 +326,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 9d0322174e22073544bbbcca705190030b134390 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 12:04:51 +0800 Subject: [PATCH 696/888] build(deps): update module github.com/redis/rueidis to v1.0.62 (#865) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0fe933882..2a3960ec0 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 - github.com/redis/rueidis v1.0.60 + github.com/redis/rueidis v1.0.62 github.com/samber/lo v1.50.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 25af2dd94..868734dea 100644 --- a/go.sum +++ b/go.sum @@ -200,8 +200,8 @@ github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.60 h1:MGZX8uNdw7iyWz22JhjA/9iXzddfCUE/EMK4VxKoKpA= -github.com/redis/rueidis v1.0.60/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.62 h1:9yNCxsYtg9eMEzHhDq9tlRnDBFJyWTWn6YLQ5EWDE5I= +github.com/redis/rueidis v1.0.62/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 2ed2b72ca8cb5ab2d5d0714cfbefa84158c1d9f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 12:05:04 +0800 Subject: [PATCH 697/888] build(deps): update aws-sdk-go-v2 monorepo (#863) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 2a3960ec0..05319546f 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.36.3 - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 - github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0 + github.com/aws/aws-sdk-go-v2 v1.36.5 + github.com/aws/aws-sdk-go-v2/credentials v1.17.70 + github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.13.3 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect - github.com/aws/smithy-go v1.22.3 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect + github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.2.4 // indirect diff --git a/go.sum b/go.sum index 868734dea..7aa5d4c57 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= -github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcuz+RjeziUtNJackkM= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 h1:BCG7DCXEXpNCcpwCxg1oi9pkJWH2+eZzTn9MY56MbVw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0 h1:fV4XIU5sn/x8gjRouoJpDVHj+ExJaUk4prYF+eb6qTs= -github.com/aws/aws-sdk-go-v2/service/s3 v1.80.0/go.mod h1:qbn305Je/IofWBJ4bJz/Q7pDEtnnoInw/dGt71v6rHE= -github.com/aws/smithy-go v1.22.3 h1:Z//5NuZCSW6R4PhQ93hShNbyBbn8BWCmCVCt+Q8Io5k= -github.com/aws/smithy-go v1.22.3/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2 v1.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBILFj0= +github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= +github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4/go.mod h1:LT10DsiGjLWh4GbjInf9LQejkYEhBgBCjLG5+lvk4EE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM9na4cvXax9dyLitn8EYBRl8Ak4XtG4= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U= +github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 h1:5Y75q0RPQoAbieyOuGLhjV9P3txvYgXv2lg0UwJOfmE= +github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU= +github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= +github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From c2437d85d35d686318abe0a5492be3f4ebbd57f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 15:04:26 +0800 Subject: [PATCH 698/888] build(deps): update module github.com/go-sql-driver/mysql to v1.9.3 (#864) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 05319546f..cb2393434 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.26.0 github.com/go-resty/resty/v2 v2.16.5 - github.com/go-sql-driver/mysql v1.9.2 + github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.0 diff --git a/go.sum b/go.sum index 7aa5d4c57..829f89361 100644 --- a/go.sum +++ b/go.sum @@ -72,8 +72,8 @@ github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAu github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU= -github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= +github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= From c9ae5658829b5fc5c593b1e4fe3394a0b5809963 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 15:05:01 +0800 Subject: [PATCH 699/888] build(deps): update module github.com/go-playground/validator/v10 to v10.27.0 (#866) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cb2393434..95c453f9c 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.26.0 + github.com/go-playground/validator/v10 v10.27.0 github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 829f89361..3e069dc33 100644 --- a/go.sum +++ b/go.sum @@ -67,8 +67,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k= -github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= +github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4= +github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= From 6cbff6f041b0fb812d89e87c09b3c375e3864cea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 15:05:12 +0800 Subject: [PATCH 700/888] build(deps): update module github.com/samber/lo to v1.51.0 (#867) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 95c453f9c..a254ebf84 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.22.0 github.com/redis/rueidis v1.0.62 - github.com/samber/lo v1.50.0 + github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 diff --git a/go.sum b/go.sum index 3e069dc33..a3f5e5bc7 100644 --- a/go.sum +++ b/go.sum @@ -211,8 +211,8 @@ github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.50.0 h1:XrG0xOeHs+4FQ8gJR97zDz5uOFMW7OwFWiFVzqopKgY= -github.com/samber/lo v1.50.0/go.mod h1:RjZyNk6WSnUFRKK6EyOhsRJMqft3G+pg7dCWHQCWvsc= +github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= +github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= From 111171b93faa4ab3421d9bc269077999813b8843 Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Sat, 5 Jul 2025 18:01:27 +0800 Subject: [PATCH 701/888] feat: update common (#874) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- pkg/vars/platform.go.json | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/vars/common b/pkg/vars/common index 510d5fbf0..85904677a 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 510d5fbf0cc49eb843e2d6583c00345a75a083e1 +Subproject commit 85904677af13a7b70789c5892369ae49e8ae6f47 diff --git a/pkg/vars/platform.go.json b/pkg/vars/platform.go.json index d347aba0c..82d273bcc 100644 --- a/pkg/vars/platform.go.json +++ b/pkg/vars/platform.go.json @@ -71,7 +71,7 @@ "alias": "misc", "wiki_tpl": "Anime", "order": 5, - "sort_keys": ["上映年度"] + "sort_keys": ["放送开始", "发售日", "发售日期", "上映年度", "上映日"] }, "1": { "id": 1, @@ -81,7 +81,7 @@ "enable_header": true, "wiki_tpl": "TVAnime", "order": 0, - "sort_keys": ["放送开始"] + "sort_keys": ["放送开始", "发售日", "发售日期", "上映年度", "上映日"] }, "2": { "id": 2, @@ -91,7 +91,7 @@ "enable_header": true, "wiki_tpl": "OVA", "order": 2, - "sort_keys": ["发售日", "发售日期"] + "sort_keys": ["放送开始", "发售日", "发售日期", "上映年度", "上映日"] }, "3": { "id": 3, @@ -101,7 +101,7 @@ "enable_header": true, "wiki_tpl": "Movie", "order": 3, - "sort_keys": ["上映年度", "上映日"] + "sort_keys": ["放送开始", "发售日", "发售日期", "上映年度", "上映日"] }, "5": { "id": 5, @@ -111,7 +111,7 @@ "enable_header": true, "wiki_tpl": "TVAnime", "order": 1, - "sort_keys": ["放送开始"] + "sort_keys": ["放送开始", "发售日", "发售日期", "上映年度", "上映日"] }, "2006": { "id": 2006, From 3ef2cf0d557d71fa2e9957cf703aec6c7607f340 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:18:37 +0800 Subject: [PATCH 702/888] build(deps): update module github.com/vektra/mockery/v3 to v3.5.0 (#868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index a254ebf84..d79918da2 100644 --- a/go.mod +++ b/go.mod @@ -78,13 +78,13 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect - github.com/knadh/koanf/maps v0.1.1 // indirect + github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/parsers/yaml v0.1.0 // indirect github.com/knadh/koanf/providers/env v1.0.0 // indirect github.com/knadh/koanf/providers/file v1.1.2 // indirect github.com/knadh/koanf/providers/posflag v0.1.0 // indirect github.com/knadh/koanf/providers/structs v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.1.2 // indirect + github.com/knadh/koanf/v2 v2.2.1 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mailru/easyjson v0.9.0 // indirect @@ -105,7 +105,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.3.3 // indirect + github.com/vektra/mockery/v3 v3.5.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index a3f5e5bc7..0fc7114e2 100644 --- a/go.sum +++ b/go.sum @@ -124,8 +124,8 @@ github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYW github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= -github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs= -github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= +github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= +github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w= github.com/knadh/koanf/parsers/yaml v0.1.0/go.mod h1:cvbUDC7AL23pImuQP0oRw/hPuccrNBS2bps8asS0CwY= github.com/knadh/koanf/providers/env v1.0.0 h1:ufePaI9BnWH+ajuxGGiJ8pdTG0uLEUWC7/HDDPGLah0= @@ -136,8 +136,8 @@ github.com/knadh/koanf/providers/posflag v0.1.0 h1:mKJlLrKPcAP7Ootf4pBZWJ6J+4wHY github.com/knadh/koanf/providers/posflag v0.1.0/go.mod h1:SYg03v/t8ISBNrMBRMlojH8OsKowbkXV7giIbBVgbz0= github.com/knadh/koanf/providers/structs v0.1.0 h1:wJRteCNn1qvLtE5h8KQBvLJovidSdntfdyIbbCzEyE0= github.com/knadh/koanf/providers/structs v0.1.0/go.mod h1:sw2YZ3txUcqA3Z27gPlmmBzWn1h8Nt9O6EP/91MkcWE= -github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ= -github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo= +github.com/knadh/koanf/v2 v2.2.1 h1:jaleChtw85y3UdBnI0wCqcg1sj1gPoz6D3caGNHtrNE= +github.com/knadh/koanf/v2 v2.2.1/go.mod h1:PSFru3ufQgTsI7IF+95rf9s8XA1+aHxKuO/W+dPoHEY= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -244,8 +244,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.3.3 h1:JlT9COXGqEuPG0jeeBozie4T/OAACpVKVVfxqCJ2XkA= -github.com/vektra/mockery/v3 v3.3.3/go.mod h1:RQvsmgBhN039Gl5O2IgVg04+kCh1CO07Vi/OhkJfgl0= +github.com/vektra/mockery/v3 v3.5.0 h1:BatbjYJLL6P/h0Jkb/+6REJaqaqp8eTbFE8uwQtt11E= +github.com/vektra/mockery/v3 v3.5.0/go.mod h1:nHEhwwFt+3/CD3XdeklPWnRpDL96KNZgRiGuMPZNjN8= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= From 1145b5152ed5f7558bbeb5cc04605227cf04697a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Jul 2025 20:20:17 +0800 Subject: [PATCH 703/888] build(deps): lock file maintenance npm (#875) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c9002d945..b5448f503 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.0.3", + "@apidevtools/json-schema-ref-parser": "^14.1.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.8.0" @@ -21,7 +21,7 @@ "devDependencies": { "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.6.0" + "prettier": "^3.6.2" }, "nodemonConfig": { "restartable": "rs", diff --git a/yarn.lock b/yarn.lock index 69082713d..afd7019bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^14.0.3": - version "14.0.3" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.0.3.tgz#e4383570195da08581ef0e1a3e68e2897f2169b1" - integrity sha512-XtI3vr6mq5ySDV7j+/ya7m9UDkRYN91NeSM5CBjGE8EZHXTuu5duHMm5emG+X8tmjRCYpEkWpHfxHpVR91owVg== +"@apidevtools/json-schema-ref-parser@^14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.0.tgz#15b4abeccd47c244d6a6975f5457547b9636356b" + integrity sha512-WFWymchOWHvk7wHLg0poBrpzbMyLBlc07XWKHsscAGYTT2r1KTslk5fA2ziFxmSc5q/JsREEPLCzkD2SI/nwfg== dependencies: "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" @@ -163,10 +163,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -prettier@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.0.tgz#18ec98d62cb0757a5d4eab40253ff3e6d0fc8dea" - integrity sha512-ujSB9uXHJKzM/2GBuE0hBOUgC77CN3Bnpqa+g80bkv3T3A93wL/xlzDATHhnhkzifz/UE2SNOvmbTz5hSkDlHw== +prettier@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== reftools@^1.1.9: version "1.1.9" From 3a7c87af473765f81222997c5bda54c9e00aec35 Mon Sep 17 00:00:00 2001 From: StageGuard Date: Sat, 26 Jul 2025 00:35:52 +0800 Subject: [PATCH 704/888] feat: limit rate with user id for logged-in user (#877) --- internal/pkg/test/web.go | 3 +++ web/mw/rate-limit.go | 15 +++++++++++++-- web/new.go | 6 +----- web/routes.go | 3 +++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index c25e56579..6d13c87ec 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -37,6 +37,7 @@ import ( "github.com/bangumi/server/internal/person" "github.com/bangumi/server/internal/pkg/cache" "github.com/bangumi/server/internal/pkg/dam" + "github.com/bangumi/server/internal/pkg/driver" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/internal/revision" "github.com/bangumi/server/internal/search" @@ -107,6 +108,8 @@ func GetWebApp(tb testing.TB, m Mock) *echo.Echo { fx.Provide(func() collections.Repo { return m.CollectionRepo }), fx.Provide(func() search.Handler { return search.NoopClient{} }), + fx.Provide(driver.NewRueidisClient), + fx.Invoke(web.AddRouters), fx.Populate(&e), diff --git a/web/mw/rate-limit.go b/web/mw/rate-limit.go index f733bfa62..26ee86fa6 100644 --- a/web/mw/rate-limit.go +++ b/web/mw/rate-limit.go @@ -20,6 +20,7 @@ import ( "errors" "fmt" "net/http" + "strconv" "time" "github.com/labstack/echo/v4" @@ -28,6 +29,7 @@ import ( "github.com/bangumi/server/config" "github.com/bangumi/server/internal/pkg/logger" + "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/res" ) @@ -46,9 +48,18 @@ func RateLimit(cfg config.AppConfig, r rueidis.Client) echo.MiddlewareFunc { return func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { ip := c.RealIP() + u := accessor.GetFromCtx(c) - var longBanKey = "chii:rate-limit:long:3:" + ip - var rateLimitKey = "chii:rate-limit:rate:3:" + ip + var longBanKey string + var rateLimitKey string + + if u.Login { + longBanKey = "chii:rate-limit:long:3:u:" + strconv.FormatUint(uint64(u.ID), 10) + rateLimitKey = "chii:rate-limit:rate:3:u:" + strconv.FormatUint(uint64(u.ID), 10) + } else { + longBanKey = "chii:rate-limit:long:3:ip:" + ip + rateLimitKey = "chii:rate-limit:rate:3:ip:" + ip + } banned, err := script.Exec(c.Request().Context(), r, []string{longBanKey, rateLimitKey}, args).ToInt64() if err != nil { diff --git a/web/new.go b/web/new.go index 85cc3c86d..765ba8b24 100644 --- a/web/new.go +++ b/web/new.go @@ -28,7 +28,6 @@ import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/prometheus/client_golang/prometheus/promhttp" - "github.com/redis/rueidis" "github.com/trim21/errgo" "github.com/bangumi/server/config" @@ -37,7 +36,6 @@ import ( "github.com/bangumi/server/internal/pkg/gtime" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/openapi" - "github.com/bangumi/server/web/mw" "github.com/bangumi/server/web/mw/recovery" "github.com/bangumi/server/web/req/cf" ) @@ -46,7 +44,7 @@ const headerProcessTime = "x-process-time-ms" const headerServerVersion = "x-server-version" //nolint:funlen -func New(r rueidis.Client, cfg config.AppConfig) *echo.Echo { +func New() *echo.Echo { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() app.HideBanner = true @@ -78,8 +76,6 @@ func New(r rueidis.Client, cfg config.AppConfig) *echo.Echo { app.Use(recovery.New()) - app.Use(mw.RateLimit(cfg, r)) - app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { metrics.RequestCount.Inc() diff --git a/web/routes.go b/web/routes.go index 94c2342d7..f1af85e29 100644 --- a/web/routes.go +++ b/web/routes.go @@ -16,6 +16,7 @@ package web import ( "github.com/labstack/echo/v4" + "github.com/redis/rueidis" "github.com/bangumi/server/web/handler" "github.com/bangumi/server/web/handler/character" @@ -35,6 +36,7 @@ import ( func AddRouters( app *echo.Echo, common common.Common, + rueidis rueidis.Client, h handler.Handler, userHandler user.User, personHandler person.Person, @@ -48,6 +50,7 @@ func AddRouters( app.Use(ua.DisableBrokenUA) v0 := app.Group("/v0", common.MiddlewareAccessTokenAuth) + v0.Use(mw.RateLimit(common.Config, rueidis)) v0.POST("/search/subjects", h.SearchSubjects) v0.POST("/search/characters", h.SearchCharacters) From 57eaea0d2ceebde7393dff937892742d2a468ac0 Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Sat, 26 Jul 2025 00:36:12 +0800 Subject: [PATCH 705/888] feat: update common (#876) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vars/common b/pkg/vars/common index 85904677a..211f65e26 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 85904677af13a7b70789c5892369ae49e8ae6f47 +Subproject commit 211f65e2652f4fadf93ea123e025d2a57aaab127 From fb44e70f9fac931fc29964cab9c5b5aec41433b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Jul 2025 00:40:16 +0800 Subject: [PATCH 706/888] build(deps): lock file maintenance npm (#878) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b5448f503..086c54522 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.1.0", + "@apidevtools/json-schema-ref-parser": "^14.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.8.0" diff --git a/yarn.lock b/yarn.lock index afd7019bd..9ef4cd20f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^14.1.0": - version "14.1.0" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.0.tgz#15b4abeccd47c244d6a6975f5457547b9636356b" - integrity sha512-WFWymchOWHvk7wHLg0poBrpzbMyLBlc07XWKHsscAGYTT2r1KTslk5fA2ziFxmSc5q/JsREEPLCzkD2SI/nwfg== +"@apidevtools/json-schema-ref-parser@^14.1.1": + version "14.1.1" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.1.tgz#0bae59809b7848c7a89dc6bb2f3bb980b7c290b1" + integrity sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg== dependencies: "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" From 9999dc4e863ca97862d964a142ebf54956153574 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 2 Aug 2025 18:18:53 +0800 Subject: [PATCH 707/888] fix: banned user should not be allowed to add new subject collection (#879) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .golangci.yaml | 4 +- domain/gerr/error.go | 2 + internal/auth/domain.go | 48 ++++++++++++++++++-- internal/auth/mysql_repository.go | 17 +++++-- internal/auth/service.go | 4 +- internal/auth/service_test.go | 3 +- web/handler/user/patch_subject_collection.go | 6 +++ web/handler/user/post_subject_collection.go | 13 +++++- 8 files changed, 82 insertions(+), 15 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index 04fec7545..dc9266109 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -30,10 +30,10 @@ linters: - gocheckcompilerdirectives - gochecknoglobals - gochecknoinits - - gocognit + # - gocognit - goconst - gocritic - - gocyclo + # - gocyclo - godot - gomoddirectives - gomodguard diff --git a/domain/gerr/error.go b/domain/gerr/error.go index a53ece344..a0c49a6e7 100644 --- a/domain/gerr/error.go +++ b/domain/gerr/error.go @@ -36,6 +36,8 @@ var ErrInvisibleChar = errors.New("input contains invisible chars") var ErrExists = errors.New("item already exists") +var ErrBanned = errors.New("you are not allowed to do this") + var ErrInvalidData = errors.New("invalid data") func WrapGormError(err error) error { diff --git a/internal/auth/domain.go b/internal/auth/domain.go index 28f0c4860..228e84b04 100644 --- a/internal/auth/domain.go +++ b/internal/auth/domain.go @@ -35,9 +35,10 @@ type Service interface { } type UserInfo struct { - RegTime time.Time - ID model.UserID - GroupID user.GroupID + RegTime time.Time + ID model.UserID + GroupID user.GroupID + Permission Permission } // Auth is the basic authorization represent a user. @@ -46,7 +47,7 @@ type Auth struct { RegTime time.Time ID model.UserID // user id GroupID user.GroupID - Permission Permission `json:"-"` // disable cache for this field. + Permission Permission } const nsfwThreshold = gtime.OneDay * 60 @@ -108,3 +109,42 @@ type Permission struct { ManageApp bool AppErase bool } + +func (p Permission) Merge(other Permission) Permission { + return Permission{ + UserBan: p.UserBan || other.UserBan, + BanPost: p.BanPost || other.BanPost, + + UserList: p.UserList && other.UserList, + ManageUserGroup: p.ManageUserGroup && other.ManageUserGroup, + ManageUserPhoto: p.ManageUserPhoto && other.ManageUserPhoto, + ManageTopicState: p.ManageTopicState && other.ManageTopicState, + ManageReport: p.ManageReport && other.ManageReport, + ManageUser: p.ManageUser && other.ManageUser, + UserGroup: p.UserGroup && other.UserGroup, + UserWikiApply: p.UserWikiApply && other.UserWikiApply, + UserWikiApprove: p.UserWikiApprove && other.UserWikiApprove, + DoujinSubjectErase: p.DoujinSubjectErase && other.DoujinSubjectErase, + DoujinSubjectLock: p.DoujinSubjectLock && other.DoujinSubjectLock, + SubjectEdit: p.SubjectEdit && other.SubjectEdit, + SubjectLock: p.SubjectLock && other.SubjectLock, + SubjectRefresh: p.SubjectRefresh && other.SubjectRefresh, + SubjectRelated: p.SubjectRelated && other.SubjectRelated, + SubjectMerge: p.SubjectMerge && other.SubjectMerge, + SubjectErase: p.SubjectErase && other.SubjectErase, + SubjectCoverLock: p.SubjectCoverLock && other.SubjectCoverLock, + SubjectCoverErase: p.SubjectCoverErase && other.SubjectCoverErase, + MonoEdit: p.MonoEdit && other.MonoEdit, + MonoLock: p.MonoLock && other.MonoLock, + MonoMerge: p.MonoMerge && other.MonoMerge, + MonoErase: p.MonoErase && other.MonoErase, + EpEdit: p.EpEdit && other.EpEdit, + EpMove: p.EpMove && other.EpMove, + EpMerge: p.EpMerge && other.EpMerge, + EpLock: p.EpLock && other.EpLock, + EpErase: p.EpErase && other.EpErase, + Report: p.Report && other.Report, + ManageApp: p.ManageApp && other.ManageApp, + AppErase: p.AppErase && other.AppErase, + } +} diff --git a/internal/auth/mysql_repository.go b/internal/auth/mysql_repository.go index 1a32a591b..9e5ede854 100644 --- a/internal/auth/mysql_repository.go +++ b/internal/auth/mysql_repository.go @@ -69,10 +69,11 @@ func (m mysqlRepo) GetByToken(ctx context.Context, token string) (UserInfo, erro var u struct { Regdate int64 GroupID user.GroupID + ACL string } - err = m.db.QueryRowContext(ctx, `select regdate, groupid from chii_members where uid = ? limit 1`, id). - Scan(&u.Regdate, &u.GroupID) + err = m.db.QueryRowContext(ctx, `select regdate, groupid, acl from chii_members where uid = ? limit 1`, id). + Scan(&u.Regdate, &u.GroupID, &u.ACL) if err != nil { if errors.Is(err, sql.ErrNoRows) { return UserInfo{}, gerr.ErrNotFound @@ -81,10 +82,16 @@ func (m mysqlRepo) GetByToken(ctx context.Context, token string) (UserInfo, erro return UserInfo{}, errgo.Wrap(err, "gorm") } + perm, err := parseSerializedPermission([]byte(u.ACL)) + if err != nil { + return UserInfo{}, errgo.Wrap(err, "parsing permission") + } + return UserInfo{ - RegTime: time.Unix(u.Regdate, 0), - ID: id, - GroupID: u.GroupID, + RegTime: time.Unix(u.Regdate, 0), + ID: id, + GroupID: u.GroupID, + Permission: perm, }, nil } diff --git a/internal/auth/service.go b/internal/auth/service.go index 7a1929694..2382ef25a 100644 --- a/internal/auth/service.go +++ b/internal/auth/service.go @@ -62,7 +62,7 @@ func (s service) GetByToken(ctx context.Context, token string) (Auth, error) { return Auth{}, errgo.Wrap(err, "AuthRepo.GetByID") } - _ = s.cache.Set(ctx, cacheKey, a, time.Hour) + _ = s.cache.Set(ctx, cacheKey, a, time.Minute*10) } permission, err := s.getPermission(ctx, a.GroupID) @@ -75,7 +75,7 @@ func (s service) GetByToken(ctx context.Context, token string) (Auth, error) { RegTime: a.RegTime, ID: a.ID, GroupID: a.GroupID, - Permission: permission, + Permission: permission.Merge(a.Permission), }, nil } diff --git a/internal/auth/service_test.go b/internal/auth/service_test.go index fdd69e47e..43fb20196 100644 --- a/internal/auth/service_test.go +++ b/internal/auth/service_test.go @@ -33,7 +33,8 @@ func TestService_GetByToken(t *testing.T) { t.Parallel() var m = mocks.NewAuthRepo(t) - m.EXPECT().GetByToken(mock.Anything, test.TreeHoleAccessToken).Return(auth.UserInfo{GroupID: 2}, nil) + m.EXPECT().GetByToken(mock.Anything, test.TreeHoleAccessToken). + Return(auth.UserInfo{GroupID: 2, Permission: auth.Permission{EpEdit: true}}, nil) m.EXPECT().GetPermission(mock.Anything, user.GroupID(2)).Return(auth.Permission{EpEdit: true}, nil) var u = mocks.NewUserRepo(t) diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index 557ae90bd..72d9ab5de 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -61,6 +61,8 @@ func (h User) patchSubjectCollection( return res.NotFound("subject not collected") case errors.Is(err, gerr.ErrSubjectNotFound): return res.NotFound("subject not found") + case errors.Is(err, gerr.ErrBanned): + return res.Forbidden(err.Error()) } return errgo.Wrap(err, "ctrl.UpdateSubjectCollection") } @@ -76,6 +78,10 @@ func (h User) updateOrCreateSubjectCollection( ) error { u := accessor.GetFromCtx(c) + if u.Permission.UserBan { + return gerr.ErrBanned + } + s, err := h.subject.Get(c.Request().Context(), subjectID, subject.Filter{NSFW: null.Bool{Set: !u.AllowNSFW()}}) if err != nil { if errors.Is(err, gerr.ErrNotFound) { diff --git a/web/handler/user/post_subject_collection.go b/web/handler/user/post_subject_collection.go index bfee0f485..eb77d978b 100644 --- a/web/handler/user/post_subject_collection.go +++ b/web/handler/user/post_subject_collection.go @@ -15,10 +15,13 @@ package user import ( + "errors" "net/http" "github.com/labstack/echo/v4" + "github.com/trim21/errgo" + "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/web/req" "github.com/bangumi/server/web/res" ) @@ -41,7 +44,15 @@ func (h User) PostSubjectCollection(c echo.Context) error { // 与 PatchSubjectCollection 一致 // 但允许创建,如果不存在 if err := h.updateOrCreateSubjectCollection(c, subjectID, r, true); err != nil { - return err + switch { + case errors.Is(err, gerr.ErrSubjectNotCollected): + return res.NotFound("subject not collected") + case errors.Is(err, gerr.ErrSubjectNotFound): + return res.NotFound("subject not found") + case errors.Is(err, gerr.ErrBanned): + return res.Forbidden(err.Error()) + } + return errgo.Wrap(err, "ctrl.UpdateSubjectCollection") } return c.NoContent(http.StatusAccepted) } From 21700de3a6784a9bb73ac4e47fcb982d0e0a05d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 18:43:07 +0800 Subject: [PATCH 708/888] build(deps): update module golang.org/x/sync to v0.16.0 (#889) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d79918da2..977eabe06 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.15.0 + golang.org/x/sync v0.16.0 golang.org/x/text v0.26.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 diff --git a/go.sum b/go.sum index 0fc7114e2..bc3fe1b58 100644 --- a/go.sum +++ b/go.sum @@ -297,8 +297,8 @@ golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8= -golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 93a53bfa60291505e0a9e93a279dabd7b1bc0734 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 3 Aug 2025 18:56:21 +0800 Subject: [PATCH 709/888] chore: add mergify config --- .github/mergify.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/mergify.yml diff --git a/.github/mergify.yml b/.github/mergify.yml new file mode 100644 index 000000000..a864b6efc --- /dev/null +++ b/.github/mergify.yml @@ -0,0 +1,8 @@ +pull_request_rules: + - name: label conflicts + conditions: + - conflict + actions: + label: + toggle: + - conflict From a59dcc2dc9aad822478fa19ae670bcdcc7a56258 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 19:41:16 +0800 Subject: [PATCH 710/888] build(deps): update module github.com/prometheus/client_golang to v1.23.0 (#888) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 977eabe06..d88df6096 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.22.0 + github.com/prometheus/client_golang v1.23.0 github.com/redis/rueidis v1.0.62 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 @@ -96,7 +96,7 @@ require ( github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/common v0.65.0 // indirect github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect diff --git a/go.sum b/go.sum index bc3fe1b58..0ec8cd96e 100644 --- a/go.sum +++ b/go.sum @@ -192,12 +192,12 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= +github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= -github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= +github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/redis/rueidis v1.0.62 h1:9yNCxsYtg9eMEzHhDq9tlRnDBFJyWTWn6YLQ5EWDE5I= From 7c3f8ed28c7eb162f9b0677d2fdbde22cd8775f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 19:42:13 +0800 Subject: [PATCH 711/888] build(deps): update module github.com/vektra/mockery/v3 to v3.5.1 (#883) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d88df6096..50d10aa8e 100644 --- a/go.mod +++ b/go.mod @@ -105,7 +105,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.5.0 // indirect + github.com/vektra/mockery/v3 v3.5.1 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index 0ec8cd96e..a4c97a61a 100644 --- a/go.sum +++ b/go.sum @@ -244,8 +244,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.5.0 h1:BatbjYJLL6P/h0Jkb/+6REJaqaqp8eTbFE8uwQtt11E= -github.com/vektra/mockery/v3 v3.5.0/go.mod h1:nHEhwwFt+3/CD3XdeklPWnRpDL96KNZgRiGuMPZNjN8= +github.com/vektra/mockery/v3 v3.5.1 h1:uJA2SuImj4pDgWuPI4MMuJyxgNL8zkXLrzSMWbDRQ20= +github.com/vektra/mockery/v3 v3.5.1/go.mod h1:m1a4f5oLm3+Vffg9lilSAOe4u2A1ejThZ/JTh44lQYc= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= From 7598bc0ce6a5bcc827fbafc961c194cf7caceb13 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:52:51 +0800 Subject: [PATCH 712/888] build(deps): update module golang.org/x/text to v0.27.0 (#890) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 50d10aa8e..c2af79c73 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.16.0 - golang.org/x/text v0.26.0 + golang.org/x/text v0.27.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.0 @@ -113,14 +113,14 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.38.0 // indirect + golang.org/x/crypto v0.39.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/mod v0.25.0 // indirect - golang.org/x/net v0.40.0 // indirect + golang.org/x/net v0.41.0 // indirect golang.org/x/sys v0.33.0 // indirect golang.org/x/term v0.32.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.33.0 // indirect + golang.org/x/tools v0.34.0 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index a4c97a61a..c417ae557 100644 --- a/go.sum +++ b/go.sum @@ -278,8 +278,8 @@ golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= @@ -292,8 +292,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -326,16 +326,16 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= -golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4= +golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= +golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= From c80960bfc90034a76b45df6a891f94d0987e1171 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:02 +0800 Subject: [PATCH 713/888] build(deps): update module github.com/bytedance/sonic to v1.14.0 (#887) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index c2af79c73..47349d0b2 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.17.70 github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.13.3 + github.com/bytedance/sonic v1.14.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -61,7 +61,7 @@ require ( github.com/aws/smithy-go v1.22.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect - github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect github.com/fatih/structs v1.1.0 // indirect diff --git a/go.sum b/go.sum index c417ae557..bb35fb4fe 100644 --- a/go.sum +++ b/go.sum @@ -39,11 +39,11 @@ github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oM github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= -github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0= -github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= +github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= +github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= -github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= +github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= From f453e1fc2b2724db7f5a8e069d94856b03d2d761 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:11 +0800 Subject: [PATCH 714/888] build(deps): update aws-sdk-go-v2 monorepo (#886) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 47349d0b2..fc484f5bd 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.36.5 - github.com/aws/aws-sdk-go-v2/credentials v1.17.70 - github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 + github.com/aws/aws-sdk-go-v2 v1.37.1 + github.com/aws/aws-sdk-go-v2/credentials v1.18.2 + github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect - github.com/aws/smithy-go v1.22.4 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1 // indirect + github.com/aws/smithy-go v1.22.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.3.0 // indirect diff --git a/go.sum b/go.sum index bb35fb4fe..0ad6f3cea 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.36.5 h1:0OF9RiEMEdDdZEMqF9MRjevyxAQcf6gY+E7vwBILFj0= -github.com/aws/aws-sdk-go-v2 v1.36.5/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY= -github.com/aws/aws-sdk-go-v2/credentials v1.17.70 h1:ONnH5CM16RTXRkS8Z1qg7/s2eDOhHhaXVd72mmyv4/0= -github.com/aws/aws-sdk-go-v2/credentials v1.17.70/go.mod h1:M+lWhhmomVGgtuPOhO85u4pEa3SmssPTdcYpP/5J/xc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4/go.mod h1:LT10DsiGjLWh4GbjInf9LQejkYEhBgBCjLG5+lvk4EE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM9na4cvXax9dyLitn8EYBRl8Ak4XtG4= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U= -github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 h1:5Y75q0RPQoAbieyOuGLhjV9P3txvYgXv2lg0UwJOfmE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU= -github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= -github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2 v1.37.1 h1:SMUxeNz3Z6nqGsXv0JuJXc8w5YMtrQMuIBmDx//bBDY= +github.com/aws/aws-sdk-go-v2 v1.37.1/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 h1:6GMWV6CNpA/6fbFHnoAjrv4+LGfyTqZz2LtCHnspgDg= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0/go.mod h1:/mXlTIVG9jbxkqDnr5UQNQxW1HRYxeGklkM9vAFeabg= +github.com/aws/aws-sdk-go-v2/credentials v1.18.2 h1:mfm0GKY/PHLhs7KO0sUaOtFnIQ15Qqxt+wXbO/5fIfs= +github.com/aws/aws-sdk-go-v2/credentials v1.18.2/go.mod h1:v0SdJX6ayPeZFQxgXUKw5RhLpAoZUuynxWDfh8+Eknc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 h1:ksZXBYv80EFTcgc8OJO48aQ8XDWXIQL7gGasPeCoTzI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1/go.mod h1:HSksQyyJETVZS7uM54cir0IgxttTD+8aEoJMPGepHBI= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 h1:+dn/xF/05utS7tUhjIcndbuaPjfll2LhbH1cCDGLYUQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1/go.mod h1:hyAGz30LHdm5KBZDI58MXx5lDVZ5CUfvfTZvMu4HCZo= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1 h1:4HbnOGE9491a9zYJ9VpPh1ApgEq6ZlD4Kuv1PJenFpc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1/go.mod h1:Z6QnHC6TmpJWUxAy8FI4JzA7rTwl6EIANkyK9OR5z5w= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1 h1:ps3nrmBWdWwakZBydGX1CxeYFK80HsQ79JLMwm7Y4/c= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1/go.mod h1:bAdfrfxENre68Hh2swNaGEVuFYE74o0SaSCAlaG9E74= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 h1:ky79ysLMxhwk5rxJtS+ILd3Mc8kC5fhsLBrP27r6h4I= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1/go.mod h1:+2MmkvFvPYM1vsozBWduoLJUi5maxFk5B7KJFECujhY= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1 h1:MdVYlN5pcQu1t1OYx4Ajo3fKl1IEhzgdPQbYFCRjYS8= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1/go.mod h1:iikmNLrvHm2p4a3/4BPeix2S9P+nW8yM1IZW73x8bFA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1 h1:Hsqo8+dFxSdDvv9B2PgIx1AJAnDpqgS0znVI+R+MoGY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1/go.mod h1:8Q0TAPXD68Z8YqlcIGHs/UNIDHsxErV9H4dl4vJEpgw= +github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= +github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 60a4a886ff60efc4f79e5889de64ecb1e3566861 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:19 +0800 Subject: [PATCH 715/888] build(deps): update dependency go to v1.24.5 (#880) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index fc484f5bd..36bf72fdf 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.4 +go 1.24.5 tool github.com/vektra/mockery/v3 From f81ab0428f52905cd03c908776212673718c7035 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:26 +0800 Subject: [PATCH 716/888] build(deps): update module github.com/redis/rueidis to v1.0.63 (#881) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 36bf72fdf..f4ef1aa7b 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.0 - github.com/redis/rueidis v1.0.62 + github.com/redis/rueidis v1.0.63 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 0ad6f3cea..f470968b9 100644 --- a/go.sum +++ b/go.sum @@ -200,8 +200,8 @@ github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2 github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.62 h1:9yNCxsYtg9eMEzHhDq9tlRnDBFJyWTWn6YLQ5EWDE5I= -github.com/redis/rueidis v1.0.62/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.63 h1:zSt5focn0YgrgBAE5NcnAibyKf3ZKyv+eCQHk62jEFk= +github.com/redis/rueidis v1.0.63/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 86f6b508d93ca97ac8dbad54f38cd3daa6e89270 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:35 +0800 Subject: [PATCH 717/888] build(deps): update module github.com/spf13/pflag to v1.0.7 (#882) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index f4ef1aa7b..c4bb4ac76 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.6 + github.com/spf13/pflag v1.0.7 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.6 github.com/trim21/go-phpserialize v0.1.1 diff --git a/go.sum b/go.sum index f470968b9..b780d5d8c 100644 --- a/go.sum +++ b/go.sum @@ -217,8 +217,9 @@ github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApI github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= +github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= From 0457a7be3f88dceee6680326e057237a80a9cfea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:53:53 +0800 Subject: [PATCH 718/888] build(deps): update module gorm.io/gorm to v1.30.1 (#884) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c4bb4ac76..8f9f684e2 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( golang.org/x/text v0.27.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 - gorm.io/gorm v1.30.0 + gorm.io/gorm v1.30.1 gorm.io/plugin/dbresolver v1.6.0 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index b780d5d8c..1a705152b 100644 --- a/go.sum +++ b/go.sum @@ -363,8 +363,8 @@ gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs= -gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.30.1 h1:lSHg33jJTBxs2mgJRfRZeLDG+WZaHYCk3Wtfl6Ngzo4= +gorm.io/gorm v1.30.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.6.0 h1:XvKDeOtTn1EIX6s4SrKpEH82q0gXVemhYjbYZFGFVcw= From 2a3e7944cf06d63217cd70eb15aabddd9c1c2177 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:59:24 +0800 Subject: [PATCH 719/888] build(deps): update module gorm.io/plugin/dbresolver to v1.6.2 (#885) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8f9f684e2..ed478a419 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.1 - gorm.io/plugin/dbresolver v1.6.0 + gorm.io/plugin/dbresolver v1.6.2 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 1a705152b..7086f9a29 100644 --- a/go.sum +++ b/go.sum @@ -367,8 +367,8 @@ gorm.io/gorm v1.30.1 h1:lSHg33jJTBxs2mgJRfRZeLDG+WZaHYCk3Wtfl6Ngzo4= gorm.io/gorm v1.30.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= -gorm.io/plugin/dbresolver v1.6.0 h1:XvKDeOtTn1EIX6s4SrKpEH82q0gXVemhYjbYZFGFVcw= -gorm.io/plugin/dbresolver v1.6.0/go.mod h1:tctw63jdrOezFR9HmrKnPkmig3m5Edem9fdxk9bQSzM= +gorm.io/plugin/dbresolver v1.6.2 h1:F4b85TenghUeITqe3+epPSUtHH7RIk3fXr5l83DF8Pc= +gorm.io/plugin/dbresolver v1.6.2/go.mod h1:tctw63jdrOezFR9HmrKnPkmig3m5Edem9fdxk9bQSzM= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= From 83129b497748389dabd0660e35f8fa94b5a6e9f4 Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Sun, 17 Aug 2025 18:40:27 +0800 Subject: [PATCH 720/888] feat: update common (#892) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vars/common b/pkg/vars/common index 211f65e26..271b5fe28 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 211f65e2652f4fadf93ea123e025d2a57aaab127 +Subproject commit 271b5fe280376899c019d20bf4ef83d1375c84b5 From ab5f651d7eafda8065e4951b2708833d18adeddd Mon Sep 17 00:00:00 2001 From: Rin313 <61936230+Rin313@users.noreply.github.com> Date: Wed, 20 Aug 2025 01:32:27 +0000 Subject: [PATCH 721/888] fix: remove duplicate values in the export (#893) --- cmd/archive/main.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index ec2db2e63..eda678bc5 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -364,10 +364,6 @@ func careers(p *dao.Person) []string { s = append(s, "seiyu") } - if p.Writer { - s = append(s, "writer") - } - if p.Illustrator { s = append(s, "illustrator") } From 61ce3e4c5ee8cee484ad95ce35fec0b55a075456 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 09:34:11 +0800 Subject: [PATCH 722/888] build(deps): lock file maintenance npm (#891) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 22 ++++++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 086c54522..be8c0c2d6 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,10 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.1.1", + "@apidevtools/json-schema-ref-parser": "^14.2.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "yaml": "^2.8.0" + "yaml": "^2.8.1" }, "devDependencies": { "colors": "^1.4.0", diff --git a/yarn.lock b/yarn.lock index 9ef4cd20f..924ee5b31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,11 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^14.1.1": - version "14.1.1" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.1.tgz#0bae59809b7848c7a89dc6bb2f3bb980b7c290b1" - integrity sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg== +"@apidevtools/json-schema-ref-parser@^14.2.0": + version "14.2.0" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.0.tgz#9129cdf6496f4524635f59e410c0985fe2a6fa48" + integrity sha512-NaGMMWwppbByagq+LwQMq6PMXHFWVu6kSwwx+eJfYTJ5zdpOvb9TIk6ZWxEEeXMUvGdVOZq3JalYsjsTZDvtkA== dependencies: - "@types/json-schema" "^7.0.15" js-yaml "^4.1.0" "@exodus/schemasafe@^1.0.0-rc.2": @@ -15,11 +14,6 @@ resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== -"@types/json-schema@^7.0.15": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -257,10 +251,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.0.tgz#15f8c9866211bdc2d3781a0890e44d4fa1a5fff6" - integrity sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ== +yaml@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== yargs-parser@^21.1.1: version "21.1.1" From 7f04de44248033060610e7afe34c634d19afb7d6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 09:35:41 +0800 Subject: [PATCH 723/888] build(deps): update dependency go to v1.24.6 (#894) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ed478a419..3ef166b06 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.5 +go 1.24.6 tool github.com/vektra/mockery/v3 From 5723584b84abb2fe7205e6ee2edfc9d6c614b749 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:02:14 +0800 Subject: [PATCH 724/888] build(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 (#895) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3ef166b06..284e48919 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.9 // indirect - github.com/go-viper/mapstructure/v2 v2.3.0 // indirect + github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect diff --git a/go.sum b/go.sum index 7086f9a29..220aaa32f 100644 --- a/go.sum +++ b/go.sum @@ -74,8 +74,8 @@ github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= -github.com/go-viper/mapstructure/v2 v2.3.0 h1:27XbWsHIqhbdR5TIC911OfYvgSaW93HM+dX7970Q7jk= -github.com/go-viper/mapstructure/v2 v2.3.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= From 03e0f378923a6f6eb4faf2fadc284bd0d48e3e77 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:13:44 +0800 Subject: [PATCH 725/888] ci: update actions/checkout action to v5 (#903) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/release-github.yaml | 2 +- .github/workflows/release-openapi.yaml | 4 ++-- .github/workflows/security.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/test.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 25c792b46..2642878d4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 1bc38f52f..a17dbe69c 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 8cf720f71..27d1e41f5 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,7 +26,7 @@ jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 5ff022f6c..18d5871f9 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index dffbf0816..7d9af56e4 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -12,7 +12,7 @@ jobs: github: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 727ef17c4..c192d3968 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -13,7 +13,7 @@ jobs: openapi: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: 20 @@ -21,7 +21,7 @@ jobs: - run: yarn install --frozen-lockfile - run: yarn run build - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: repository: "bangumi/api" path: api diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index afb2a5e6c..c75587892 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -25,7 +25,7 @@ jobs: vulnerability-scan: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 5e2150588..440bb962d 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -28,7 +28,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-node@v4 with: node-version: "lts/*" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a949e1e58..40e7f0741 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: recursive diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index b14a4bf55..d0db81934 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -15,7 +15,7 @@ jobs: update: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: submodules: true From 97c5677a759fc6f78dac6dbd79f2183e916ddb80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:13:56 +0800 Subject: [PATCH 726/888] build(deps): update module golang.org/x/text to v0.28.0 (#902) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 284e48919..ce26e8007 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.16.0 - golang.org/x/text v0.27.0 + golang.org/x/text v0.28.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.1 @@ -113,14 +113,14 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.39.0 // indirect + golang.org/x/crypto v0.40.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.25.0 // indirect - golang.org/x/net v0.41.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect + golang.org/x/mod v0.26.0 // indirect + golang.org/x/net v0.42.0 // indirect + golang.org/x/sys v0.34.0 // indirect + golang.org/x/term v0.33.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.34.0 // indirect + golang.org/x/tools v0.35.0 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 220aaa32f..2617985d6 100644 --- a/go.sum +++ b/go.sum @@ -279,22 +279,22 @@ golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM= -golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w= -golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw= -golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -311,15 +311,15 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg= +golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -327,16 +327,16 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4= -golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= +golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo= -golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= +golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= +golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= From d75b5008930dba2227b5a94e1ed80e3c5a46035a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:14:19 +0800 Subject: [PATCH 727/888] build(deps): update aws-sdk-go-v2 monorepo (#900) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index ce26e8007..3936e1c9c 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.37.1 - github.com/aws/aws-sdk-go-v2/credentials v1.18.2 - github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1 + github.com/aws/aws-sdk-go-v2 v1.38.0 + github.com/aws/aws-sdk-go-v2/credentials v1.18.5 + github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -51,13 +51,13 @@ require ( github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 // indirect github.com/aws/smithy-go v1.22.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect diff --git a/go.sum b/go.sum index 2617985d6..265d8ee62 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.37.1 h1:SMUxeNz3Z6nqGsXv0JuJXc8w5YMtrQMuIBmDx//bBDY= -github.com/aws/aws-sdk-go-v2 v1.37.1/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= +github.com/aws/aws-sdk-go-v2 v1.38.0 h1:UCRQ5mlqcFk9HJDIqENSLR3wiG1VTWlyUfLDEvY7RxU= +github.com/aws/aws-sdk-go-v2 v1.38.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 h1:6GMWV6CNpA/6fbFHnoAjrv4+LGfyTqZz2LtCHnspgDg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0/go.mod h1:/mXlTIVG9jbxkqDnr5UQNQxW1HRYxeGklkM9vAFeabg= -github.com/aws/aws-sdk-go-v2/credentials v1.18.2 h1:mfm0GKY/PHLhs7KO0sUaOtFnIQ15Qqxt+wXbO/5fIfs= -github.com/aws/aws-sdk-go-v2/credentials v1.18.2/go.mod h1:v0SdJX6ayPeZFQxgXUKw5RhLpAoZUuynxWDfh8+Eknc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1 h1:ksZXBYv80EFTcgc8OJO48aQ8XDWXIQL7gGasPeCoTzI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.1/go.mod h1:HSksQyyJETVZS7uM54cir0IgxttTD+8aEoJMPGepHBI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1 h1:+dn/xF/05utS7tUhjIcndbuaPjfll2LhbH1cCDGLYUQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.1/go.mod h1:hyAGz30LHdm5KBZDI58MXx5lDVZ5CUfvfTZvMu4HCZo= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1 h1:4HbnOGE9491a9zYJ9VpPh1ApgEq6ZlD4Kuv1PJenFpc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.1/go.mod h1:Z6QnHC6TmpJWUxAy8FI4JzA7rTwl6EIANkyK9OR5z5w= +github.com/aws/aws-sdk-go-v2/credentials v1.18.5 h1:DATc1xnpHUV8VgvtnVQul+zuCwK6vz7gtkbKEUZcuNI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.5/go.mod h1:y7aigZzjm1jUZuCgOrlBng+VJrKkknY2Cl0JWxG7vHU= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 h1:o9RnO+YZ4X+kt5Z7Nvcishlz0nksIt2PIzDglLMP0vA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3/go.mod h1:+6aLJzOG1fvMOyzIySYjOFjcguGvVRL68R+uoRencN4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 h1:joyyUFhiTQQmVK6ImzNU9TQSNRNeD9kOklqTzyk5v6s= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3/go.mod h1:+vNIyZQP3b3B1tSLI0lxvrU9cfM7gpdRXMFfm67ZcPc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 h1:ZV2XK2L3HBq9sCKQiQ/MdhZJppH/rH0vddEAamsHUIs= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3/go.mod h1:b9F9tk2HdHpbf3xbN7rUZcfmJI26N6NcJu/8OsBFI/0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1 h1:ps3nrmBWdWwakZBydGX1CxeYFK80HsQ79JLMwm7Y4/c= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.1/go.mod h1:bAdfrfxENre68Hh2swNaGEVuFYE74o0SaSCAlaG9E74= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1 h1:ky79ysLMxhwk5rxJtS+ILd3Mc8kC5fhsLBrP27r6h4I= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.1/go.mod h1:+2MmkvFvPYM1vsozBWduoLJUi5maxFk5B7KJFECujhY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1 h1:MdVYlN5pcQu1t1OYx4Ajo3fKl1IEhzgdPQbYFCRjYS8= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.1/go.mod h1:iikmNLrvHm2p4a3/4BPeix2S9P+nW8yM1IZW73x8bFA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1 h1:Hsqo8+dFxSdDvv9B2PgIx1AJAnDpqgS0znVI+R+MoGY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.85.1/go.mod h1:8Q0TAPXD68Z8YqlcIGHs/UNIDHsxErV9H4dl4vJEpgw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 h1:3ZKmesYBaFX33czDl6mbrcHb6jeheg6LqjJhQdefhsY= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3/go.mod h1:7ryVb78GLCnjq7cw45N6oUb9REl7/vNUwjvIqC5UgdY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 h1:ieRzyHXypu5ByllM7Sp4hC5f/1Fy5wqxqY0yB85hC7s= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3/go.mod h1:O5ROz8jHiOAKAwx179v+7sHMhfobFVi6nZt8DEyiYoM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 h1:SE/e52dq9a05RuxzLcjT+S5ZpQobj3ie3UTaSf2NnZc= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3/go.mod h1:zkpvBTsR020VVr8TOrwK2TrUW9pOir28sH5ECHpnAfo= +github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0 h1:egoDf+Geuuntmw79Mz6mk9gGmELCPzg5PFEABOHB+6Y= +github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0/go.mod h1:t9MDi29H+HDbkolTSQtbI0HP9DemAWQzUjmWC7LGMnE= github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From b260c48869ebc208eb6ac5ebb8c57af1e6a7c0b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:14:29 +0800 Subject: [PATCH 728/888] build(deps): update gcr.io/distroless/static docker digest to 2e114d2 (#896) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index 9804a3fc3..a58ab926e 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:b7b9a6953e7bed6baaf37329331051d7bdc1b99c885f6dbeb72d75b1baad54f9 +FROM gcr.io/distroless/static@sha256:2e114d20aa6371fd271f854aa3d6b2b7d2e70e797bb3ea44fb677afec60db22c ENTRYPOINT ["/app/chii.exe"] From 601f17bb47e916c2c653f05ec012e2bd77b6ed7f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:14:36 +0800 Subject: [PATCH 729/888] build(deps): update module github.com/jarcoal/httpmock to v1.4.1 (#897) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3936e1c9c..46bd7433d 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 - github.com/jarcoal/httpmock v1.4.0 + github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 diff --git a/go.sum b/go.sum index 265d8ee62..1aca17ff6 100644 --- a/go.sum +++ b/go.sum @@ -102,8 +102,8 @@ github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/jedib0t/go-pretty/v6 v6.6.7 h1:m+LbHpm0aIAPLzLbMfn8dc3Ht8MW7lsSO4MPItz/Uuo= github.com/jedib0t/go-pretty/v6 v6.6.7/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= From 99a0b4efbe08e1d7967f46aebb25ddba6feb259d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:14:51 +0800 Subject: [PATCH 730/888] build(deps): update module github.com/redis/rueidis to v1.0.64 (#898) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 46bd7433d..db00f02ea 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.32.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.0 - github.com/redis/rueidis v1.0.63 + github.com/redis/rueidis v1.0.64 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 diff --git a/go.sum b/go.sum index 1aca17ff6..6f3f8a841 100644 --- a/go.sum +++ b/go.sum @@ -200,8 +200,8 @@ github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2 github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.63 h1:zSt5focn0YgrgBAE5NcnAibyKf3ZKyv+eCQHk62jEFk= -github.com/redis/rueidis v1.0.63/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.64 h1:XqgbueDuNV3qFdVdQwAHJl1uNt90zUuAJuzqjH4cw6Y= +github.com/redis/rueidis v1.0.64/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 2296eddbd59d2978cfa59e225b75e33e4bf8034d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 23:18:42 +0800 Subject: [PATCH 731/888] build(deps): update module github.com/vektra/mockery/v3 to v3.5.3 (#899) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index db00f02ea..821f27d78 100644 --- a/go.mod +++ b/go.mod @@ -105,7 +105,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.5.1 // indirect + github.com/vektra/mockery/v3 v3.5.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect @@ -113,14 +113,14 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.40.0 // indirect + golang.org/x/crypto v0.41.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.42.0 // indirect - golang.org/x/sys v0.34.0 // indirect - golang.org/x/term v0.33.0 // indirect + golang.org/x/mod v0.27.0 // indirect + golang.org/x/net v0.43.0 // indirect + golang.org/x/sys v0.35.0 // indirect + golang.org/x/term v0.34.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.35.0 // indirect + golang.org/x/tools v0.36.0 // indirect google.golang.org/protobuf v1.36.6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 6f3f8a841..53bca6c5d 100644 --- a/go.sum +++ b/go.sum @@ -245,8 +245,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.5.1 h1:uJA2SuImj4pDgWuPI4MMuJyxgNL8zkXLrzSMWbDRQ20= -github.com/vektra/mockery/v3 v3.5.1/go.mod h1:m1a4f5oLm3+Vffg9lilSAOe4u2A1ejThZ/JTh44lQYc= +github.com/vektra/mockery/v3 v3.5.3 h1:iY/kcs3djCjzNFMNu/U/Gij27OF1UF7TewnYwq6nbMs= +github.com/vektra/mockery/v3 v3.5.3/go.mod h1:6rmlzyACJQig1UFoUYyLMS/O+2aGz6BgKAO9C8t9/v0= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -279,22 +279,22 @@ golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM= -golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= +golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs= -golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= +golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -311,15 +311,15 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA= -golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.33.0 h1:NuFncQrRcaRvVmgRkvM3j/F00gWIAlcmlB8ACEKmGIg= -golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= +golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= +golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -335,8 +335,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= From 20ce7ec17966f7af8a2c3de1b87a04ff2619be78 Mon Sep 17 00:00:00 2001 From: Inchei Chan Date: Mon, 25 Aug 2025 00:02:47 +0800 Subject: [PATCH 732/888] fix: remove duplicate values (#904) --- internal/model/person.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/internal/model/person.go b/internal/model/person.go index e1431f690..9d8abc02c 100644 --- a/internal/model/person.go +++ b/internal/model/person.go @@ -62,10 +62,6 @@ func (p Person) Careers() []string { s = append(s, "seiyu") } - if p.Writer { - s = append(s, "writer") - } - if p.Illustrator { s = append(s, "illustrator") } From 8f558ec83b12c04f8524242eb36c9d7684ddab51 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 Aug 2025 22:52:56 +0800 Subject: [PATCH 733/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.33.2 (#901) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 4 +--- go.sum | 10 ++-------- internal/search/character/event.go | 5 +++-- internal/search/person/event.go | 5 +++-- internal/search/searcher/client.go | 7 +++++-- internal/search/subject/event.go | 5 +++-- 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/go.mod b/go.mod index 821f27d78..46a617493 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.32.0 + github.com/meilisearch/meilisearch-go v0.33.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.0 github.com/redis/rueidis v1.0.64 @@ -75,7 +75,6 @@ require ( github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect - github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect @@ -87,7 +86,6 @@ require ( github.com/knadh/koanf/v2 v2.2.1 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/mailru/easyjson v0.9.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect diff --git a/go.sum b/go.sum index 53bca6c5d..753171cbd 100644 --- a/go.sum +++ b/go.sum @@ -77,7 +77,6 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6 github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= @@ -116,8 +115,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= @@ -153,8 +150,6 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= -github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= @@ -171,8 +166,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.32.0 h1:cWcycpONSH3VLTZ5npUl1O5aXPkNM0vUx6bywnYqGbE= -github.com/meilisearch/meilisearch-go v0.32.0/go.mod h1:aNtyuwurDg/ggxQIcKqWH6G9g2ptc8GyY7PLY4zMn/g= +github.com/meilisearch/meilisearch-go v0.33.2 h1:YgsQSLYhAkRN2ias6I1KNRTjdYCN5w2uHbLUQ+xgrws= +github.com/meilisearch/meilisearch-go v0.33.2/go.mod h1:6eOPcQ+OAuwXvnONlfSgfgvr7TIAWM/6OdhcVHg8cF0= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -230,7 +225,6 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/trim21/errgo v0.0.6 h1:Qz10hGY51k5u7ADRa/jqan8VaQYKx7hAqUJ6t5m42/I= diff --git a/internal/search/character/event.go b/internal/search/character/event.go index 0b45708c8..67468fc66 100644 --- a/internal/search/character/event.go +++ b/internal/search/character/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/samber/lo" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -26,7 +27,7 @@ func (c *client) OnAdded(ctx context.Context, id model.CharacterID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } @@ -45,7 +46,7 @@ func (c *client) OnUpdate(ctx context.Context, id model.CharacterID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } diff --git a/internal/search/person/event.go b/internal/search/person/event.go index a8b8d0537..b93dcc39d 100644 --- a/internal/search/person/event.go +++ b/internal/search/person/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/samber/lo" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -26,7 +27,7 @@ func (c *client) OnAdded(ctx context.Context, id model.PersonID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } @@ -45,7 +46,7 @@ func (c *client) OnUpdate(ctx context.Context, id model.PersonID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index e0ed22c30..02352bab8 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -98,7 +98,7 @@ func NewSendBatch(log *zap.Logger, index meilisearch.IndexManager) func([]Docume log.Debug("send batch to meilisearch", zap.Int("len", len(items))) err := retry.Do( func() error { - _, err := index.UpdateDocuments(items, "id") + _, err := index.UpdateDocuments(items, lo.ToPtr("id")) return err }, retry.OnRetry(func(n uint, err error) { @@ -170,7 +170,10 @@ func InitIndex(log *zap.Logger, meili meilisearch.ServiceManager, idx string, rt } log.Info("set filterable attributes", zap.Strings("attributes", *GetAttributes(rt, "filterable"))) - _, err = index.UpdateFilterableAttributes(GetAttributes(rt, "filterable")) + _, err = index.UpdateFilterableAttributes(lo.ToPtr( + lo.Map(*GetAttributes(rt, "filterable"), func(s string, index int) any { + return s + }))) if err != nil { log.Fatal("failed to update search index filterable attributes", zap.Error(err)) return diff --git a/internal/search/subject/event.go b/internal/search/subject/event.go index f54bca13b..eb3c2415a 100644 --- a/internal/search/subject/event.go +++ b/internal/search/subject/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/samber/lo" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -27,7 +28,7 @@ func (c *client) OnAdded(ctx context.Context, id model.SubjectID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } @@ -46,7 +47,7 @@ func (c *client) OnUpdate(ctx context.Context, id model.SubjectID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, "id") + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) return err } From 7344b9492b7057b1a1fffdd52c289225bed775e6 Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Sun, 31 Aug 2025 22:53:08 +0800 Subject: [PATCH 734/888] feat: update common (#905) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vars/common b/pkg/vars/common index 271b5fe28..c9b3bd92b 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 271b5fe280376899c019d20bf4ef83d1375c84b5 +Subproject commit c9b3bd92bd97a8211428dae536c605eb8f353041 From f91e524d70dd7922cc820aa090cdae505f06610b Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Sun, 31 Aug 2025 22:56:25 +0800 Subject: [PATCH 735/888] feat: update common (#907) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> From 14a52242447612102ce66fb3cef6ff2099e7b931 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 11 Sep 2025 22:20:38 +0800 Subject: [PATCH 736/888] fix: check input collection rate (#908) --- internal/collections/domain/collection/type.go | 4 ++++ web/req/collection.go | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/internal/collections/domain/collection/type.go b/internal/collections/domain/collection/type.go index ca45c230f..111ef8ed5 100644 --- a/internal/collections/domain/collection/type.go +++ b/internal/collections/domain/collection/type.go @@ -16,6 +16,10 @@ package collection type SubjectCollection uint8 +func (s SubjectCollection) IsValid() bool { + return s > 0 && s <= 5 +} + const ( SubjectCollectionAll SubjectCollection = 0 // 全部 SubjectCollectionWish SubjectCollection = 1 // 想看 diff --git a/web/req/collection.go b/web/req/collection.go index 19503cbf5..b8ade56f4 100644 --- a/web/req/collection.go +++ b/web/req/collection.go @@ -43,6 +43,12 @@ type SubjectEpisodeCollectionPatch struct { } func (v *SubjectEpisodeCollectionPatch) Validate() error { + if v.Type.Set { + if !v.Type.Value.IsValid() { + return res.BadRequest("invalid type") + } + } + if v.Rate.Set { if v.Rate.Value > 10 { return res.BadRequest("rate overflow") From cc3615f8880555e3b3d9b6fd5a8a4b1f1de057a6 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 11 Sep 2025 23:32:19 +0800 Subject: [PATCH 737/888] fix: filter bad collection record (#909) --- internal/collections/infra/mysql_repo.go | 25 ++++++++++++++----- internal/collections/infra/mysql_repo_test.go | 4 +++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 1c4f16c4c..33c1e56ac 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -64,7 +64,10 @@ func (r mysqlRepo) getSubjectCollection( ctx context.Context, user model.UserID, subject model.SubjectID, ) (*dao.SubjectCollection, error) { s, err := r.q.SubjectCollection.WithContext(ctx). - Where(r.q.SubjectCollection.UserID.Eq(user), r.q.SubjectCollection.SubjectID.Eq(subject)).Take() + Where( + r.q.SubjectCollection.UserID.Eq(user), + r.q.SubjectCollection.SubjectID.Eq(subject), + ).Take() if err != nil { return nil, gerr.WrapGormError(err) } @@ -420,7 +423,9 @@ func (r mysqlRepo) CountSubjectCollections( showPrivate bool, ) (int64, error) { q := r.q.SubjectCollection.WithContext(ctx). - Where(r.q.SubjectCollection.UserID.Eq(userID)) + Where(r.q.SubjectCollection.UserID.Eq(userID), + r.q.SubjectCollection.Type.Neq(0), + ) if subjectType != model.SubjectTypeAll { q = q.Where(r.q.SubjectCollection.SubjectType.Eq(subjectType)) @@ -452,7 +457,10 @@ func (r mysqlRepo) ListSubjectCollection( ) ([]collection.UserSubjectCollection, error) { q := r.q.SubjectCollection.WithContext(ctx). Order(r.q.SubjectCollection.UpdatedTime.Desc()). - Where(r.q.SubjectCollection.UserID.Eq(userID)).Limit(limit).Offset(offset) + Where( + r.q.SubjectCollection.UserID.Eq(userID), + r.q.SubjectCollection.Type.Neq(0), + ).Limit(limit).Offset(offset) if subjectType != model.SubjectTypeAll { q = q.Where(r.q.SubjectCollection.SubjectType.Eq(subjectType)) @@ -494,7 +502,11 @@ func (r mysqlRepo) GetSubjectCollection( ctx context.Context, userID model.UserID, subjectID model.SubjectID, ) (collection.UserSubjectCollection, error) { c, err := r.q.SubjectCollection.WithContext(ctx). - Where(r.q.SubjectCollection.UserID.Eq(userID), r.q.SubjectCollection.SubjectID.Eq(subjectID)).Take() + Where( + r.q.SubjectCollection.UserID.Eq(userID), + r.q.SubjectCollection.SubjectID.Eq(subjectID), + r.q.SubjectCollection.Type.Neq(0), + ).Take() if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return collection.UserSubjectCollection{}, gerr.ErrSubjectNotCollected @@ -556,8 +568,9 @@ func (r mysqlRepo) reCountSubjectCollection(ctx context.Context, subjectID model return r.q.Transaction(func(tx *query.Query) error { err := tx.DB().WithContext(ctx).Raw(` - select interest_type as type, count(interest_type) as total from chii_subject_interests - where interest_subject_id = ? + select interest_type as type, count(interest_type) as total + from chii_subject_interests + where interest_subject_id = ? and interest_type != 0 group by interest_type `, subjectID).Scan(&counts).Error if err != nil { diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index 9f5f9af20..a99ab5972 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -66,6 +66,7 @@ func TestMysqlRepo_GetCollection(t *testing.T) { UserID: id, SubjectID: subjectID, Rate: 2, + Type: 1, }) require.NoError(t, err) @@ -96,6 +97,7 @@ func TestMysqlRepo_CountSubjectCollections(t *testing.T) { WithContext(context.Background()). Create(&dao.SubjectCollection{ UserID: id, + Type: 2, SubjectID: model.SubjectID(i + 100), SubjectType: model.SubjectTypeAnime, UpdatedTime: uint32(time.Now().Unix()), @@ -136,6 +138,7 @@ func TestMysqlRepo_ListSubjectCollection(t *testing.T) { WithContext(context.Background()). Create(&dao.SubjectCollection{ UserID: uid, + Type: 2, SubjectID: model.SubjectID(100 + i), SubjectType: model.SubjectTypeAnime, UpdatedTime: uint32(time.Now().Unix()), @@ -148,6 +151,7 @@ func TestMysqlRepo_ListSubjectCollection(t *testing.T) { WithContext(context.Background()). Create(&dao.SubjectCollection{ UserID: uid, + Type: 2, SubjectID: 200 + i, SubjectType: model.SubjectTypeGame, UpdatedTime: uint32(time.Now().Unix()), From 5cc81a41beffbab0164377a29bca04bbf8ef9408 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:08:55 +0800 Subject: [PATCH 738/888] ci: update actions/setup-node action to v5 (#913) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index a17dbe69c..e544cb9fa 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -21,7 +21,7 @@ jobs: submodules: true - name: Install Node LTS - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: cache: yarn diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index c192d3968..b9722c84e 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: node-version: 20 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 440bb962d..84edcc636 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -29,7 +29,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index d0db81934..a9b67a900 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -19,7 +19,7 @@ jobs: with: submodules: true - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v5 with: node-version: 22 From c82c968ac13b4141cfb14e201ddc08a3e45b6703 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:09:04 +0800 Subject: [PATCH 739/888] ci: update actions/setup-go action to v6 (#912) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index e544cb9fa..4f25afe62 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -26,7 +26,7 @@ jobs: cache: yarn - name: Install Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: "go.mod" From 3c3a2ad9d6ffd8c0366ad8b7ebf7dfb62c7ae85d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:09:28 +0800 Subject: [PATCH 740/888] build(deps): update gcr.io/distroless/static docker digest to 87bce11 (#910) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index a58ab926e..accaa5fb3 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:2e114d20aa6371fd271f854aa3d6b2b7d2e70e797bb3ea44fb677afec60db22c +FROM gcr.io/distroless/static@sha256:87bce11be0af225e4ca761c40babb06d6d559f5767fbf7dc3c47f0f1a466b92c ENTRYPOINT ["/app/chii.exe"] From 72bc8d3336ca2281ed2ce512f6aeed8c6b4a761e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 01:10:40 +0800 Subject: [PATCH 741/888] build(deps): update dependency go to v1.24.7 (#911) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 46a617493..d934afaa3 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.6 +go 1.24.7 tool github.com/vektra/mockery/v3 From 1ee8b0d21e738d83fce71a4aa68735a98eddc630 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 18:28:31 +0800 Subject: [PATCH 742/888] build(deps): lock file maintenance npm (#915) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index be8c0c2d6..69da709f1 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.2.0", + "@apidevtools/json-schema-ref-parser": "^14.2.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "yaml": "^2.8.1" diff --git a/yarn.lock b/yarn.lock index 924ee5b31..cca41d105 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^14.2.0": - version "14.2.0" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.0.tgz#9129cdf6496f4524635f59e410c0985fe2a6fa48" - integrity sha512-NaGMMWwppbByagq+LwQMq6PMXHFWVu6kSwwx+eJfYTJ5zdpOvb9TIk6ZWxEEeXMUvGdVOZq3JalYsjsTZDvtkA== +"@apidevtools/json-schema-ref-parser@^14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.1.tgz#40040f6a9a250b92055723a76e48dde0efb9688b" + integrity sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg== dependencies: js-yaml "^4.1.0" From 7ddacb24d5f6e3033cc5d056913f0d24dd344145 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Sep 2025 18:28:48 +0800 Subject: [PATCH 743/888] build(deps): update module github.com/trim21/go-phpserialize to v0.1.2 (#914) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d934afaa3..3b766f868 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/spf13/pflag v1.0.7 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.6 - github.com/trim21/go-phpserialize v0.1.1 + github.com/trim21/go-phpserialize v0.1.2 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 753171cbd..4a9974a9a 100644 --- a/go.sum +++ b/go.sum @@ -229,8 +229,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/trim21/errgo v0.0.6 h1:Qz10hGY51k5u7ADRa/jqan8VaQYKx7hAqUJ6t5m42/I= github.com/trim21/errgo v0.0.6/go.mod h1:8uSKeZAGc+XDaPDqcgOCduVPb2Xpb1YxqxfMK1JcLlo= -github.com/trim21/go-phpserialize v0.1.1 h1:YDDTZ10D+xqWgvnaSeud90xHRb+51VBUiQYxRTZY11k= -github.com/trim21/go-phpserialize v0.1.1/go.mod h1:StH8iTviDvvY7dcMSNgRSzRzcuKmj2YZ/EETVRGlIws= +github.com/trim21/go-phpserialize v0.1.2 h1:pVkA5n4IeUxpJemGmCLZXFhnZs5wL6LCqofi++zMqDU= +github.com/trim21/go-phpserialize v0.1.2/go.mod h1:StH8iTviDvvY7dcMSNgRSzRzcuKmj2YZ/EETVRGlIws= github.com/trim21/htest v0.0.4 h1:dDIzKNdIClgtB158DlO+Xf0sfwNycmx3kfo/FJuY+eE= github.com/trim21/htest v0.0.4/go.mod h1:W+zaYAGCBqx38eMrMGvXrALnbcXR6OBtZiRiHahgo+E= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= From b7503c87dd7e6d7e43f46b0aee8ff1033f3ee909 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 17 Sep 2025 21:24:54 +0800 Subject: [PATCH 744/888] chore: add missing peer deps --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index 69da709f1..da980614f 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "yaml": "^2.8.1" }, "devDependencies": { + "@types/json-schema": "^7.0.15", "colors": "^1.4.0", "oas-validator": "^5.0.8", "prettier": "^3.6.2" diff --git a/yarn.lock b/yarn.lock index cca41d105..1fa93b854 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,6 +14,11 @@ resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" From 5d94c33c3c3784cf8ee3cb5b0cd99d158e541d89 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:30:16 +0800 Subject: [PATCH 745/888] ci: update requarks/changelog-action action to v1.10.3 (#921) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-github.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index 7d9af56e4..fe68ae48b 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -18,7 +18,7 @@ jobs: - name: Generate Changelog id: changelog - uses: requarks/changelog-action@v1.10.2 + uses: requarks/changelog-action@v1.10.3 with: token: ${{ github.token }} tag: ${{ github.ref_name }} From 89ede84d722ccf973ffa3bab0c49e28a2b05d1ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:32:40 +0800 Subject: [PATCH 746/888] build(deps): update module github.com/spf13/pflag to v1.0.10 (#919) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3b766f868..40cae7bc6 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.7 + github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.6 github.com/trim21/go-phpserialize v0.1.2 diff --git a/go.sum b/go.sum index 4a9974a9a..a0a70bfc2 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVO github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/pflag v1.0.7 h1:vN6T9TfwStFPFM5XzjsvmzZkLuaLX+HS+0SeFLRgU6M= -github.com/spf13/pflag v1.0.7/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= From f610dacc40eb8091a8016ee40ddc9b1b0de1a403 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:39:02 +0800 Subject: [PATCH 747/888] build(deps): update module github.com/spf13/cobra to v1.10.1 (#924) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 40cae7bc6..834847394 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/redis/rueidis v1.0.64 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 - github.com/spf13/cobra v1.9.1 + github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.10.0 github.com/trim21/errgo v0.0.6 diff --git a/go.sum b/go.sum index a0a70bfc2..e07ff6596 100644 --- a/go.sum +++ b/go.sum @@ -210,9 +210,9 @@ github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= +github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From 4ab467bb5c18f3592307676eb51e1737d0608e3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:39:22 +0800 Subject: [PATCH 748/888] build(deps): update module github.com/stretchr/testify to v1.11.1 (#925) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 834847394..341605e77 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/segmentio/kafka-go v0.4.48 github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.1 github.com/trim21/errgo v0.0.6 github.com/trim21/go-phpserialize v0.1.2 github.com/trim21/htest v0.0.4 diff --git a/go.sum b/go.sum index e07ff6596..b89fb7066 100644 --- a/go.sum +++ b/go.sum @@ -225,8 +225,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/trim21/errgo v0.0.6 h1:Qz10hGY51k5u7ADRa/jqan8VaQYKx7hAqUJ6t5m42/I= github.com/trim21/errgo v0.0.6/go.mod h1:8uSKeZAGc+XDaPDqcgOCduVPb2Xpb1YxqxfMK1JcLlo= github.com/trim21/go-phpserialize v0.1.2 h1:pVkA5n4IeUxpJemGmCLZXFhnZs5wL6LCqofi++zMqDU= From fca9b7448f52039233cfbe71ed983ef5738518bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:39:48 +0800 Subject: [PATCH 749/888] build(deps): update module golang.org/x/sync to v0.17.0 (#926) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 341605e77..213ffc93b 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.16.0 + golang.org/x/sync v0.17.0 golang.org/x/text v0.28.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 diff --git a/go.sum b/go.sum index b89fb7066..cd770aa3c 100644 --- a/go.sum +++ b/go.sum @@ -292,8 +292,8 @@ golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From bdc9b5ba81c054a658f03083735eba25c9e51a23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:40:04 +0800 Subject: [PATCH 750/888] build(deps): update aws-sdk-go-v2 monorepo (#922) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 213ffc93b..a5ed8f3b0 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.38.0 - github.com/aws/aws-sdk-go-v2/credentials v1.18.5 - github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0 + github.com/aws/aws-sdk-go-v2 v1.39.0 + github.com/aws/aws-sdk-go-v2/credentials v1.18.12 + github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/sonic/loader v0.3.0 // indirect diff --git a/go.sum b/go.sum index cd770aa3c..f3dadb27c 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.38.0 h1:UCRQ5mlqcFk9HJDIqENSLR3wiG1VTWlyUfLDEvY7RxU= -github.com/aws/aws-sdk-go-v2 v1.38.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 h1:6GMWV6CNpA/6fbFHnoAjrv4+LGfyTqZz2LtCHnspgDg= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0/go.mod h1:/mXlTIVG9jbxkqDnr5UQNQxW1HRYxeGklkM9vAFeabg= -github.com/aws/aws-sdk-go-v2/credentials v1.18.5 h1:DATc1xnpHUV8VgvtnVQul+zuCwK6vz7gtkbKEUZcuNI= -github.com/aws/aws-sdk-go-v2/credentials v1.18.5/go.mod h1:y7aigZzjm1jUZuCgOrlBng+VJrKkknY2Cl0JWxG7vHU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 h1:o9RnO+YZ4X+kt5Z7Nvcishlz0nksIt2PIzDglLMP0vA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3/go.mod h1:+6aLJzOG1fvMOyzIySYjOFjcguGvVRL68R+uoRencN4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 h1:joyyUFhiTQQmVK6ImzNU9TQSNRNeD9kOklqTzyk5v6s= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3/go.mod h1:+vNIyZQP3b3B1tSLI0lxvrU9cfM7gpdRXMFfm67ZcPc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 h1:ZV2XK2L3HBq9sCKQiQ/MdhZJppH/rH0vddEAamsHUIs= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3/go.mod h1:b9F9tk2HdHpbf3xbN7rUZcfmJI26N6NcJu/8OsBFI/0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 h1:3ZKmesYBaFX33czDl6mbrcHb6jeheg6LqjJhQdefhsY= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3/go.mod h1:7ryVb78GLCnjq7cw45N6oUb9REl7/vNUwjvIqC5UgdY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 h1:ieRzyHXypu5ByllM7Sp4hC5f/1Fy5wqxqY0yB85hC7s= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3/go.mod h1:O5ROz8jHiOAKAwx179v+7sHMhfobFVi6nZt8DEyiYoM= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 h1:SE/e52dq9a05RuxzLcjT+S5ZpQobj3ie3UTaSf2NnZc= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3/go.mod h1:zkpvBTsR020VVr8TOrwK2TrUW9pOir28sH5ECHpnAfo= -github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0 h1:egoDf+Geuuntmw79Mz6mk9gGmELCPzg5PFEABOHB+6Y= -github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0/go.mod h1:t9MDi29H+HDbkolTSQtbI0HP9DemAWQzUjmWC7LGMnE= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2 v1.39.0 h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4= +github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 h1:i8p8P4diljCr60PpJp6qZXNlgX4m2yQFpYk+9ZT+J4E= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1/go.mod h1:ddqbooRZYNoJ2dsTwOty16rM+/Aqmk/GOXrK8cg7V00= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12 h1:zmc9e1q90wMn8wQbjryy8IwA6Q4XlaL9Bx2zIqdNNbk= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12/go.mod h1:3VzdRDR5u3sSJRI4kYcOSIBbeYsgtVk7dG5R/U6qLWY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7 h1:BszAktdUo2xlzmYHjWMq70DqJ7cROM8iBd3f6hrpuMQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7/go.mod h1:XJ1yHki/P7ZPuG4fd3f0Pg/dSGA2cTQBCLw82MH2H48= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7 h1:zmZ8qvtE9chfhBPuKB2aQFxW5F/rpwXUgmcVCgQzqRw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7/go.mod h1:vVYfbpd2l+pKqlSIDIOgouxNsGu5il9uDp0ooWb0jys= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7 h1:u3VbDKUCWarWiU+aIUK4gjTr/wQFXV17y3hgNno9fcA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7/go.mod h1:/OuMQwhSyRapYxq6ZNpPer8juGNrB4P5Oz8bZ2cgjQE= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1 h1:+RpGuaQ72qnU83qBKVwxkznewEdAGhIWo/PQCmkhhog= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1/go.mod h1:xajPTguLoeQMAOE44AAP2RQoUhF8ey1g5IFHARv71po= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From 76f58d57f3b5c10fdb064e4f3aaba6b2487de209 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:40:26 +0800 Subject: [PATCH 751/888] build(deps): update module github.com/prometheus/client_golang to v1.23.2 (#917) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 7 ++++--- go.sum | 14 ++++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index a5ed8f3b0..168a4bdd6 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.33.2 github.com/mitchellh/mapstructure v1.5.0 - github.com/prometheus/client_golang v1.23.0 + github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.64 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.48 @@ -94,7 +94,7 @@ require ( github.com/pierrec/lz4/v4 v4.1.22 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.65.0 // indirect + github.com/prometheus/common v0.66.1 // indirect github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect @@ -109,6 +109,7 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/multierr v1.11.0 // indirect + go.yaml.in/yaml/v2 v2.4.2 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.41.0 // indirect @@ -119,7 +120,7 @@ require ( golang.org/x/term v0.34.0 // indirect golang.org/x/time v0.11.0 // indirect golang.org/x/tools v0.36.0 // indirect - google.golang.org/protobuf v1.36.6 // indirect + google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect gorm.io/hints v1.1.2 // indirect diff --git a/go.sum b/go.sum index f3dadb27c..e4a6d5b0b 100644 --- a/go.sum +++ b/go.sum @@ -187,12 +187,12 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc= -github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE= -github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/redis/rueidis v1.0.64 h1:XqgbueDuNV3qFdVdQwAHJl1uNt90zUuAJuzqjH4cw6Y= @@ -266,6 +266,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= @@ -332,8 +334,8 @@ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= -google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 9071353c32c3a66e532647ef87a9b006209285ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:47:16 +0800 Subject: [PATCH 752/888] build(deps): update module golang.org/x/text to v0.29.0 (#927) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 168a4bdd6..95766f7ef 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.17.0 - golang.org/x/text v0.28.0 + golang.org/x/text v0.29.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.30.1 diff --git a/go.sum b/go.sum index e4a6d5b0b..b1d8cd1b8 100644 --- a/go.sum +++ b/go.sum @@ -323,8 +323,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 7ce6e3e325f2ee80a48229cecbc83bc969040a0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:47:36 +0800 Subject: [PATCH 753/888] build(deps): update module gorm.io/gorm to v1.31.0 (#928) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 95766f7ef..64e55c529 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( golang.org/x/text v0.29.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 - gorm.io/gorm v1.30.1 + gorm.io/gorm v1.31.0 gorm.io/plugin/dbresolver v1.6.2 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index b1d8cd1b8..5c592b818 100644 --- a/go.sum +++ b/go.sum @@ -349,8 +349,9 @@ gorm.io/driver/mysql v1.6.0/go.mod h1:D/oCC2GWK3M/dqoLxnOlaNKmXz8WNTfcS9y5ovaSqK gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= gorm.io/driver/sqlite v1.1.3/go.mod h1:AKDgRWk8lcSQSw+9kxCJnX/yySj8G3rdwYlU57cB45c= -gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c= gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I= +gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ= +gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8= gorm.io/driver/sqlserver v1.5.4 h1:xA+Y1KDNspv79q43bPyjDMUgHoYHLhXYmdFcYPobg8g= gorm.io/driver/sqlserver v1.5.4/go.mod h1:+frZ/qYmuna11zHPlh5oc2O6ZA/lS88Keb0XSH1Zh/g= gorm.io/gen v0.3.27 h1:ziocAFLpE7e0g4Rum69pGfB9S6DweTxK8gAun7cU8as= @@ -359,8 +360,8 @@ gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.30.1 h1:lSHg33jJTBxs2mgJRfRZeLDG+WZaHYCk3Wtfl6Ngzo4= -gorm.io/gorm v1.30.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE= +gorm.io/gorm v1.31.0 h1:0VlycGreVhK7RF/Bwt51Fk8v0xLiiiFdbGDPIZQ7mJY= +gorm.io/gorm v1.31.0/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.6.2 h1:F4b85TenghUeITqe3+epPSUtHH7RIk3fXr5l83DF8Pc= From 77d5943500b5464259aadbbef154584a485becb5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:49:09 +0800 Subject: [PATCH 754/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.34.0 (#923) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 64e55c529..da07bbd48 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.33.2 + github.com/meilisearch/meilisearch-go v0.34.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.64 diff --git a/go.sum b/go.sum index 5c592b818..66296efc0 100644 --- a/go.sum +++ b/go.sum @@ -166,8 +166,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.33.2 h1:YgsQSLYhAkRN2ias6I1KNRTjdYCN5w2uHbLUQ+xgrws= -github.com/meilisearch/meilisearch-go v0.33.2/go.mod h1:6eOPcQ+OAuwXvnONlfSgfgvr7TIAWM/6OdhcVHg8cF0= +github.com/meilisearch/meilisearch-go v0.34.0 h1:P+Ohdx4/PCxXaoI5wNi0LMwPkuiNrF/kGIzBrKYS4tw= +github.com/meilisearch/meilisearch-go v0.34.0/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From 4a14abeba87a0e69b2d4011efd229504b5b05926 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:49:30 +0800 Subject: [PATCH 755/888] build(deps): update module github.com/vektra/mockery/v3 to v3.5.5 (#920) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index da07bbd48..d799cec45 100644 --- a/go.mod +++ b/go.mod @@ -83,7 +83,7 @@ require ( github.com/knadh/koanf/providers/file v1.1.2 // indirect github.com/knadh/koanf/providers/posflag v0.1.0 // indirect github.com/knadh/koanf/providers/structs v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.2.1 // indirect + github.com/knadh/koanf/v2 v2.3.0 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect @@ -103,7 +103,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.5.3 // indirect + github.com/vektra/mockery/v3 v3.5.5 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index 66296efc0..50322d699 100644 --- a/go.sum +++ b/go.sum @@ -133,8 +133,8 @@ github.com/knadh/koanf/providers/posflag v0.1.0 h1:mKJlLrKPcAP7Ootf4pBZWJ6J+4wHY github.com/knadh/koanf/providers/posflag v0.1.0/go.mod h1:SYg03v/t8ISBNrMBRMlojH8OsKowbkXV7giIbBVgbz0= github.com/knadh/koanf/providers/structs v0.1.0 h1:wJRteCNn1qvLtE5h8KQBvLJovidSdntfdyIbbCzEyE0= github.com/knadh/koanf/providers/structs v0.1.0/go.mod h1:sw2YZ3txUcqA3Z27gPlmmBzWn1h8Nt9O6EP/91MkcWE= -github.com/knadh/koanf/v2 v2.2.1 h1:jaleChtw85y3UdBnI0wCqcg1sj1gPoz6D3caGNHtrNE= -github.com/knadh/koanf/v2 v2.2.1/go.mod h1:PSFru3ufQgTsI7IF+95rf9s8XA1+aHxKuO/W+dPoHEY= +github.com/knadh/koanf/v2 v2.3.0 h1:Qg076dDRFHvqnKG97ZEsi9TAg2/nFTa9hCdcSa1lvlM= +github.com/knadh/koanf/v2 v2.3.0/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -239,8 +239,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.5.3 h1:iY/kcs3djCjzNFMNu/U/Gij27OF1UF7TewnYwq6nbMs= -github.com/vektra/mockery/v3 v3.5.3/go.mod h1:6rmlzyACJQig1UFoUYyLMS/O+2aGz6BgKAO9C8t9/v0= +github.com/vektra/mockery/v3 v3.5.5 h1:1ExE+yqz3ytvEOe7pUH5VWIwmsYlSq+FjWPVVLdE8O4= +github.com/vektra/mockery/v3 v3.5.5/go.mod h1:Oti3Df0WP8wwT31yuVri3QNsDeMUQU5Q4QEg8EabaBw= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= From 045189d1019761dba6fa1ec81577184bed7db7c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:53:09 +0800 Subject: [PATCH 756/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.49 (#918) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 46 ++-------------------------------------------- 2 files changed, 3 insertions(+), 45 deletions(-) diff --git a/go.mod b/go.mod index d799cec45..4f12ee966 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.64 github.com/samber/lo v1.51.0 - github.com/segmentio/kafka-go v0.4.48 + github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index 50322d699..f1a1db9cd 100644 --- a/go.sum +++ b/go.sum @@ -115,7 +115,6 @@ github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -180,7 +179,6 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -208,8 +206,8 @@ github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= -github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= +github.com/segmentio/kafka-go v0.4.49 h1:GJiNX1d/g+kG6ljyJEoi9++PUMdXGAxb7JGPiDCuNmk= +github.com/segmentio/kafka-go v0.4.49/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -255,7 +253,6 @@ github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17 github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= go.uber.org/dig v1.19.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= go.uber.org/fx v1.24.0 h1:wE8mruvpg2kiiL1Vqd0CC+tr0/24XIB10Iwp2lLWzkg= @@ -272,68 +269,29 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 68a258630419d0fd491736bd7717c7de44b0308d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:53:16 +0800 Subject: [PATCH 757/888] build(deps): update module github.com/bytedance/sonic to v1.14.1 (#930) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 5 +++-- go.sum | 16 ++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 4f12ee966..3bd256367 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.18.12 github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.14.0 + github.com/bytedance/sonic v1.14.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -61,9 +61,10 @@ require ( github.com/aws/smithy-go v1.23.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect + github.com/bytedance/gopkg v0.1.3 // indirect github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudwego/base64x v0.1.5 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.9 // indirect diff --git a/go.sum b/go.sum index f1a1db9cd..175322c4d 100644 --- a/go.sum +++ b/go.sum @@ -39,16 +39,16 @@ github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oM github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= -github.com/bytedance/sonic v1.14.0 h1:/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ= -github.com/bytedance/sonic v1.14.0/go.mod h1:WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA= -github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= +github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= +github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w= +github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc= github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= -github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= +github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -117,7 +117,6 @@ github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2skhE= github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= @@ -134,7 +133,6 @@ github.com/knadh/koanf/providers/structs v0.1.0 h1:wJRteCNn1qvLtE5h8KQBvLJovidSd github.com/knadh/koanf/providers/structs v0.1.0/go.mod h1:sw2YZ3txUcqA3Z27gPlmmBzWn1h8Nt9O6EP/91MkcWE= github.com/knadh/koanf/v2 v2.3.0 h1:Qg076dDRFHvqnKG97ZEsi9TAg2/nFTa9hCdcSa1lvlM= github.com/knadh/koanf/v2 v2.3.0/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= -github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -219,7 +217,6 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= @@ -326,6 +323,5 @@ gorm.io/plugin/dbresolver v1.6.2 h1:F4b85TenghUeITqe3+epPSUtHH7RIk3fXr5l83DF8Pc= gorm.io/plugin/dbresolver v1.6.2/go.mod h1:tctw63jdrOezFR9HmrKnPkmig3m5Edem9fdxk9bQSzM= gorm.io/plugin/soft_delete v1.2.1 h1:qx9D/c4Xu6w5KT8LviX8DgLcB9hkKl6JC9f44Tj7cGU= gorm.io/plugin/soft_delete v1.2.1/go.mod h1:Zv7vQctOJTGOsJ/bWgrN1n3od0GBAZgnLjEx+cApLGk= -nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ= olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw= From b72397ac66438f021997a7a73b84cc113f9af5fa Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Wed, 17 Sep 2025 21:53:44 +0800 Subject: [PATCH 758/888] feat: update common (#916) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/vars/common b/pkg/vars/common index c9b3bd92b..d25583cd4 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit c9b3bd92bd97a8211428dae536c605eb8f353041 +Subproject commit d25583cd4a7edf9a8f03f5a68df4d83a984c7322 From 9150baafcc45d6b300bf8b985bd7158edd7aae2b Mon Sep 17 00:00:00 2001 From: Inchei Chan Date: Mon, 29 Sep 2025 15:29:13 +0800 Subject: [PATCH 759/888] feat(archive): export person appear eps (#932) --- cmd/archive/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index eda678bc5..e439f65fb 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -480,6 +480,7 @@ type SubjectPerson struct { PersonID model.PersonID `json:"person_id"` SubjectID model.SubjectID `json:"subject_id"` Position uint16 `json:"position"` + AppearEps string `json:"appear_eps"` } func exportSubjectPersonRelations(q *query.Query, w io.Writer) { @@ -496,6 +497,7 @@ func exportSubjectPersonRelations(q *query.Query, w io.Writer) { PersonID: rel.PersonID, SubjectID: rel.SubjectID, Position: rel.PrsnPosition, + AppearEps: rel.PrsnAppearEps, }) } } From ef438816150e73e7771f96ee0000f89e5629d4bc Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Mon, 29 Sep 2025 15:32:16 +0800 Subject: [PATCH 760/888] feat: update common (#931) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- pkg/vars/staffs.go.json | 3929 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 3664 insertions(+), 267 deletions(-) diff --git a/pkg/vars/common b/pkg/vars/common index d25583cd4..511d9e405 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit d25583cd4a7edf9a8f03f5a68df4d83a984c7322 +Subproject commit 511d9e4055e77aaff166a446083c5054f34d9688 diff --git a/pkg/vars/staffs.go.json b/pkg/vars/staffs.go.json index 5e37186b6..3edd7d12b 100644 --- a/pkg/vars/staffs.go.json +++ b/pkg/vars/staffs.go.json @@ -7,113 +7,411 @@ "game": 4, "real": 6 }, + "categories": { + "anime": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ], + "game": [ + { + "order": 1, + "en": "producer", + "cn": "发行类" + }, + { + "order": 2, + "en": "director", + "cn": "导演类" + }, + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + }, + { + "order": 4, + "en": "design", + "cn": "设定类" + }, + { + "order": 5, + "en": "art", + "cn": "美术类" + }, + { + "order": 6, + "en": "animation", + "cn": "动画类" + }, + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + }, + { + "order": 0, + "en": "assistant", + "cn": "助理类" + } + ] + }, "types": { "anime": { "1": { "en": "Original Creator/Original Work", "cn": "原作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "2": { "en": "Director/Direction", "cn": "导演", "jp": "監督 シリーズ監督", - "rdf": "directedBy" + "rdf": "directedBy", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "3": { "en": "Script/Screenplay", "cn": "脚本", - "jp": "シナリオ" + "jp": "シナリオ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "4": { "en": "Storyboard", "cn": "分镜", - "jp": "コンテ ストーリーボード 画コンテ 絵コンテ" + "jp": "コンテ ストーリーボード 画コンテ 絵コンテ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "5": { "en": "Episode Direction", "cn": "演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "6": { "en": "Music", "cn": "音乐", - "jp": "楽曲 音楽" + "jp": "楽曲 音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "7": { "en": "Original Character Design", "cn": "人物原案", - "jp": "キャラ原案" + "jp": "キャラ原案", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "8": { "en": "Character Design", "cn": "人物设定", - "jp": "キャラ設定" + "jp": "キャラ設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "9": { "en": "Layout", "cn": "构图", - "jp": "レイアウト" + "jp": "レイアウト", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "10": { "en": "Series Composition", "cn": "系列构成", - "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成" + "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "11": { "en": "Art Direction", "cn": "美术监督", - "jp": "美術監督 アートディレクション 背景監督" + "jp": "美術監督 アートディレクション 背景監督", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "13": { "en": "Color Design", "cn": "色彩设计", - "jp": "色彩設定" + "jp": "色彩設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] }, "14": { "en": "Chief Animation Director", "cn": "总作画监督", - "jp": "チーフ作画監督" + "jp": "チーフ作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "15": { "en": "Animation Direction", "cn": "作画监督", - "jp": "作監 アニメーション演出" + "jp": "作監 アニメーション演出", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "16": { "en": "Mechanical Design", "cn": "机械设定", - "jp": "メカニック設定" + "jp": "メカニック設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "17": { "en": "Director of Photography", "cn": "摄影监督", - "jp": "撮影監督" + "jp": "撮影監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "18": { "en": "Supervision/Supervisor", "cn": "监修", - "jp": "シリーズ監修 スーパーバイザー" + "jp": "シリーズ監修 スーパーバイザー", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "19": { "en": "Prop Design", "cn": "道具设计", - "jp": "プロップデザイン" + "jp": "プロップデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "20": { "en": "Key Animation", "cn": "原画", - "jp": "作画 原画" + "jp": "作画 原画", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "21": { "en": "2nd Key Animation", "cn": "第二原画", - "jp": "原画協力" + "jp": "原画協力", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "22": { "en": "Animation Check", "cn": "动画检查", - "jp": "動画チェック" + "jp": "動画チェック", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "23": { "en": "Assistant Producer", @@ -123,496 +421,1937 @@ "24": { "en": "Associate Producer", "cn": "制作助理", - "jp": "製作補佐 アソシエイトプロデューサー" + "jp": "製作補佐 アソシエイトプロデューサー", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "25": { "en": "Background Art", "cn": "背景美术", - "jp": "背景" + "jp": "背景", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "26": { "en": "Color Setting", "cn": "色彩指定", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] }, "27": { "en": "Digital Paint", "cn": "数码绘图", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "28": { "en": "Editing", "cn": "剪辑", - "jp": "編集" + "jp": "編集", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "29": { "en": "Original Plan", "cn": "原案", - "jp": "" + "jp": "", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "30": { "en": "Theme Song Arrangement", "cn": "主题歌编曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "31": { "en": "Theme Song Composition", "cn": "主题歌作曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "32": { "en": "Theme Song Lyrics", "cn": "主题歌作词", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "33": { "en": "Theme Song Performance", "cn": "主题歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "34": { "en": "Inserted Song Performance", "cn": "插入歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "35": { "en": "Planning", "cn": "企画", - "jp": "プランニング 企画開発" + "jp": "プランニング 企画開発", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "36": { "en": "Planning Producer", "cn": "企划制作人", - "jp": "企画プロデューサー 企画営業プロデューサー" + "jp": "企画プロデューサー 企画営業プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "37": { "en": "Production Manager", "cn": "制作管理", - "jp": "制作マネージャー 制作担当 制作班長" + "jp": "制作マネージャー 制作担当 制作班長", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "38": { "en": "Publicity", "cn": "宣传", - "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝" + "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "39": { "en": "Recording", "cn": "录音", - "jp": "録音" + "jp": "録音", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "40": { "en": "Recording Assistant", "cn": "录音助理", - "jp": "録音アシスタント 録音助手" + "jp": "録音アシスタント 録音助手", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "41": { "en": "Series Production Director", "cn": "系列监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "42": { "en": "Production", "cn": "製作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "43": { "en": "Setting", "cn": "设定", - "jp": "設定" + "jp": "設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "44": { "en": "Sound Director", "cn": "音响监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "45": { "en": "Sound", "cn": "音响", - "jp": "音響 音声" + "jp": "音響 音声", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "46": { "en": "Sound Effects", "cn": "音效", - "jp": "音響効果" + "jp": "音響効果", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "47": { "en": "Special Effects", "cn": "特效", - "jp": "視覚効果" + "jp": "特殊効果", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] }, "48": { "en": "ADR Director", "cn": "配音监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "49": { "en": "Co-Director", "cn": "联合导演", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "50": { "en": "Setting", "cn": "背景设定", - "jp": "基本設定 場面設定 場面設計 設定" + "jp": "基本設定 場面設定 場面設計 設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "51": { "en": "In-Between Animation", "cn": "补间动画", - "jp": "動画" + "jp": "動画", + "categories": [ + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "52": { "en": "Executive Producer", "cn": "执行制片人", - "jp": "製作総指揮" + "jp": "製作総指揮", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "53": { "en": "Assistant Producer", "cn": "助理制片人", - "jp": "協力プロデューサー アシスタントプロデューサー" + "jp": "協力プロデューサー アシスタントプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "54": { "en": "Producer", "cn": "制片人", - "jp": "プロデュース プロデューサー" + "jp": "プロデュース プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "55": { "en": "Music Assistant", "cn": "音乐助理", - "jp": "音楽アシスタント" + "jp": "音楽アシスタント", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "56": { "en": "Assistant Production Manager", "cn": "制作进行", "jp": "制作進行", - "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等" + "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "57": { "en": "Casting Director", "cn": "演员监督", - "jp": "キャスティングコーディネーター監督" + "jp": "キャスティングコーディネーター監督", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "58": { "en": "Chief Producer", "cn": "总制片人", - "jp": "チーフプロデューサー チーフ制作 総合プロデューサー" + "jp": "チーフプロデューサー チーフ制作 総合プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "59": { "en": "Co-Producer", "cn": "联合制片人", - "jp": "" + "jp": "", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "60": { "en": "Dialogue Editing", "cn": "台词编辑", - "jp": "台詞編集" + "jp": "台詞編集", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "61": { "en": "Post-Production Assistant", "cn": "后期制片协调", - "jp": "ポストプロダクション協力" + "jp": "ポストプロダクション協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "62": { "en": "Production Assistant", "cn": "制作助理", - "jp": "制作アシスタント 制作補佐 製作補" + "jp": "制作アシスタント 制作補佐 製作補", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "63": { "en": "Production", "cn": "制作", - "jp": "製作 製作スタジオ" + "jp": "製作 製作スタジオ", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "64": { "en": "Production Coordination", "cn": "制作协调", - "jp": "制作コーディネーター" + "jp": "制作コーディネーター", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "65": { "en": "Music Work", "cn": "音乐制作", - "jp": "楽曲制作 音楽制作" + "jp": "楽曲制作 音楽制作", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "66": { "en": "Special Thanks", "cn": "特别鸣谢", - "jp": "友情協力" + "jp": "友情協力", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "67": { "en": "Animation Work", "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション" + "jp": "アニメーション制作 アニメ制作 アニメーション", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "69": { "en": "CG Director", "cn": "CG 导演", - "jp": "CG 監督" + "jp": "CG 監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "70": { "en": "Mechanical Animation Direction", "cn": "机械作画监督", - "jp": "メカニック作監" + "jp": "メカニック作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "71": { "en": "Art Design", "cn": "美术设计", - "jp": "美術設定" + "jp": "美術設定", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "72": { "en": "Assistant Director", "cn": "副导演", - "jp": "助監督 / 監督補佐" + "jp": "助監督 / 監督補佐", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "73": { "en": "OP ED", "cn": "OP・ED 分镜", - "jp": "OP・ED 分鏡" + "jp": "OP・ED 分鏡", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "74": { "en": "Chief Director", "cn": "总导演", - "jp": "総監督" + "jp": "総監督 / チーフディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "75": { "en": "3DCG", "cn": "3DCG", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "76": { "en": "Work Assistance", "cn": "制作协力", - "jp": "制作協力 / 作品協力" + "jp": "制作協力 / 作品協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "77": { "en": "Action Animation Direction", "cn": "动作作画监督", - "jp": "アクション作画監督" + "jp": "アクション作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "80": { "en": "Supervising Producer", "cn": "监制", - "jp": "" + "jp": "プロデュース", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "81": { "en": "Assistance", "cn": "协力", - "jp": "協力" + "jp": "協力", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "82": { "en": "Photography", "cn": "摄影", - "jp": "撮影" + "jp": "撮影", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "83": { "en": "Assistant Production Manager Assistance", "cn": "制作进行协力", - "jp": "制作進行協力" + "jp": "制作進行協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "84": { "en": "Design Manager", "cn": "设定制作", "jp": "設定制作 制作設定", - "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "85": { "en": "Music Producer", "cn": "音乐制作人", - "jp": "音楽プロデューサー" + "jp": "音楽プロデューサー", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "86": { "en": "3DCG Director", "cn": "3DCG 导演", - "jp": "3DCG 監督" + "jp": "3DCG 監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "87": { "en": "Animation Producer", "cn": "动画制片人", - "jp": "アニメプロデューサー アニメーションプロデューサー" + "jp": "アニメプロデューサー アニメーションプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "88": { "en": "Special Effects Animation Direction", "cn": "特效作画监督", - "jp": "エフェクト作画監督" + "jp": "エフェクト作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] }, "89": { "en": "Chief Episode Direction", "cn": "主演出", - "jp": "チーフ演出" + "jp": "チーフ演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "90": { "en": "Assistant Animation Direction", "cn": "作画监督助理", - "jp": "作画監督補佐" + "jp": "作画監督補佐", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "91": { "en": "Assistant Episode Direction", "cn": "演出助理", - "jp": "演出助手 演出補佐 演出協力" + "jp": "演出助手 演出補佐 演出協力", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "92": { "en": "Main Animator", "cn": "主动画师", - "jp": "メインアニメーター" + "jp": "メインアニメーター", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "93": { + "en": "", + "cn": "上色", + "jp": "仕上", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "94": { + "en": "", + "cn": "上色检查", + "jp": "仕上検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "95": { + "en": "", + "cn": "色彩检查", + "jp": "色検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "96": { + "en": "", + "cn": "美术板", + "jp": "美術ボード", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + } + ] + }, + "97": { + "en": "", + "cn": "美术", + "jp": "美術", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + } + ] + }, + "98": { + "en": "", + "cn": "印象板", + "jp": "イメージボード", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "99": { + "en": "2D WORKS", + "cn": "2D 设计", + "jp": "2D ワークス", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "100": { + "en": "3D WORKS", + "cn": "3D 设计", + "jp": "3D ワークス", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "101": { + "en": "Technical Director", + "cn": "技术导演", + "jp": "テクニカルディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "102": { + "en": "", + "cn": "特技导演", + "jp": "特撮監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "103": { + "en": "Color Script", + "cn": "色彩脚本", + "jp": "カラースクリプト", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "104": { + "en": "", + "cn": "分镜协力", + "jp": "絵コンテ協力 コンテ協力", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "105": { + "en": "", + "cn": "分镜抄写", + "jp": "絵コンテ清書 コンテ清書", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "106": { + "en": "Sub-Character Design", + "cn": "副人物设定", + "jp": "サブキャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "107": { + "en": "Guest character design", + "cn": "客座人物设定", + "jp": "ゲストキャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "108": { + "en": "", + "cn": "构图监修", + "jp": "レイアウト監修", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "109": { + "en": "", + "cn": "构图作画监督", + "jp": "レイアウト作画監督 レイアウト作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "110": { + "en": "", + "cn": "总作画监督助理", + "jp": "総作画監督補佐 総作監補佐", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "111": { + "en": "", + "cn": "道具作画监督", + "jp": "プロップ作画監督 プロップ作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "112": { + "en": "Concept Design", + "cn": "概念设计", + "jp": "コンセプトデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "113": { + "en": "Costume Design", + "cn": "服装设计", + "jp": "衣装デザイン 衣装設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "114": { + "en": "Title Design", + "cn": "标题设计", + "jp": "タイトルデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "115": { + "en": "Setting Cooperation", + "cn": "设定协力", + "jp": "設定協力 デザイン協力", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "116": { + "en": "Music Director", + "cn": "音乐监督", + "jp": "音楽ディレクター", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "117": { + "en": "Music Selection", + "cn": "选曲", + "jp": "選曲", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "118": { + "en": "Inserted Song Lyrics", + "cn": "插入歌作词", + "jp": "Insert Song Lyrics", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "119": { + "en": "Inserted Song Composition", + "cn": "插入歌作曲", + "jp": "Insert Song Composition", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "120": { + "en": "Inserted Song Arrangement", + "cn": "插入歌编曲", + "jp": "Insert Song Arrangement", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "121": { + "en": "Creative Producer", + "cn": "创意制片人", + "jp": "クリエイティブプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] + }, + "122": { + "en": "Associate Producer", + "cn": "副制片人", + "jp": "アソシエイトプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "123": { + "en": "Chief Production Supervisor", + "cn": "制作统括", + "jp": "制作統括", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "124": { + "en": "Line Producer", + "cn": "现场制片人", + "jp": "ラインプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "125": { + "en": "Literary Producer", + "cn": "文艺制作", + "jp": "文芸制作", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] + }, + "127": { + "en": "Planning Cooperation", + "cn": "企画协力", + "jp": "企画協力", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "128": { + "en": "OP・ED Direction", + "cn": "OP・ED 演出", + "jp": "OP・ED 演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "129": { + "en": "Bank Storyboard Direction", + "cn": "Bank 分镜演出", + "jp": "バンク コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "130": { + "en": "Live Storyboard Direction", + "cn": "Live 分镜演出", + "jp": "ライブ コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "131": { + "en": "Meta-story Storyboard Direction", + "cn": "剧中剧分镜演出", + "jp": "劇中劇 コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "132": { + "en": "Meta-story Character Design", + "cn": "剧中剧人设", + "jp": "劇中劇 キャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "133": { + "en": "Visual Director", + "cn": "视觉导演", + "jp": "ビジュアルディレクター", + "categories": [ + { + "order": 11, + "en": "visual", + "cn": "视觉类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "134": { + "en": "Creative Supervisor/Director", + "cn": "创意总监", + "jp": "クリエイティブスーパーバイザー クリエイティブディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "135": { + "en": "Tokusatsu Effects", + "cn": "特摄效果", + "jp": "特撮", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] + }, + "136": { + "en": "Visual Effects", + "cn": "视觉效果", + "jp": "ビジュアルエフェクト", + "categories": [ + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] + }, + "137": { + "en": "", + "cn": "动作导演", + "jp": "アクション監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] } }, "game": { "1001": { "en": "Developer", "cn": "开发", - "jp": "開発元" + "jp": "開発元", + "categories": [ + { + "order": 1, + "en": "producer", + "cn": "发行类" + } + ] }, "1002": { "en": "Publisher", "cn": "发行", - "jp": "発売元" + "jp": "発売元", + "categories": [ + { + "order": 1, + "en": "producer", + "cn": "发行类" + } + ] }, "1003": { "en": "Game Designer", "cn": "游戏设计师", - "jp": "ゲームクリエイター" + "jp": "ゲームクリエイター", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1004": { "en": "", "cn": "剧本", - "jp": "腳本" + "jp": "腳本", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] }, "1005": { "en": "", "cn": "美工", - "jp": "美術" + "jp": "美術", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1006": { "en": "", "cn": "音乐", - "jp": "音楽" + "jp": "音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1007": { "en": "", "cn": "关卡设计", - "jp": "" + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1008": { "en": "Character Design", "cn": "人物设定", - "jp": "キャラ設定 キャラクターデザイン" + "jp": "キャラ設定 キャラクターデザイン", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1009": { "en": "Theme Song Composition", "cn": "主题歌作曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1010": { "en": "Theme Song Lyrics", "cn": "主题歌作词", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1011": { "en": "Theme Song Performance", "cn": "主题歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1012": { "en": "Inserted Song Performance", "cn": "插入歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1013": { "en": "", "cn": "原画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1014": { "en": "Animation Work", "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション" + "jp": "アニメーション制作 アニメ制作 アニメーション", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1015": { "en": "", "cn": "原作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1016": { "en": "Director/Direction", "cn": "导演", - "jp": "監督 演出 シリーズ監督" + "jp": "監督 演出 シリーズ監督", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1017": { "en": "", "cn": "动画监督", - "jp": "アニメーション監督" + "jp": "アニメーション監督", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1018": { "en": "", "cn": "制作总指挥", - "jp": "" + "jp": "", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1019": { "en": "QC", "cn": "QC", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1020": { "en": "", "cn": "动画剧本", - "jp": "アニメーション脚本" + "jp": "アニメーション脚本", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1021": { "en": "Program", "cn": "程序", - "jp": "プログラム" + "jp": "プログラム", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1022": { "en": "", "cn": "协力", - "jp": "協力" + "jp": "協力", + "categories": [ + { + "order": 0, + "en": "assistant", + "cn": "助理类" + } + ] }, "1023": { "en": "", "cn": "CG 监修", - "jp": "CG 監修" + "jp": "CG 監修", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1024": { "en": "", "cn": "SD原画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1025": { "en": "", "cn": "背景", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1026": { "en": "", "cn": "监修", - "jp": "監修" + "jp": "監修", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1027": { "en": "", "cn": "系列构成", - "jp": "シリーズ構成" + "jp": "シリーズ構成", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] }, "1028": { "en": "", "cn": "企画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1029": { "en": "Mechanical Design", "cn": "机械设定", - "jp": "メカニック設定" + "jp": "メカニック設定", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1030": { "en": "Sound Director", "cn": "音响监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1031": { "en": "", "cn": "作画监督", - "jp": "作画監督" + "jp": "作画監督", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1032": { "en": "Producer", "cn": "制作人", - "jp": "プロデューサー" + "jp": "プロデューサー", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] + }, + "1033": { + "en": "Cover Art", + "cn": "海报", + "jp": "表紙", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] } }, "book": { @@ -761,72 +2500,72 @@ }, "real": { "4001": { - "en": "creator", + "en": "Creator", "cn": "原作", "jp": "" }, "4002": { - "en": "director", + "en": "Director", "cn": "导演", "jp": "" }, "4003": { - "en": "writer", + "en": "Writer", "cn": "编剧", "jp": "" }, "4004": { - "en": "composer", + "en": "Composer", "cn": "音乐", "jp": "" }, "4005": { - "en": "executive producer", + "en": "Executive Producer", "cn": "执行制片人", "jp": "製作総指揮" }, "4006": { - "en": "co exec", + "en": "Co-Executive Producer", "cn": "共同执行制作", "jp": "" }, "4007": { - "en": "producer", + "en": "Producer", "cn": "制片人/制作人", "jp": "プロデューサー" }, "4008": { - "en": "supervising producer", + "en": "Supervising Producer", "cn": "监制", "jp": "" }, "4009": { - "en": "consulting producer", + "en": "Consulting Producer", "cn": "副制作人/制作顾问", "jp": "" }, "4010": { - "en": "story", + "en": "Story", "cn": "故事", "jp": "" }, "4011": { - "en": "story editor", + "en": "Story Editor", "cn": "编审", "jp": "" }, "4012": { - "en": "editor", + "en": "Editor", "cn": "剪辑", "jp": "" }, "4013": { - "en": "creative director", + "en": "Creative Director", "cn": "创意总监", "jp": "" }, "4014": { - "en": "cinematography", + "en": "Cinematography", "cn": "摄影", "jp": "" }, @@ -854,6 +2593,21 @@ "en": "Present", "cn": "出品", "jp": "配給" + }, + "4020": { + "en": "ADR Director", + "cn": "配音导演", + "jp": "" + }, + "4021": { + "en": "Recording", + "cn": "录音", + "jp": "録音" + }, + "4022": { + "en": "Poster", + "cn": "海报", + "jp": "" } } } @@ -930,108 +2684,295 @@ "1": { "en": "Original Creator/Original Work", "cn": "原作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "2": { "en": "Director/Direction", "cn": "导演", "jp": "監督 シリーズ監督", - "rdf": "directedBy" + "rdf": "directedBy", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "3": { "en": "Script/Screenplay", "cn": "脚本", - "jp": "シナリオ" + "jp": "シナリオ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "4": { "en": "Storyboard", "cn": "分镜", - "jp": "コンテ ストーリーボード 画コンテ 絵コンテ" + "jp": "コンテ ストーリーボード 画コンテ 絵コンテ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "5": { "en": "Episode Direction", "cn": "演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "6": { "en": "Music", "cn": "音乐", - "jp": "楽曲 音楽" + "jp": "楽曲 音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "7": { "en": "Original Character Design", "cn": "人物原案", - "jp": "キャラ原案" + "jp": "キャラ原案", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "8": { "en": "Character Design", "cn": "人物设定", - "jp": "キャラ設定" + "jp": "キャラ設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "9": { "en": "Layout", "cn": "构图", - "jp": "レイアウト" + "jp": "レイアウト", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "10": { "en": "Series Composition", "cn": "系列构成", - "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成" + "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "11": { "en": "Art Direction", "cn": "美术监督", - "jp": "美術監督 アートディレクション 背景監督" + "jp": "美術監督 アートディレクション 背景監督", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "13": { "en": "Color Design", "cn": "色彩设计", - "jp": "色彩設定" + "jp": "色彩設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] }, "14": { "en": "Chief Animation Director", "cn": "总作画监督", - "jp": "チーフ作画監督" + "jp": "チーフ作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "15": { "en": "Animation Direction", "cn": "作画监督", - "jp": "作監 アニメーション演出" + "jp": "作監 アニメーション演出", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "16": { "en": "Mechanical Design", "cn": "机械设定", - "jp": "メカニック設定" + "jp": "メカニック設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "17": { "en": "Director of Photography", "cn": "摄影监督", - "jp": "撮影監督" + "jp": "撮影監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "18": { "en": "Supervision/Supervisor", "cn": "监修", - "jp": "シリーズ監修 スーパーバイザー" + "jp": "シリーズ監修 スーパーバイザー", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "19": { "en": "Prop Design", "cn": "道具设计", - "jp": "プロップデザイン" + "jp": "プロップデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "20": { "en": "Key Animation", "cn": "原画", - "jp": "作画 原画" + "jp": "作画 原画", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "21": { "en": "2nd Key Animation", "cn": "第二原画", - "jp": "原画協力" + "jp": "原画協力", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "22": { "en": "Animation Check", "cn": "动画检查", - "jp": "動画チェック" + "jp": "動画チェック", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "23": { "en": "Assistant Producer", @@ -1041,334 +2982,1539 @@ "24": { "en": "Associate Producer", "cn": "制作助理", - "jp": "製作補佐 アソシエイトプロデューサー" + "jp": "製作補佐 アソシエイトプロデューサー", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "25": { "en": "Background Art", "cn": "背景美术", - "jp": "背景" + "jp": "背景", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "26": { "en": "Color Setting", "cn": "色彩指定", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] }, "27": { "en": "Digital Paint", "cn": "数码绘图", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "28": { "en": "Editing", "cn": "剪辑", - "jp": "編集" + "jp": "編集", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "29": { "en": "Original Plan", "cn": "原案", - "jp": "" + "jp": "", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "30": { "en": "Theme Song Arrangement", "cn": "主题歌编曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "31": { "en": "Theme Song Composition", "cn": "主题歌作曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "32": { "en": "Theme Song Lyrics", "cn": "主题歌作词", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "33": { "en": "Theme Song Performance", "cn": "主题歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "34": { "en": "Inserted Song Performance", "cn": "插入歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "35": { "en": "Planning", "cn": "企画", - "jp": "プランニング 企画開発" + "jp": "プランニング 企画開発", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "36": { "en": "Planning Producer", "cn": "企划制作人", - "jp": "企画プロデューサー 企画営業プロデューサー" + "jp": "企画プロデューサー 企画営業プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "37": { "en": "Production Manager", "cn": "制作管理", - "jp": "制作マネージャー 制作担当 制作班長" + "jp": "制作マネージャー 制作担当 制作班長", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "38": { "en": "Publicity", "cn": "宣传", - "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝" + "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "39": { "en": "Recording", "cn": "录音", - "jp": "録音" + "jp": "録音", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "40": { "en": "Recording Assistant", "cn": "录音助理", - "jp": "録音アシスタント 録音助手" + "jp": "録音アシスタント 録音助手", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "41": { "en": "Series Production Director", "cn": "系列监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "42": { "en": "Production", "cn": "製作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "43": { "en": "Setting", "cn": "设定", - "jp": "設定" + "jp": "設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "44": { "en": "Sound Director", "cn": "音响监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "45": { "en": "Sound", "cn": "音响", - "jp": "音響 音声" + "jp": "音響 音声", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "46": { "en": "Sound Effects", "cn": "音效", - "jp": "音響効果" + "jp": "音響効果", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "47": { "en": "Special Effects", "cn": "特效", - "jp": "視覚効果" + "jp": "特殊効果", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] }, "48": { "en": "ADR Director", "cn": "配音监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "49": { "en": "Co-Director", "cn": "联合导演", - "jp": "" + "jp": "", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "50": { "en": "Setting", "cn": "背景设定", - "jp": "基本設定 場面設定 場面設計 設定" + "jp": "基本設定 場面設定 場面設計 設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "51": { "en": "In-Between Animation", "cn": "补间动画", - "jp": "動画" + "jp": "動画", + "categories": [ + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "52": { "en": "Executive Producer", "cn": "执行制片人", - "jp": "製作総指揮" + "jp": "製作総指揮", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "53": { "en": "Assistant Producer", "cn": "助理制片人", - "jp": "協力プロデューサー アシスタントプロデューサー" + "jp": "協力プロデューサー アシスタントプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "54": { "en": "Producer", "cn": "制片人", - "jp": "プロデュース プロデューサー" + "jp": "プロデュース プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "55": { "en": "Music Assistant", "cn": "音乐助理", - "jp": "音楽アシスタント" + "jp": "音楽アシスタント", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "56": { "en": "Assistant Production Manager", "cn": "制作进行", "jp": "制作進行", - "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等" + "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "57": { "en": "Casting Director", "cn": "演员监督", - "jp": "キャスティングコーディネーター監督" + "jp": "キャスティングコーディネーター監督", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "58": { "en": "Chief Producer", "cn": "总制片人", - "jp": "チーフプロデューサー チーフ制作 総合プロデューサー" + "jp": "チーフプロデューサー チーフ制作 総合プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "59": { "en": "Co-Producer", "cn": "联合制片人", - "jp": "" + "jp": "", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "60": { "en": "Dialogue Editing", "cn": "台词编辑", - "jp": "台詞編集" + "jp": "台詞編集", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "61": { "en": "Post-Production Assistant", "cn": "后期制片协调", - "jp": "ポストプロダクション協力" + "jp": "ポストプロダクション協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "62": { "en": "Production Assistant", "cn": "制作助理", - "jp": "制作アシスタント 制作補佐 製作補" + "jp": "制作アシスタント 制作補佐 製作補", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "63": { "en": "Production", "cn": "制作", - "jp": "製作 製作スタジオ" + "jp": "製作 製作スタジオ", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "64": { "en": "Production Coordination", "cn": "制作协调", - "jp": "制作コーディネーター" + "jp": "制作コーディネーター", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "65": { "en": "Music Work", "cn": "音乐制作", - "jp": "楽曲制作 音楽制作" + "jp": "楽曲制作 音楽制作", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "66": { "en": "Special Thanks", "cn": "特别鸣谢", - "jp": "友情協力" + "jp": "友情協力", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "67": { "en": "Animation Work", "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション" + "jp": "アニメーション制作 アニメ制作 アニメーション", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "69": { "en": "CG Director", "cn": "CG 导演", - "jp": "CG 監督" + "jp": "CG 監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "70": { "en": "Mechanical Animation Direction", "cn": "机械作画监督", - "jp": "メカニック作監" + "jp": "メカニック作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "71": { "en": "Art Design", "cn": "美术设计", - "jp": "美術設定" + "jp": "美術設定", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "72": { "en": "Assistant Director", "cn": "副导演", - "jp": "助監督 / 監督補佐" + "jp": "助監督 / 監督補佐", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "73": { "en": "OP ED", "cn": "OP・ED 分镜", - "jp": "OP・ED 分鏡" + "jp": "OP・ED 分鏡", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] }, "74": { "en": "Chief Director", "cn": "总导演", - "jp": "総監督" + "jp": "総監督 / チーフディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] }, "75": { "en": "3DCG", "cn": "3DCG", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "76": { "en": "Work Assistance", "cn": "制作协力", - "jp": "制作協力 / 作品協力" + "jp": "制作協力 / 作品協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "77": { "en": "Action Animation Direction", "cn": "动作作画监督", - "jp": "アクション作画監督" + "jp": "アクション作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "80": { "en": "Supervising Producer", "cn": "监制", - "jp": "" + "jp": "プロデュース", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "81": { "en": "Assistance", "cn": "协力", - "jp": "協力" + "jp": "協力", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "82": { "en": "Photography", "cn": "摄影", - "jp": "撮影" + "jp": "撮影", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "83": { "en": "Assistant Production Manager Assistance", "cn": "制作进行协力", - "jp": "制作進行協力" + "jp": "制作進行協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "84": { "en": "Design Manager", "cn": "设定制作", "jp": "設定制作 制作設定", - "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付" + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] }, "85": { "en": "Music Producer", "cn": "音乐制作人", - "jp": "音楽プロデューサー" + "jp": "音楽プロデューサー", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "86": { "en": "3DCG Director", "cn": "3DCG 导演", - "jp": "3DCG 監督" + "jp": "3DCG 監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] }, "87": { "en": "Animation Producer", "cn": "动画制片人", - "jp": "アニメプロデューサー アニメーションプロデューサー" + "jp": "アニメプロデューサー アニメーションプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] }, "88": { "en": "Special Effects Animation Direction", "cn": "特效作画监督", - "jp": "エフェクト作画監督" + "jp": "エフェクト作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] }, "89": { "en": "Chief Episode Direction", "cn": "主演出", - "jp": "チーフ演出" + "jp": "チーフ演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] }, "90": { "en": "Assistant Animation Direction", "cn": "作画监督助理", - "jp": "作画監督補佐" + "jp": "作画監督補佐", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] }, "91": { "en": "Assistant Episode Direction", "cn": "演出助理", - "jp": "演出助手 演出補佐 演出協力" + "jp": "演出助手 演出補佐 演出協力", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, "92": { "en": "Main Animator", "cn": "主动画师", - "jp": "メインアニメーター" + "jp": "メインアニメーター", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "93": { + "en": "", + "cn": "上色", + "jp": "仕上", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "94": { + "en": "", + "cn": "上色检查", + "jp": "仕上検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "95": { + "en": "", + "cn": "色彩检查", + "jp": "色検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "96": { + "en": "", + "cn": "美术板", + "jp": "美術ボード", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + } + ] + }, + "97": { + "en": "", + "cn": "美术", + "jp": "美術", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + } + ] + }, + "98": { + "en": "", + "cn": "印象板", + "jp": "イメージボード", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "99": { + "en": "2D WORKS", + "cn": "2D 设计", + "jp": "2D ワークス", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "100": { + "en": "3D WORKS", + "cn": "3D 设计", + "jp": "3D ワークス", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "101": { + "en": "Technical Director", + "cn": "技术导演", + "jp": "テクニカルディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "102": { + "en": "", + "cn": "特技导演", + "jp": "特撮監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "103": { + "en": "Color Script", + "cn": "色彩脚本", + "jp": "カラースクリプト", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "104": { + "en": "", + "cn": "分镜协力", + "jp": "絵コンテ協力 コンテ協力", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "105": { + "en": "", + "cn": "分镜抄写", + "jp": "絵コンテ清書 コンテ清書", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "106": { + "en": "Sub-Character Design", + "cn": "副人物设定", + "jp": "サブキャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "107": { + "en": "Guest character design", + "cn": "客座人物设定", + "jp": "ゲストキャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "108": { + "en": "", + "cn": "构图监修", + "jp": "レイアウト監修", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "109": { + "en": "", + "cn": "构图作画监督", + "jp": "レイアウト作画監督 レイアウト作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "110": { + "en": "", + "cn": "总作画监督助理", + "jp": "総作画監督補佐 総作監補佐", + "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "111": { + "en": "", + "cn": "道具作画监督", + "jp": "プロップ作画監督 プロップ作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "112": { + "en": "Concept Design", + "cn": "概念设计", + "jp": "コンセプトデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "113": { + "en": "Costume Design", + "cn": "服装设计", + "jp": "衣装デザイン 衣装設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "114": { + "en": "Title Design", + "cn": "标题设计", + "jp": "タイトルデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "115": { + "en": "Setting Cooperation", + "cn": "设定协力", + "jp": "設定協力 デザイン協力", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "116": { + "en": "Music Director", + "cn": "音乐监督", + "jp": "音楽ディレクター", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "117": { + "en": "Music Selection", + "cn": "选曲", + "jp": "選曲", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "118": { + "en": "Inserted Song Lyrics", + "cn": "插入歌作词", + "jp": "Insert Song Lyrics", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "119": { + "en": "Inserted Song Composition", + "cn": "插入歌作曲", + "jp": "Insert Song Composition", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "120": { + "en": "Inserted Song Arrangement", + "cn": "插入歌编曲", + "jp": "Insert Song Arrangement", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "121": { + "en": "Creative Producer", + "cn": "创意制片人", + "jp": "クリエイティブプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] + }, + "122": { + "en": "Associate Producer", + "cn": "副制片人", + "jp": "アソシエイトプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "123": { + "en": "Chief Production Supervisor", + "cn": "制作统括", + "jp": "制作統括", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "124": { + "en": "Line Producer", + "cn": "现场制片人", + "jp": "ラインプロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "125": { + "en": "Literary Producer", + "cn": "文艺制作", + "jp": "文芸制作", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] + }, + "127": { + "en": "Planning Cooperation", + "cn": "企画协力", + "jp": "企画協力", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "128": { + "en": "OP・ED Direction", + "cn": "OP・ED 演出", + "jp": "OP・ED 演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "129": { + "en": "Bank Storyboard Direction", + "cn": "Bank 分镜演出", + "jp": "バンク コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "130": { + "en": "Live Storyboard Direction", + "cn": "Live 分镜演出", + "jp": "ライブ コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "131": { + "en": "Meta-story Storyboard Direction", + "cn": "剧中剧分镜演出", + "jp": "劇中劇 コンテ・演出", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "132": { + "en": "Meta-story Character Design", + "cn": "剧中剧人设", + "jp": "劇中劇 キャラクターデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "133": { + "en": "Visual Director", + "cn": "视觉导演", + "jp": "ビジュアルディレクター", + "categories": [ + { + "order": 11, + "en": "visual", + "cn": "视觉类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "134": { + "en": "Creative Supervisor/Director", + "cn": "创意总监", + "jp": "クリエイティブスーパーバイザー クリエイティブディレクター", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "135": { + "en": "Tokusatsu Effects", + "cn": "特摄效果", + "jp": "特撮", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] + }, + "136": { + "en": "Visual Effects", + "cn": "视觉效果", + "jp": "ビジュアルエフェクト", + "categories": [ + { + "order": 11, + "en": "visual", + "cn": "视觉类" + } + ] + }, + "137": { + "en": "", + "cn": "动作导演", + "jp": "アクション監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] } }, "3": { @@ -1452,232 +4598,468 @@ "1001": { "en": "Developer", "cn": "开发", - "jp": "開発元" + "jp": "開発元", + "categories": [ + { + "order": 1, + "en": "producer", + "cn": "发行类" + } + ] }, "1002": { "en": "Publisher", "cn": "发行", - "jp": "発売元" + "jp": "発売元", + "categories": [ + { + "order": 1, + "en": "producer", + "cn": "发行类" + } + ] }, "1003": { "en": "Game Designer", "cn": "游戏设计师", - "jp": "ゲームクリエイター" + "jp": "ゲームクリエイター", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1004": { "en": "", "cn": "剧本", - "jp": "腳本" + "jp": "腳本", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] }, "1005": { "en": "", "cn": "美工", - "jp": "美術" + "jp": "美術", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1006": { "en": "", "cn": "音乐", - "jp": "音楽" + "jp": "音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1007": { "en": "", "cn": "关卡设计", - "jp": "" + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1008": { "en": "Character Design", "cn": "人物设定", - "jp": "キャラ設定 キャラクターデザイン" + "jp": "キャラ設定 キャラクターデザイン", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1009": { "en": "Theme Song Composition", "cn": "主题歌作曲", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1010": { "en": "Theme Song Lyrics", "cn": "主题歌作词", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1011": { "en": "Theme Song Performance", "cn": "主题歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1012": { "en": "Inserted Song Performance", "cn": "插入歌演出", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1013": { "en": "", "cn": "原画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1014": { "en": "Animation Work", "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション" + "jp": "アニメーション制作 アニメ制作 アニメーション", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1015": { "en": "", "cn": "原作", - "jp": "" + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1016": { "en": "Director/Direction", "cn": "导演", - "jp": "監督 演出 シリーズ監督" + "jp": "監督 演出 シリーズ監督", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1017": { "en": "", "cn": "动画监督", - "jp": "アニメーション監督" + "jp": "アニメーション監督", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1018": { "en": "", "cn": "制作总指挥", - "jp": "" + "jp": "", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1019": { "en": "QC", "cn": "QC", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1020": { "en": "", "cn": "动画剧本", - "jp": "アニメーション脚本" + "jp": "アニメーション脚本", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, "1021": { "en": "Program", "cn": "程序", - "jp": "プログラム" + "jp": "プログラム", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1022": { "en": "", "cn": "协力", - "jp": "協力" + "jp": "協力", + "categories": [ + { + "order": 0, + "en": "assistant", + "cn": "助理类" + } + ] }, "1023": { "en": "", "cn": "CG 监修", - "jp": "CG 監修" + "jp": "CG 監修", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1024": { "en": "", "cn": "SD原画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1025": { "en": "", "cn": "背景", - "jp": "" + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1026": { "en": "", "cn": "监修", - "jp": "監修" + "jp": "監修", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, "1027": { "en": "", "cn": "系列构成", - "jp": "シリーズ構成" + "jp": "シリーズ構成", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] }, "1028": { "en": "", "cn": "企画", - "jp": "" + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, "1029": { "en": "Mechanical Design", "cn": "机械设定", - "jp": "メカニック設定" + "jp": "メカニック設定", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, "1030": { "en": "Sound Director", "cn": "音响监督", - "jp": "" + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, "1031": { "en": "", "cn": "作画监督", - "jp": "作画監督" + "jp": "作画監督", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, "1032": { "en": "Producer", "cn": "制作人", - "jp": "プロデューサー" + "jp": "プロデューサー", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] + }, + "1033": { + "en": "Cover Art", + "cn": "海报", + "jp": "表紙", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] } }, "6": { "4001": { - "en": "creator", + "en": "Creator", "cn": "原作", "jp": "" }, "4002": { - "en": "director", + "en": "Director", "cn": "导演", "jp": "" }, "4003": { - "en": "writer", + "en": "Writer", "cn": "编剧", "jp": "" }, "4004": { - "en": "composer", + "en": "Composer", "cn": "音乐", "jp": "" }, "4005": { - "en": "executive producer", + "en": "Executive Producer", "cn": "执行制片人", "jp": "製作総指揮" }, "4006": { - "en": "co exec", + "en": "Co-Executive Producer", "cn": "共同执行制作", "jp": "" }, "4007": { - "en": "producer", + "en": "Producer", "cn": "制片人/制作人", "jp": "プロデューサー" }, "4008": { - "en": "supervising producer", + "en": "Supervising Producer", "cn": "监制", "jp": "" }, "4009": { - "en": "consulting producer", + "en": "Consulting Producer", "cn": "副制作人/制作顾问", "jp": "" }, "4010": { - "en": "story", + "en": "Story", "cn": "故事", "jp": "" }, "4011": { - "en": "story editor", + "en": "Story Editor", "cn": "编审", "jp": "" }, "4012": { - "en": "editor", + "en": "Editor", "cn": "剪辑", "jp": "" }, "4013": { - "en": "creative director", + "en": "Creative Director", "cn": "创意总监", "jp": "" }, "4014": { - "en": "cinematography", + "en": "Cinematography", "cn": "摄影", "jp": "" }, @@ -1705,6 +5087,21 @@ "en": "Present", "cn": "出品", "jp": "配給" + }, + "4020": { + "en": "ADR Director", + "cn": "配音导演", + "jp": "" + }, + "4021": { + "en": "Recording", + "cn": "录音", + "jp": "録音" + }, + "4022": { + "en": "Poster", + "cn": "海报", + "jp": "" } } } From 25e8c9d54fe7dd040440eb09fceec60aaa8ea6ea Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 Sep 2025 22:16:56 +0800 Subject: [PATCH 761/888] fix: typo in column name (#933) --- dal/dao/chii_crt_subject_index.gen.go | 3 ++- dal/query/chii_crt_subject_index.gen.go | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dal/dao/chii_crt_subject_index.gen.go b/dal/dao/chii_crt_subject_index.gen.go index 7663e4317..6b0ede846 100644 --- a/dal/dao/chii_crt_subject_index.gen.go +++ b/dal/dao/chii_crt_subject_index.gen.go @@ -11,7 +11,8 @@ type CharacterSubjects struct { CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectTypeID uint8 `gorm:"column:subject_type_id;type:tinyint(4) unsigned;not null" json:""` - CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 + CrtType uint8 `gorm:"column:crt_type;type:tinyint(4) unsigned;not null;comment:主角,配角" json:""` // 主角,配角 + CrtAppearEps string `gorm:"column:crt_appear_eps;type:mediumtext;not null;comment:可选,角色出场的的章节" json:""` // 可选,角色出场的的章节 CrtOrder uint16 `gorm:"column:crt_order;type:smallint(6) unsigned;not null" json:""` Character Character `gorm:"foreignKey:crt_id;references:crt_id" json:"character"` Subject Subject `gorm:"foreignKey:subject_id;references:subject_id" json:"subject"` diff --git a/dal/query/chii_crt_subject_index.gen.go b/dal/query/chii_crt_subject_index.gen.go index 6b4698335..5575821fc 100644 --- a/dal/query/chii_crt_subject_index.gen.go +++ b/dal/query/chii_crt_subject_index.gen.go @@ -31,6 +31,7 @@ func newCharacterSubjects(db *gorm.DB, opts ...gen.DOOption) characterSubjects { _characterSubjects.SubjectID = field.NewUint32(tableName, "subject_id") _characterSubjects.SubjectTypeID = field.NewUint8(tableName, "subject_type_id") _characterSubjects.CrtType = field.NewUint8(tableName, "crt_type") + _characterSubjects.CrtAppearEps = field.NewString(tableName, "crt_appear_eps") _characterSubjects.CrtOrder = field.NewUint16(tableName, "crt_order") _characterSubjects.Character = characterSubjectsHasOneCharacter{ db: db.Session(&gorm.Session{}), @@ -66,7 +67,8 @@ type characterSubjects struct { CharacterID field.Uint32 SubjectID field.Uint32 SubjectTypeID field.Uint8 - CrtType field.Uint8 // 主角,配角 + CrtType field.Uint8 // 主角,配角 + CrtAppearEps field.String // 可选,角色出场的的章节 CrtOrder field.Uint16 Character characterSubjectsHasOneCharacter @@ -91,6 +93,7 @@ func (c *characterSubjects) updateTableName(table string) *characterSubjects { c.SubjectID = field.NewUint32(table, "subject_id") c.SubjectTypeID = field.NewUint8(table, "subject_type_id") c.CrtType = field.NewUint8(table, "crt_type") + c.CrtAppearEps = field.NewString(table, "crt_appear_eps") c.CrtOrder = field.NewUint16(table, "crt_order") c.fillFieldMap() @@ -125,6 +128,7 @@ func (c *characterSubjects) fillFieldMap() { c.fieldMap["subject_id"] = c.SubjectID c.fieldMap["subject_type_id"] = c.SubjectTypeID c.fieldMap["crt_type"] = c.CrtType + c.fieldMap["crt_appear_eps"] = c.CrtAppearEps c.fieldMap["crt_order"] = c.CrtOrder } From aa39b4d8f380c46b08dedbb252209c8e1d437167 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 Sep 2025 22:20:15 +0800 Subject: [PATCH 762/888] ci: fix workflow for bangumi/common automatically updating (#934) --- .github/workflows/update-common.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index a9b67a900..9e58c7622 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -29,6 +29,7 @@ jobs: - run: yarn install --frozen-lockfile - run: yarn run build-common - run: yarn run format + - run: git add . - name: Create Pull Request uses: peter-evans/create-pull-request@v7 From c05d50872ea36a99428cc0d63e960e608178cef7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 30 Sep 2025 22:22:48 +0800 Subject: [PATCH 763/888] ci: fix workflow for bangumi/common automatically updating (#935) --- .prettierignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.prettierignore b/.prettierignore index 71703fa18..7d4c04f21 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,3 +3,5 @@ .vscode/ .idea/ static/ + +pkg/vars/common/ From 3bb71211fb4b61c067fe4ea0cbf117a206ed3b20 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Oct 2025 02:05:48 +0800 Subject: [PATCH 764/888] build(deps): update module github.com/redis/rueidis to v1.0.66 (#937) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 3bd256367..411a24f95 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.34.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.64 + github.com/redis/rueidis v1.0.66 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 diff --git a/go.sum b/go.sum index 175322c4d..f4ab2ff51 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.64 h1:XqgbueDuNV3qFdVdQwAHJl1uNt90zUuAJuzqjH4cw6Y= -github.com/redis/rueidis v1.0.64/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.66 h1:7rvyrl0vL/cAEkE97+L5v3MJ3Vg8IKz+KIxUTfT+yJk= +github.com/redis/rueidis v1.0.66/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 058cd4bec0b0237a2d652944d9abd715cf38ba64 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 4 Oct 2025 02:05:59 +0800 Subject: [PATCH 765/888] build(deps): update aws-sdk-go-v2 monorepo (#936) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 411a24f95..57347efe7 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.6.1 - github.com/aws/aws-sdk-go-v2 v1.39.0 - github.com/aws/aws-sdk-go-v2/credentials v1.18.12 - github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1 + github.com/aws/aws-sdk-go-v2 v1.39.2 + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 + github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -51,13 +51,13 @@ require ( github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9 // indirect github.com/aws/smithy-go v1.23.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect diff --git a/go.sum b/go.sum index f4ab2ff51..198cfc6f1 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= -github.com/aws/aws-sdk-go-v2 v1.39.0 h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4= -github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 h1:i8p8P4diljCr60PpJp6qZXNlgX4m2yQFpYk+9ZT+J4E= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1/go.mod h1:ddqbooRZYNoJ2dsTwOty16rM+/Aqmk/GOXrK8cg7V00= -github.com/aws/aws-sdk-go-v2/credentials v1.18.12 h1:zmc9e1q90wMn8wQbjryy8IwA6Q4XlaL9Bx2zIqdNNbk= -github.com/aws/aws-sdk-go-v2/credentials v1.18.12/go.mod h1:3VzdRDR5u3sSJRI4kYcOSIBbeYsgtVk7dG5R/U6qLWY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7 h1:BszAktdUo2xlzmYHjWMq70DqJ7cROM8iBd3f6hrpuMQ= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.7/go.mod h1:XJ1yHki/P7ZPuG4fd3f0Pg/dSGA2cTQBCLw82MH2H48= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9 h1:w9LnHqTq8MEdlnyhV4Bwfizd65lfNCNgdlNC6mM5paE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9/go.mod h1:LGEP6EK4nj+bwWNdrvX/FnDTFowdBNwcSPuZu/ouFys= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7 h1:zmZ8qvtE9chfhBPuKB2aQFxW5F/rpwXUgmcVCgQzqRw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.7/go.mod h1:vVYfbpd2l+pKqlSIDIOgouxNsGu5il9uDp0ooWb0jys= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7 h1:u3VbDKUCWarWiU+aIUK4gjTr/wQFXV17y3hgNno9fcA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.7/go.mod h1:/OuMQwhSyRapYxq6ZNpPer8juGNrB4P5Oz8bZ2cgjQE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1 h1:+RpGuaQ72qnU83qBKVwxkznewEdAGhIWo/PQCmkhhog= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.1/go.mod h1:xajPTguLoeQMAOE44AAP2RQoUhF8ey1g5IFHARv71po= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9 h1:by3nYZLR9l8bUH7kgaMU4dJgYFjyRdFEfORlDpPILB4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9/go.mod h1:IWjQYlqw4EX9jw2g3qnEPPWvCE6bS8fKzhMed1OK7c8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9 h1:wuZ5uW2uhJR63zwNlqWH2W4aL4ZjeJP3o92/W+odDY4= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9/go.mod h1:/G58M2fGszCrOzvJUkDdY8O9kycodunH4VdT5oBAqls= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3 h1:P18I4ipbk+b/3dZNq5YYh+Hq6XC0vp5RWkLp1tJldDA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3/go.mod h1:Rm3gw2Jov6e6kDuamDvyIlZJDMYk97VeCZ82wz/mVZ0= github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 073f079dcf8055de3d70150cb5354cdf2f78ec11 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 9 Oct 2025 22:05:11 +0800 Subject: [PATCH 766/888] fix: nickname in rev creator --- web/handler/revision.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/handler/revision.go b/web/handler/revision.go index 33e61aca5..4fb4d98b4 100644 --- a/web/handler/revision.go +++ b/web/handler/revision.go @@ -285,7 +285,7 @@ func convertModelPersonRevision(r *model.PersonRevision, creatorMap map[model.Us Summary: r.Summary, Creator: res.Creator{ Username: creator.UserName, - Nickname: creator.UserName, + Nickname: creator.NickName, }, CreatedAt: r.CreatedAt, Data: nil, From 9d669847eeaa57526e39b6409cc76ff7ae4595c8 Mon Sep 17 00:00:00 2001 From: aoi <98004155+ajtn123@users.noreply.github.com> Date: Mon, 13 Oct 2025 23:45:19 +0800 Subject: [PATCH 767/888] fix: nickname in rev creator for subject, character, episode (#938) --- web/handler/revision.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/handler/revision.go b/web/handler/revision.go index 4fb4d98b4..8525bc10a 100644 --- a/web/handler/revision.go +++ b/web/handler/revision.go @@ -340,7 +340,7 @@ func convertModelSubjectRevision( Summary: r.Summary, Creator: res.Creator{ Username: creator.UserName, - Nickname: creator.UserName, + Nickname: creator.NickName, }, CreatedAt: r.CreatedAt, Data: data, @@ -357,7 +357,7 @@ func convertModelCharacterRevision( Summary: r.Summary, Creator: res.Creator{ Username: creator.UserName, - Nickname: creator.UserName, + Nickname: creator.NickName, }, CreatedAt: r.CreatedAt, } @@ -383,7 +383,7 @@ func convertModelEpisodeRevision(r *model.EpisodeRevision, creatorMap map[model. Summary: r.Summary, Creator: res.Creator{ Username: creator.UserName, - Nickname: creator.UserName, + Nickname: creator.NickName, }, CreatedAt: r.CreatedAt, } From ffa4e5986bdf9020c370798fdeba7bfff195d9ae Mon Sep 17 00:00:00 2001 From: Inchei Chan Date: Mon, 20 Oct 2025 18:08:44 +0800 Subject: [PATCH 768/888] feat: add eps for person related subjects (#940) --- internal/subject/mysql_repository.go | 1 + openapi/v0.yaml | 5 +++++ web/handler/person/get_related_subjects.go | 2 ++ web/res/subject.go | 1 + 4 files changed, 9 insertions(+) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 3e2a44179..0c047831c 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -146,6 +146,7 @@ func (r mysqlRepo) GetPersonRelated( SubjectID: relation.SubjectID, PersonID: relation.PersonID, TypeID: relation.PrsnPosition, + Eps: relation.PrsnAppearEps, }) } diff --git a/openapi/v0.yaml b/openapi/v0.yaml index cbe6ea4d7..905487960 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -3244,6 +3244,7 @@ components: - id - type - staff + - eps - name - name_cn type: object @@ -3256,6 +3257,10 @@ components: staff: title: Staff type: string + eps: + title: Eps + type: string + description: 参与章节/曲目 name: title: Name type: string diff --git a/web/handler/person/get_related_subjects.go b/web/handler/person/get_related_subjects.go index 82ba10405..edf334e5a 100644 --- a/web/handler/person/get_related_subjects.go +++ b/web/handler/person/get_related_subjects.go @@ -61,6 +61,7 @@ func (h Person) GetRelatedSubjects(c echo.Context) error { for i, relation := range relations { response[i] = res.PersonRelatedSubject{ SubjectID: relation.Subject.ID, + Eps: relation.Eps, Type: relation.Subject.TypeID, Staff: vars.StaffMap[relation.Subject.TypeID][relation.TypeID].String(), Name: relation.Subject.Name, @@ -104,6 +105,7 @@ func (h Person) getPersonRelated( Person: person, Subject: s, TypeID: rel.TypeID, + Eps: rel.Eps, }) } diff --git a/web/res/subject.go b/web/res/subject.go index 47cf81d53..b99114409 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -211,6 +211,7 @@ type Rating struct { type PersonRelatedSubject struct { Staff string `json:"staff"` + Eps string `json:"eps" doc:"episodes participated"` Name string `json:"name"` NameCn string `json:"name_cn"` Image string `json:"image"` From 83a0299dbba81cc6b9dcb7632bc153bf0f1176d1 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 3 Nov 2025 03:31:22 +0000 Subject: [PATCH 769/888] ci: improve security scan jobs --- .github/workflows/security.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index c75587892..168e16575 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -10,20 +10,14 @@ on: - "go.sum" - ".golangci.yaml" - ".github/workflows/security.yaml" - pull_request: - branches: - - master - paths: - - "**.go" - - "go.mod" - - "go.sum" - - ".github/workflows/security.yaml" schedule: - cron: "15 3 * * 4" jobs: vulnerability-scan: runs-on: ubuntu-24.04 + permissions: + issues: write steps: - uses: actions/checkout@v5 with: @@ -36,3 +30,11 @@ jobs: - run: go install golang.org/x/vuln/cmd/govulncheck@latest - run: govulncheck ./... + + - name: Notify failed build + uses: jayqi/failed-build-issue-action@v1 + if: failure() + with: + github-token: ${{ github.token }} + always-create-new-issue: false + label-name: vulncheck From 1a1d72337d012b337e0b4b155debdb2bf0cffd90 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:32:54 +0800 Subject: [PATCH 770/888] build(deps): update dependency go to v1.24.9 (#945) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 57347efe7..b2ffa83dd 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.7 +go 1.24.9 tool github.com/vektra/mockery/v3 From 931c3bfac70e396b3f4a43b884a580e844f31fbb Mon Sep 17 00:00:00 2001 From: lijrjyan <114850537+lijrjyan@users.noreply.github.com> Date: Sun, 2 Nov 2025 21:35:07 -0600 Subject: [PATCH 771/888] feat(search): add rating_count filter (#941) --- internal/search/subject/doc.go | 54 ++++++++++--------- internal/search/subject/handle.go | 23 +++++--- .../search/subject/handle_internal_test.go | 6 ++- .../search/subject/index_internal_test.go | 2 +- openapi/v0.yaml | 9 ++++ 5 files changed, 58 insertions(+), 36 deletions(-) diff --git a/internal/search/subject/doc.go b/internal/search/subject/doc.go index 24fa423a4..7455d4c9c 100644 --- a/internal/search/subject/doc.go +++ b/internal/search/subject/doc.go @@ -29,19 +29,20 @@ import ( // 两种 tag 来设置是否可以被索引和排序. // 搜索字段因为带有排序,所以定义在 [search.searchAbleAttribute] 中. type document struct { - ID model.SubjectID `json:"id"` - Tag []string `json:"tag,omitempty" filterable:"true"` - MetaTags []string `json:"meta_tag" filterable:"true"` - Name string `json:"name" searchable:"true"` - Aliases []string `json:"aliases,omitempty" searchable:"true"` - Date int `json:"date,omitempty" filterable:"true" sortable:"true"` - Score float64 `json:"score" filterable:"true" sortable:"true"` - PageRank float64 `json:"page_rank" sortable:"true"` - Heat uint32 `json:"heat" sortable:"true"` - Rank uint32 `json:"rank" filterable:"true" sortable:"true"` - Platform uint16 `json:"platform,omitempty"` - Type uint8 `json:"type" filterable:"true"` - NSFW bool `json:"nsfw" filterable:"true"` + ID model.SubjectID `json:"id"` + Tag []string `json:"tag,omitempty" filterable:"true"` + MetaTags []string `json:"meta_tag" filterable:"true"` + Name string `json:"name" searchable:"true"` + Aliases []string `json:"aliases,omitempty" searchable:"true"` + Date int `json:"date,omitempty" filterable:"true" sortable:"true"` + Score float64 `json:"score" filterable:"true" sortable:"true"` + RatingCount uint32 `json:"rating_count" filterable:"true" sortable:"true"` + PageRank float64 `json:"page_rank" sortable:"true"` + Heat uint32 `json:"heat" sortable:"true"` + Rank uint32 `json:"rank" filterable:"true" sortable:"true"` + Platform uint16 `json:"platform,omitempty"` + Type uint8 `json:"type" filterable:"true"` + NSFW bool `json:"nsfw" filterable:"true"` } func (d *document) GetID() string { @@ -83,19 +84,20 @@ func extract(s *model.Subject) searcher.Document { } return &document{ - ID: s.ID, - Name: s.Name, - Aliases: extractAliases(s, w), - MetaTags: strings.Split(s.MetaTags, " "), - Tag: tagNames, - NSFW: s.NSFW, - Type: s.TypeID, - Date: parseDateVal(s.Date), - Platform: s.PlatformID, - PageRank: float64(s.Rating.Total), - Rank: s.Rating.Rank, - Heat: heat(s), - Score: score, + ID: s.ID, + Name: s.Name, + Aliases: extractAliases(s, w), + MetaTags: strings.Split(s.MetaTags, " "), + Tag: tagNames, + NSFW: s.NSFW, + Type: s.TypeID, + Date: parseDateVal(s.Date), + Platform: s.PlatformID, + RatingCount: s.Rating.Total, + PageRank: float64(s.Rating.Total), + Rank: s.Rating.Rank, + Heat: heat(s), + Score: score, } } diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index 232713278..5cc902429 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -50,12 +50,13 @@ type Req struct { } type ReqFilter struct { //nolint:musttag - Type []model.SubjectType `json:"type"` // or - Tag []string `json:"tag"` // and - AirDate []string `json:"air_date"` // and - Score []string `json:"rating"` // and - Rank []string `json:"rank"` // and - MetaTags []string `json:"meta_tags"` // and + Type []model.SubjectType `json:"type"` // or + Tag []string `json:"tag"` // and + AirDate []string `json:"air_date"` // and + Score []string `json:"rating"` // and + RatingCount []string `json:"rating_count"` // and + Rank []string `json:"rank"` // and + MetaTags []string `json:"meta_tags"` // and // if NSFW subject is enabled NSFW null.Bool `json:"nsfw"` @@ -204,7 +205,7 @@ type meiliSearchResponse struct { } func filterToMeiliFilter(req ReqFilter) ([][]string, error) { - var filter = make([][]string, 0, 5+len(req.Tag)) + var filter = make([][]string, 0, 6+len(req.Tag)) // OR @@ -255,6 +256,14 @@ func filterToMeiliFilter(req ReqFilter) ([][]string, error) { filter = append(filter, []string{"score " + s}) } + for _, s := range req.RatingCount { + if !intFilterPattern.MatchString(s) { + return nil, res.BadRequest(fmt.Sprintf( + `invalid rating_count filter: %q, should be in the format of "^(>|<|>=|<=|=) *\d+$"`, s)) + } + filter = append(filter, []string{"rating_count " + s}) + } + return filter, nil } diff --git a/internal/search/subject/handle_internal_test.go b/internal/search/subject/handle_internal_test.go index bad3931d8..739a114c1 100644 --- a/internal/search/subject/handle_internal_test.go +++ b/internal/search/subject/handle_internal_test.go @@ -26,8 +26,9 @@ func Test_ReqFilterToMeiliFilter(t *testing.T) { t.Parallel() actual, err := filterToMeiliFilter(ReqFilter{ - Tag: []string{"a", "b"}, - NSFW: null.Bool{Set: true, Value: false}, + Tag: []string{"a", "b"}, + RatingCount: []string{">=100"}, + NSFW: null.Bool{Set: true, Value: false}, }) require.NoError(t, err) @@ -36,5 +37,6 @@ func Test_ReqFilterToMeiliFilter(t *testing.T) { {`nsfw = false`}, {`tag = "a"`}, {`tag = "b"`}, + {`rating_count >=100`}, }, actual) } diff --git a/internal/search/subject/index_internal_test.go b/internal/search/subject/index_internal_test.go index 1da67e001..ab5b5ba95 100644 --- a/internal/search/subject/index_internal_test.go +++ b/internal/search/subject/index_internal_test.go @@ -29,7 +29,7 @@ func TestIndexFilter(t *testing.T) { rt := reflect.TypeOf(document{}) actual := *(searcher.GetAttributes(rt, "filterable")) - expected := []string{"date", "meta_tag", "score", "rank", "type", "nsfw", "tag"} + expected := []string{"date", "meta_tag", "rating_count", "score", "rank", "type", "nsfw", "tag"} sort.Strings(expected) sort.Strings(actual) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 905487960..078eacebd 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -28,6 +28,7 @@ paths: - `tag`: 标签,可以多次出现。`且` 关系。 - `air_date`: 播出日期/发售日期。`且` 关系。 - `rating`: 用于搜索指定评分的条目。`且` 关系。 + - `rating_count`: 用于按照评分人数筛选条目。`且` 关系。 - `rank`: 用于搜索指定排名的条目。`且` 关系。 - `nsfw`: 使用 `include` 包含NSFW搜索结果。默认排除搜索NSFW条目。无权限情况下忽略此选项,不会返回NSFW条目。 @@ -113,6 +114,14 @@ paths: - ">=6" - "<8" description: 用于搜索指定评分的条目,多值之间为 `且` 关系。 + rating_count: + type: array + items: + type: string + example: + - ">=200" + - "<5000" + description: 用于按照评分人数筛选条目,多值之间为 `且` 关系,格式与 `rating` 相同。 rank: type: array items: From 96a3fe53f2feb074f9dc622053e397e18fc3b2b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:39:30 +0800 Subject: [PATCH 772/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.34.1 (#947) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b2ffa83dd..d00a748b9 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.34.0 + github.com/meilisearch/meilisearch-go v0.34.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.66 diff --git a/go.sum b/go.sum index 198cfc6f1..21caae2b6 100644 --- a/go.sum +++ b/go.sum @@ -163,8 +163,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.34.0 h1:P+Ohdx4/PCxXaoI5wNi0LMwPkuiNrF/kGIzBrKYS4tw= -github.com/meilisearch/meilisearch-go v0.34.0/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= +github.com/meilisearch/meilisearch-go v0.34.1 h1:tIPRWZ3GCsq6fnW7hxryNI7EejBWmTIZ9+YOwTho4PA= +github.com/meilisearch/meilisearch-go v0.34.1/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From 52a5871923572deaec6ce52e6eede411e591e7ae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:39:39 +0800 Subject: [PATCH 773/888] build(deps): update module github.com/redis/rueidis to v1.0.67 (#948) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d00a748b9..86d7f1dec 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.34.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.66 + github.com/redis/rueidis v1.0.67 github.com/samber/lo v1.51.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 diff --git a/go.sum b/go.sum index 21caae2b6..36047017c 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.66 h1:7rvyrl0vL/cAEkE97+L5v3MJ3Vg8IKz+KIxUTfT+yJk= -github.com/redis/rueidis v1.0.66/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.67 h1:v2BIArP50KkRsEkhPWyVg4pcwI3rPVehl6EYyWlPHrM= +github.com/redis/rueidis v1.0.67/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 775fd5bcc2d9bc98a3fb9a59ee5206ea79f2078d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:39:49 +0800 Subject: [PATCH 774/888] build(deps): update module gorm.io/gorm to v1.31.1 (#949) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 86d7f1dec..ad583ff13 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( golang.org/x/text v0.29.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 - gorm.io/gorm v1.31.0 + gorm.io/gorm v1.31.1 gorm.io/plugin/dbresolver v1.6.2 gorm.io/plugin/soft_delete v1.2.1 ) diff --git a/go.sum b/go.sum index 36047017c..172937b30 100644 --- a/go.sum +++ b/go.sum @@ -315,8 +315,8 @@ gorm.io/gorm v1.20.1/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.23.0/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= -gorm.io/gorm v1.31.0 h1:0VlycGreVhK7RF/Bwt51Fk8v0xLiiiFdbGDPIZQ7mJY= -gorm.io/gorm v1.31.0/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= +gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg= +gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= gorm.io/hints v1.1.2 h1:b5j0kwk5p4+3BtDtYqqfY+ATSxjj+6ptPgVveuynn9o= gorm.io/hints v1.1.2/go.mod h1:/ARdpUHAtyEMCh5NNi3tI7FsGh+Cj/MIUlvNxCNCFWg= gorm.io/plugin/dbresolver v1.6.2 h1:F4b85TenghUeITqe3+epPSUtHH7RIk3fXr5l83DF8Pc= From 313f7723ff97a1e1e9dcd1465d03bbdef138b8c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:39:57 +0800 Subject: [PATCH 775/888] build(deps): update module github.com/avast/retry-go/v4 to v4.7.0 (#950) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ad583ff13..2584c0cc3 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24.9 tool github.com/vektra/mockery/v3 require ( - github.com/avast/retry-go/v4 v4.6.1 + github.com/avast/retry-go/v4 v4.7.0 github.com/aws/aws-sdk-go-v2 v1.39.2 github.com/aws/aws-sdk-go-v2/credentials v1.18.16 github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3 diff --git a/go.sum b/go.sum index 172937b30..c088d537e 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/avast/retry-go/v4 v4.6.1 h1:VkOLRubHdisGrHnTu89g08aQEWEgRU7LVEop3GbIcMk= -github.com/avast/retry-go/v4 v4.6.1/go.mod h1:V6oF8njAwxJ5gRo1Q7Cxab24xs5NCWZBeaHHBklR8mA= +github.com/avast/retry-go/v4 v4.7.0 h1:yjDs35SlGvKwRNSykujfjdMxMhMQQM0TnIjJaHB+Zio= +github.com/avast/retry-go/v4 v4.7.0/go.mod h1:ZMPDa3sY2bKgpLtap9JRUgk2yTAba7cgiFhqxY2Sg6Q= github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 h1:i8p8P4diljCr60PpJp6qZXNlgX4m2yQFpYk+9ZT+J4E= From 00cdda0cb301cbc6d8d689576f79deb7585a0ac9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 11:40:06 +0800 Subject: [PATCH 776/888] build(deps): update module github.com/go-playground/validator/v10 to v10.28.0 (#951) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 2584c0cc3..b5d675053 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.27.0 + github.com/go-playground/validator/v10 v10.28.0 github.com/go-resty/resty/v2 v2.16.5 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 @@ -67,7 +67,7 @@ require ( github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.9 // indirect + github.com/gabriel-vasile/mimetype v1.4.10 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/huandu/xstrings v1.5.0 // indirect @@ -113,12 +113,12 @@ require ( go.yaml.in/yaml/v2 v2.4.2 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.41.0 // indirect + golang.org/x/crypto v0.42.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect golang.org/x/mod v0.27.0 // indirect golang.org/x/net v0.43.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/term v0.34.0 // indirect + golang.org/x/sys v0.36.0 // indirect + golang.org/x/term v0.35.0 // indirect golang.org/x/time v0.11.0 // indirect golang.org/x/tools v0.36.0 // indirect google.golang.org/protobuf v1.36.8 // indirect diff --git a/go.sum b/go.sum index c088d537e..2a6387d3f 100644 --- a/go.sum +++ b/go.sum @@ -59,16 +59,16 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/gabriel-vasile/mimetype v1.4.9 h1:5k+WDwEsD9eTLL8Tz3L0VnmVh9QxGjRmjBvAG7U/oYY= -github.com/gabriel-vasile/mimetype v1.4.9/go.mod h1:WnSQhFKJuBlRyLiKohA/2DtIlPFAbguNaG7QCHcyGok= +github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0= +github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.27.0 h1:w8+XrWVMhGkxOaaowyKH35gFydVHOvC0/uWoy2Fzwn4= -github.com/go-playground/validator/v10 v10.27.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= +github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= +github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= @@ -266,8 +266,8 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= @@ -279,10 +279,10 @@ golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= From 90d08b9a0f7eec7d78fb83faf88f3a2fd9e8f53b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:26:01 +0800 Subject: [PATCH 777/888] build(deps): update aws-sdk-go-v2 monorepo (#944) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index b5d675053..4ce714683 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.7.0 - github.com/aws/aws-sdk-go-v2 v1.39.2 - github.com/aws/aws-sdk-go-v2/credentials v1.18.16 - github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3 + github.com/aws/aws-sdk-go-v2 v1.39.6 + github.com/aws/aws-sdk-go-v2/credentials v1.18.21 + github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9 // indirect - github.com/aws/smithy-go v1.23.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 // indirect + github.com/aws/smithy-go v1.23.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect diff --git a/go.sum b/go.sum index 2a6387d3f..a0683b953 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.7.0 h1:yjDs35SlGvKwRNSykujfjdMxMhMQQM0TnIjJaHB+Zio= github.com/avast/retry-go/v4 v4.7.0/go.mod h1:ZMPDa3sY2bKgpLtap9JRUgk2yTAba7cgiFhqxY2Sg6Q= -github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= -github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 h1:i8p8P4diljCr60PpJp6qZXNlgX4m2yQFpYk+9ZT+J4E= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1/go.mod h1:ddqbooRZYNoJ2dsTwOty16rM+/Aqmk/GOXrK8cg7V00= -github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= -github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9 h1:w9LnHqTq8MEdlnyhV4Bwfizd65lfNCNgdlNC6mM5paE= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.9/go.mod h1:LGEP6EK4nj+bwWNdrvX/FnDTFowdBNwcSPuZu/ouFys= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9 h1:by3nYZLR9l8bUH7kgaMU4dJgYFjyRdFEfORlDpPILB4= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.9/go.mod h1:IWjQYlqw4EX9jw2g3qnEPPWvCE6bS8fKzhMed1OK7c8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9 h1:wuZ5uW2uhJR63zwNlqWH2W4aL4ZjeJP3o92/W+odDY4= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.9/go.mod h1:/G58M2fGszCrOzvJUkDdY8O9kycodunH4VdT5oBAqls= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3 h1:P18I4ipbk+b/3dZNq5YYh+Hq6XC0vp5RWkLp1tJldDA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.88.3/go.mod h1:Rm3gw2Jov6e6kDuamDvyIlZJDMYk97VeCZ82wz/mVZ0= -github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= -github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk= +github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y= +github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA= +github.com/aws/aws-sdk-go-v2/credentials v1.18.21/go.mod h1:3YELwedmQbw7cXNaII2Wywd+YY58AmLPwX4LzARgmmA= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 h1:eg/WYAa12vqTphzIdWMzqYRVKKnCboVPRlvaybNCqPA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13/go.mod h1:/FDdxWhz1486obGrKKC1HONd7krpk38LBt+dutLcN9k= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 h1:NvMjwvv8hpGUILarKw7Z4Q0w1H9anXKsesMxtw++MA4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4/go.mod h1:455WPHSwaGj2waRSpQp7TsnpOnBfw8iDfPfbwl7KPJE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 h1:zhBJXdhWIFZ1acfDYIhu4+LCzdUS2Vbcum7D01dXlHQ= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13/go.mod h1:JaaOeCE368qn2Hzi3sEzY6FgAZVCIYcC2nwbro2QCh8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 h1:xgBWsgaeUESl8A8k80p6yBdexMWDVeiDmJ/pkjohJ7c= +github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2/go.mod h1:+wArOOrcHUevqdto9k1tKOF5++YTe9JEcPSc9Tx2ZSw= +github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM= +github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From f506223985817532724f6bf9175d8f453b3cc958 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:31:26 +0800 Subject: [PATCH 778/888] ci: update actions/setup-node action to v6 (#954) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 4f25afe62..c35c32af9 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -21,7 +21,7 @@ jobs: submodules: true - name: Install Node LTS - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: cache: yarn diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index b9722c84e..9602d6e1b 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: 20 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 84edcc636..18969211c 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -29,7 +29,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index 9e58c7622..007e0f1ba 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -19,7 +19,7 @@ jobs: with: submodules: true - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: 22 From 9a7c8e0163d0b553d922e4a9d5b7f7a9b85288a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:31:39 +0800 Subject: [PATCH 779/888] build(deps): update module github.com/samber/lo to v1.52.0 (#952) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4ce714683..8ea8969ff 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.67 - github.com/samber/lo v1.51.0 + github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 diff --git a/go.sum b/go.sum index a0683b953..e8b86ff6d 100644 --- a/go.sum +++ b/go.sum @@ -202,8 +202,8 @@ github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.51.0 h1:kysRYLbHy/MB7kQZf5DSN50JHmMsNEdeY24VzJFu7wI= -github.com/samber/lo v1.51.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= +github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= +github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/kafka-go v0.4.49 h1:GJiNX1d/g+kG6ljyJEoi9++PUMdXGAxb7JGPiDCuNmk= github.com/segmentio/kafka-go v0.4.49/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= From 3b03168f53db80d8f1db7f0dd5ba01c640d64e05 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:31:51 +0800 Subject: [PATCH 780/888] build(deps): update module github.com/bytedance/sonic to v1.14.2 (#946) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 8ea8969ff..3f5f63b27 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.18.21 github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.14.1 + github.com/bytedance/sonic v1.14.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -62,7 +62,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect - github.com/bytedance/sonic/loader v0.3.0 // indirect + github.com/bytedance/sonic/loader v0.4.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect diff --git a/go.sum b/go.sum index e8b86ff6d..bb60a5e34 100644 --- a/go.sum +++ b/go.sum @@ -41,10 +41,10 @@ github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= -github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w= -github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc= -github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= -github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/sonic v1.14.2 h1:k1twIoe97C1DtYUo+fZQy865IuHia4PR5RPiuGPPIIE= +github.com/bytedance/sonic v1.14.2/go.mod h1:T80iDELeHiHKSc0C9tubFygiuXoGzrkjKzX2quAx980= +github.com/bytedance/sonic/loader v0.4.0 h1:olZ7lEqcxtZygCK9EKYKADnpQoYkRQxaeY2NYzevs+o= +github.com/bytedance/sonic/loader v0.4.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= @@ -219,7 +219,8 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/trim21/errgo v0.0.6 h1:Qz10hGY51k5u7ADRa/jqan8VaQYKx7hAqUJ6t5m42/I= From 6dd36c0269811165937e33e06b9518577ac55295 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:32:03 +0800 Subject: [PATCH 781/888] build(deps): update module golang.org/x/text to v0.30.0 (#953) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 3f5f63b27..0d41caca8 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.17.0 - golang.org/x/text v0.29.0 + golang.org/x/text v0.30.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -115,12 +115,12 @@ require ( golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.42.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.27.0 // indirect - golang.org/x/net v0.43.0 // indirect + golang.org/x/mod v0.28.0 // indirect + golang.org/x/net v0.44.0 // indirect golang.org/x/sys v0.36.0 // indirect golang.org/x/term v0.35.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/tools v0.37.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index bb60a5e34..5483ac133 100644 --- a/go.sum +++ b/go.sum @@ -271,10 +271,10 @@ golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= +golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -284,12 +284,12 @@ golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= +golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From d649d48249fb162955520ec275d299cb24244c6c Mon Sep 17 00:00:00 2001 From: "Trim21[bot]" <88366224+trim21-bot@users.noreply.github.com> Date: Wed, 12 Nov 2025 19:46:38 +0800 Subject: [PATCH 782/888] feat: update common (#956) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- pkg/vars/common | 2 +- pkg/vars/staffs.go.json | 3580 +++++++++++++++++++++++++-------------- 2 files changed, 2278 insertions(+), 1304 deletions(-) diff --git a/pkg/vars/common b/pkg/vars/common index 511d9e405..6a8442c17 160000 --- a/pkg/vars/common +++ b/pkg/vars/common @@ -1 +1 @@ -Subproject commit 511d9e4055e77aaff166a446083c5054f34d9688 +Subproject commit 6a8442c17143a870357a5ff812362e8b5cfe9f9d diff --git a/pkg/vars/staffs.go.json b/pkg/vars/staffs.go.json index 3edd7d12b..317b84880 100644 --- a/pkg/vars/staffs.go.json +++ b/pkg/vars/staffs.go.json @@ -1954,385 +1954,524 @@ "cn": "制作类" } ] - } - }, - "game": { - "1001": { - "en": "Developer", - "cn": "开发", - "jp": "開発元", + }, + "138": { + "en": "Eyecatch Art", + "cn": "转场绘", + "jp": "アイキャッチ", "categories": [ { - "order": 1, - "en": "producer", - "cn": "发行类" + "order": 4, + "en": "animation", + "cn": "作画类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "1002": { - "en": "Publisher", - "cn": "发行", - "jp": "発売元", + "139": { + "en": "Illustration", + "cn": "插画", + "jp": "イラスト", "categories": [ { - "order": 1, - "en": "producer", - "cn": "发行类" + "order": 4, + "en": "animation", + "cn": "作画类" + }, + { + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "1003": { - "en": "Game Designer", - "cn": "游戏设计师", - "jp": "ゲームクリエイター", + "140": { + "en": "Character Animation Director", + "cn": "角色作画监督", + "jp": "キャラクター作画監督", "categories": [ { - "order": 2, + "order": 1, "en": "director", "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "1004": { - "en": "", - "cn": "剧本", - "jp": "腳本", + "141": { + "en": "Animation Supervisor", + "cn": "作画监修", + "jp": "作画監修", "categories": [ { - "order": 3, - "en": "storyboard", - "cn": "脚本类" + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "1005": { - "en": "", - "cn": "美工", - "jp": "美術", + "142": { + "en": "Mechanical Design Concept", + "cn": "机设原案", + "jp": "メカニカル原案", "categories": [ { "order": 5, - "en": "art", - "cn": "美术类" + "en": "design", + "cn": "设定类" } ] }, - "1006": { - "en": "", - "cn": "音乐", - "jp": "音楽", + "143": { + "en": "Concept Art", + "cn": "概念艺术", + "jp": "コンセプトアート", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "1007": { - "en": "", - "cn": "关卡设计", - "jp": "", + "144": { + "en": "Visual Concept", + "cn": "视觉概念", + "jp": "ビジュアルコンセプト", "categories": [ { - "order": 4, + "order": 5, "en": "design", "cn": "设定类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "1008": { - "en": "Character Design", - "cn": "人物设定", - "jp": "キャラ設定 キャラクターデザイン", + "145": { + "en": "Scene Design", + "cn": "画面设计", + "jp": "画面設計", "categories": [ { - "order": 4, + "order": 5, "en": "design", "cn": "设定类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "1009": { - "en": "Theme Song Composition", - "cn": "主题歌作曲", - "jp": "", + "146": { + "en": "Monster Design", + "cn": "怪物设计", + "jp": "モンスターデザイン", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "1010": { - "en": "Theme Song Lyrics", - "cn": "主题歌作词", - "jp": "", + "147": { + "en": "Story Concept", + "cn": "故事概念", + "jp": "ストーリーコンセプト", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "1011": { - "en": "Theme Song Performance", - "cn": "主题歌演出", - "jp": "", + "148": { + "en": "Scenario Coordinator", + "cn": "剧本协调", + "jp": "シナリオコーディネーター", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "1012": { - "en": "Inserted Song Performance", - "cn": "插入歌演出", - "jp": "", + "149": { + "en": "Script Cooperation", + "cn": "脚本协力", + "jp": "脚本協力", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "1013": { - "en": "", - "cn": "原画", - "jp": "", + "150": { + "en": "Associate Series Composition", + "cn": "副系列构成", + "jp": "副シリーズ構成", "categories": [ { - "order": 5, - "en": "art", - "cn": "美术类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "1014": { - "en": "Animation Work", - "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション", + "151": { + "en": "Series Composition Cooperation", + "cn": "构成协力", + "jp": "構成協力", "categories": [ { - "order": 6, - "en": "animation", - "cn": "动画类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "1015": { - "en": "", - "cn": "原作", - "jp": "", + "152": { + "en": "Recording Studio", + "cn": "录音工作室", + "jp": "録音スタジオ", "categories": [ { - "order": 4, - "en": "design", - "cn": "设定类" + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1016": { - "en": "Director/Direction", - "cn": "导演", - "jp": "監督 演出 シリーズ監督", + "153": { + "en": "Sound Mixing", + "cn": "整音", + "jp": "整音", "categories": [ { - "order": 2, - "en": "director", - "cn": "导演类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "1017": { - "en": "", - "cn": "动画监督", - "jp": "アニメーション監督", + "154": { + "en": "Sound Production Coordinator", + "cn": "音响制作担当", + "jp": "音響制作担当", "categories": [ { - "order": 6, - "en": "animation", - "cn": "动画类" + "order": 7, + "en": "music", + "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1018": { - "en": "", - "cn": "制作总指挥", - "jp": "", + "155": { + "en": "Online Editing", + "cn": "在线剪辑", + "jp": "オンライン編集", "categories": [ { - "order": 2, - "en": "director", - "cn": "导演类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1019": { - "en": "QC", - "cn": "QC", - "jp": "", + "156": { + "en": "Offline Editing", + "cn": "离线剪辑", + "jp": "オフライン編集", "categories": [ { "order": 8, "en": "production", - "cn": "制作/程序类" + "cn": "制作类" } ] }, - "1020": { - "en": "", - "cn": "动画剧本", - "jp": "アニメーション脚本", + "157": { + "en": "3D Animator", + "cn": "3D 动画师", + "jp": "3Dアニメーター 3Dアニメーション", "categories": [ { - "order": 6, + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 4, "en": "animation", - "cn": "动画类" + "cn": "作画类" } ] }, - "1021": { - "en": "Program", - "cn": "程序", - "jp": "プログラム", + "158": { + "en": "CG Producer", + "cn": "CG 制作人", + "jp": "CGプロデューサー CGIプロデューサー", "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, { "order": 8, "en": "production", - "cn": "制作/程序类" + "cn": "制作类" } ] }, - "1022": { - "en": "", - "cn": "协力", - "jp": "協力", + "159": { + "en": "Publicity Producer", + "cn": "宣传制片人", + "jp": "宣伝プロデューサー", "categories": [ { - "order": 0, - "en": "assistant", - "cn": "助理类" + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1023": { - "en": "", - "cn": "CG 监修", - "jp": "CG 監修", + "160": { + "en": "Art Producer", + "cn": "美术制作人", + "jp": "美術プロデューサー", "categories": [ { - "order": 5, + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 6, "en": "art", "cn": "美术类" } ] }, - "1024": { - "en": "", - "cn": "SD原画", - "jp": "", + "161": { + "en": "Sound Producer", + "cn": "音响制作人", + "jp": "音響プロデューサー", "categories": [ { - "order": 5, + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "162": { + "en": "CG Production Coordinator", + "cn": "CG 制作进行", + "jp": "CG進行", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "163": { + "en": "Art Production Coordinator", + "cn": "美术制作进行", + "jp": "美術進行", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 6, "en": "art", "cn": "美术类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1025": { - "en": "", - "cn": "背景", - "jp": "", + "164": { + "en": "Assistant Art Director", + "cn": "美术监督助理", + "jp": "美術監督補佐", "categories": [ { - "order": 5, + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 6, "en": "art", "cn": "美术类" } ] }, - "1026": { - "en": "", - "cn": "监修", - "jp": "監修", + "165": { + "en": "Assistant Color Designer", + "cn": "色彩设计助理", + "jp": "色彩設計補佐", "categories": [ { - "order": 2, - "en": "director", - "cn": "导演类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" } ] }, - "1027": { - "en": "", - "cn": "系列构成", - "jp": "シリーズ構成", + "166": { + "en": "Assistant Director of Photography", + "cn": "摄影监督助理", + "jp": "撮影監督補佐", "categories": [ { - "order": 3, - "en": "storyboard", - "cn": "脚本类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "1028": { - "en": "", - "cn": "企画", - "jp": "", + "167": { + "en": "Assistant Production Desk", + "cn": "制作管理助理", + "jp": "制作デスク補佐", "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, { "order": 8, "en": "production", - "cn": "制作/程序类" + "cn": "制作类" } ] }, - "1029": { - "en": "Mechanical Design", - "cn": "机械设定", - "jp": "メカニック設定", + "168": { + "en": "Assistant Design Manager", + "cn": "设定制作助理", + "jp": "設定制作補佐", "categories": [ { - "order": 4, + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 5, "en": "design", "cn": "设定类" } ] - }, - "1030": { - "en": "Sound Director", - "cn": "音响监督", - "jp": "", + } + }, + "game": { + "1001": { + "en": "Developer", + "cn": "开发", + "jp": "開発元", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 1, + "en": "producer", + "cn": "发行类" } ] }, - "1031": { - "en": "", - "cn": "作画监督", - "jp": "作画監督", + "1002": { + "en": "Publisher", + "cn": "发行", + "jp": "発売元", "categories": [ { - "order": 5, - "en": "art", - "cn": "美术类" + "order": 1, + "en": "producer", + "cn": "发行类" } ] }, - "1032": { - "en": "Producer", - "cn": "制作人", - "jp": "プロデューサー", + "1003": { + "en": "Game Designer", + "cn": "游戏设计师", + "jp": "ゲームクリエイター", "categories": [ { "order": 2, @@ -2341,10 +2480,22 @@ } ] }, - "1033": { - "en": "Cover Art", - "cn": "海报", - "jp": "表紙", + "1004": { + "en": "", + "cn": "剧本", + "jp": "腳本", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] + }, + "1005": { + "en": "", + "cn": "美工", + "jp": "美術", "categories": [ { "order": 5, @@ -2352,132 +2503,468 @@ "cn": "美术类" } ] - } - }, - "book": { - "2001": { - "en": "", - "cn": "作者", - "jp": "" }, - "2002": { - "en": "", - "cn": "作画", - "jp": "" - }, - "2003": { + "1006": { "en": "", - "cn": "插图", - "jp": "イラスト" + "cn": "音乐", + "jp": "音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, - "2004": { + "1007": { "en": "", - "cn": "出版社", - "jp": "" + "cn": "关卡设计", + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, - "2005": { - "en": "", - "cn": "连载杂志", - "jp": "掲載誌" + "1008": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定 キャラクターデザイン", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, - "2006": { - "en": "", - "cn": "译者", - "jp": "" + "1009": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, - "2007": { - "en": "Original Creator/Original Work", - "cn": "原作", - "jp": "" + "1010": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, - "2008": { - "en": "Guest", - "cn": "客串", - "jp": "ゲスト" + "1011": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, - "2009": { - "en": "Original Character Design", - "cn": "人物原案", - "jp": "キャラクター原案" + "1012": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] }, - "2010": { + "1013": { "en": "", - "cn": "脚本", - "jp": "シナリオ" + "cn": "原画", + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, - "2011": { - "en": "Label", - "cn": "书系", - "jp": "" + "1014": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, - "2012": { + "1015": { "en": "", - "cn": "出品方", - "jp": "" + "cn": "原作", + "jp": "", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] }, - "2013": { - "en": "Brand", - "cn": "图书品牌", - "jp": "ブランド" - } - }, - "music": { - "3001": { - "en": "Artist", - "cn": "艺术家", - "jp": "" + "1016": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 演出 シリーズ監督", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, - "3002": { - "en": "Producer", - "cn": "制作人", - "jp": "" + "1017": { + "en": "", + "cn": "动画监督", + "jp": "アニメーション監督", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, - "3003": { - "en": "Composer", - "cn": "作曲", - "jp": "" + "1018": { + "en": "", + "cn": "制作总指挥", + "jp": "", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, - "3004": { - "en": "Label", - "cn": "厂牌", - "jp": "レーベル" + "1019": { + "en": "QC", + "cn": "QC", + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, - "3005": { - "en": "Original Creator/Original Work", - "cn": "原作", - "jp": "" + "1020": { + "en": "", + "cn": "动画剧本", + "jp": "アニメーション脚本", + "categories": [ + { + "order": 6, + "en": "animation", + "cn": "动画类" + } + ] }, - "3006": { - "en": "Lyric", - "cn": "作词", - "jp": "" + "1021": { + "en": "Program", + "cn": "程序", + "jp": "プログラム", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] }, - "3007": { - "en": "Recording", - "cn": "录音", - "jp": "" + "1022": { + "en": "", + "cn": "协力", + "jp": "協力", + "categories": [ + { + "order": 0, + "en": "assistant", + "cn": "助理类" + } + ] }, - "3008": { - "en": "Arrange", - "cn": "编曲", - "jp": "" + "1023": { + "en": "", + "cn": "CG 监修", + "jp": "CG 監修", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, - "3009": { - "en": "Illustrator", - "cn": "插图", - "jp": "" + "1024": { + "en": "", + "cn": "SD原画", + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, - "3010": { - "en": "Scenario", - "cn": "脚本", - "jp": "シナリオ" + "1025": { + "en": "", + "cn": "背景", + "jp": "", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] }, - "3011": { - "en": "O.P.", - "cn": "出版方", - "jp": "音楽出版社" + "1026": { + "en": "", + "cn": "监修", + "jp": "監修", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] }, - "3012": { + "1027": { + "en": "", + "cn": "系列构成", + "jp": "シリーズ構成", + "categories": [ + { + "order": 3, + "en": "storyboard", + "cn": "脚本类" + } + ] + }, + "1028": { + "en": "", + "cn": "企画", + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作/程序类" + } + ] + }, + "1029": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定", + "categories": [ + { + "order": 4, + "en": "design", + "cn": "设定类" + } + ] + }, + "1030": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "1031": { + "en": "", + "cn": "作画监督", + "jp": "作画監督", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] + }, + "1032": { + "en": "Producer", + "cn": "制作人", + "jp": "プロデューサー", + "categories": [ + { + "order": 2, + "en": "director", + "cn": "导演类" + } + ] + }, + "1033": { + "en": "Cover Art", + "cn": "海报", + "jp": "表紙", + "categories": [ + { + "order": 5, + "en": "art", + "cn": "美术类" + } + ] + } + }, + "book": { + "2001": { + "en": "", + "cn": "作者", + "jp": "" + }, + "2002": { + "en": "", + "cn": "作画", + "jp": "" + }, + "2003": { + "en": "", + "cn": "插图", + "jp": "イラスト" + }, + "2004": { + "en": "", + "cn": "出版社", + "jp": "" + }, + "2005": { + "en": "", + "cn": "连载杂志", + "jp": "掲載誌" + }, + "2006": { + "en": "", + "cn": "译者", + "jp": "" + }, + "2007": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "2008": { + "en": "Guest", + "cn": "客串", + "jp": "ゲスト" + }, + "2009": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラクター原案" + }, + "2010": { + "en": "", + "cn": "脚本", + "jp": "シナリオ" + }, + "2011": { + "en": "Label", + "cn": "书系", + "jp": "" + }, + "2012": { + "en": "", + "cn": "出品方", + "jp": "" + }, + "2013": { + "en": "Brand", + "cn": "图书品牌", + "jp": "ブランド" + } + }, + "music": { + "3001": { + "en": "Artist", + "cn": "艺术家", + "jp": "" + }, + "3002": { + "en": "Producer", + "cn": "制作人", + "jp": "" + }, + "3003": { + "en": "Composer", + "cn": "作曲", + "jp": "" + }, + "3004": { + "en": "Label", + "cn": "厂牌", + "jp": "レーベル" + }, + "3005": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "" + }, + "3006": { + "en": "Lyric", + "cn": "作词", + "jp": "" + }, + "3007": { + "en": "Recording", + "cn": "录音", + "jp": "" + }, + "3008": { + "en": "Arrange", + "cn": "编曲", + "jp": "" + }, + "3009": { + "en": "Illustrator", + "cn": "插图", + "jp": "" + }, + "3010": { + "en": "Scenario", + "cn": "脚本", + "jp": "シナリオ" + }, + "3011": { + "en": "O.P.", + "cn": "出版方", + "jp": "音楽出版社" + }, + "3012": { "en": "Mastering", "cn": "母带制作", "jp": "" @@ -2669,23 +3156,343 @@ "cn": "书系", "jp": "" }, - "2012": { - "en": "", - "cn": "出品方", - "jp": "" + "2012": { + "en": "", + "cn": "出品方", + "jp": "" + }, + "2013": { + "en": "Brand", + "cn": "图书品牌", + "jp": "ブランド" + } + }, + "2": { + "1": { + "en": "Original Creator/Original Work", + "cn": "原作", + "jp": "", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "2": { + "en": "Director/Direction", + "cn": "导演", + "jp": "監督 シリーズ監督", + "rdf": "directedBy", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "3": { + "en": "Script/Screenplay", + "cn": "脚本", + "jp": "シナリオ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] + }, + "4": { + "en": "Storyboard", + "cn": "分镜", + "jp": "コンテ ストーリーボード 画コンテ 絵コンテ", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] + }, + "5": { + "en": "Episode Direction", + "cn": "演出", + "jp": "", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "6": { + "en": "Music", + "cn": "音乐", + "jp": "楽曲 音楽", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" + } + ] + }, + "7": { + "en": "Original Character Design", + "cn": "人物原案", + "jp": "キャラ原案", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "8": { + "en": "Character Design", + "cn": "人物设定", + "jp": "キャラ設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "9": { + "en": "Layout", + "cn": "构图", + "jp": "レイアウト", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + } + ] + }, + "10": { + "en": "Series Composition", + "cn": "系列构成", + "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] + }, + "11": { + "en": "Art Direction", + "cn": "美术监督", + "jp": "美術監督 アートディレクション 背景監督", + "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "13": { + "en": "Color Design", + "cn": "色彩设计", + "jp": "色彩設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "14": { + "en": "Chief Animation Director", + "cn": "总作画监督", + "jp": "チーフ作画監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "15": { + "en": "Animation Direction", + "cn": "作画监督", + "jp": "作監 アニメーション演出", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "16": { + "en": "Mechanical Design", + "cn": "机械设定", + "jp": "メカニック設定", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "17": { + "en": "Director of Photography", + "cn": "摄影监督", + "jp": "撮影監督", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "18": { + "en": "Supervision/Supervisor", + "cn": "监修", + "jp": "シリーズ監修 スーパーバイザー", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + } + ] + }, + "19": { + "en": "Prop Design", + "cn": "道具设计", + "jp": "プロップデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "20": { + "en": "Key Animation", + "cn": "原画", + "jp": "作画 原画", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "21": { + "en": "2nd Key Animation", + "cn": "第二原画", + "jp": "原画協力", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "22": { + "en": "Animation Check", + "cn": "动画检查", + "jp": "動画チェック", + "categories": [ + { + "order": 3, + "en": "direction", + "cn": "演出类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "23": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー(⚠️ 待合并)" + }, + "24": { + "en": "Associate Producer", + "cn": "制作助理", + "jp": "製作補佐 アソシエイトプロデューサー", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] }, - "2013": { - "en": "Brand", - "cn": "图书品牌", - "jp": "ブランド" - } - }, - "2": { - "1": { - "en": "Original Creator/Original Work", - "cn": "原作", - "jp": "", + "25": { + "en": "Background Art", + "cn": "背景美术", + "jp": "背景", "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, { "order": 5, "en": "design", @@ -2693,59 +3500,63 @@ } ] }, - "2": { - "en": "Director/Direction", - "cn": "导演", - "jp": "監督 シリーズ監督", - "rdf": "directedBy", + "26": { + "en": "Color Setting", + "cn": "色彩指定", + "jp": "", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 5, + "en": "design", + "cn": "设定类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" } ] }, - "3": { - "en": "Script/Screenplay", - "cn": "脚本", - "jp": "シナリオ", + "27": { + "en": "Digital Paint", + "cn": "数码绘图", + "jp": "", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "4": { - "en": "Storyboard", - "cn": "分镜", - "jp": "コンテ ストーリーボード 画コンテ 絵コンテ", + "28": { + "en": "Editing", + "cn": "剪辑", + "jp": "編集", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "5": { - "en": "Episode Direction", - "cn": "演出", + "29": { + "en": "Original Plan", + "cn": "原案", "jp": "", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "6": { - "en": "Music", - "cn": "音乐", - "jp": "楽曲 音楽", + "30": { + "en": "Theme Song Arrangement", + "cn": "主题歌编曲", + "jp": "", "categories": [ { "order": 7, @@ -2754,155 +3565,135 @@ } ] }, - "7": { - "en": "Original Character Design", - "cn": "人物原案", - "jp": "キャラ原案", + "31": { + "en": "Theme Song Composition", + "cn": "主题歌作曲", + "jp": "", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "8": { - "en": "Character Design", - "cn": "人物设定", - "jp": "キャラ設定", + "32": { + "en": "Theme Song Lyrics", + "cn": "主题歌作词", + "jp": "", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "9": { - "en": "Layout", - "cn": "构图", - "jp": "レイアウト", + "33": { + "en": "Theme Song Performance", + "cn": "主题歌演出", + "jp": "", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "10": { - "en": "Series Composition", - "cn": "系列构成", - "jp": "シナリオディレクター 構成 シリーズ構成 脚本構成", + "34": { + "en": "Inserted Song Performance", + "cn": "插入歌演出", + "jp": "", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "11": { - "en": "Art Direction", - "cn": "美术监督", - "jp": "美術監督 アートディレクション 背景監督", + "35": { + "en": "Planning", + "cn": "企画", + "jp": "プランニング 企画開発", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" - }, - { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "13": { - "en": "Color Design", - "cn": "色彩设计", - "jp": "色彩設定", + "36": { + "en": "Planning Producer", + "cn": "企划制作人", + "jp": "企画プロデューサー 企画営業プロデューサー", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" - }, - { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "14": { - "en": "Chief Animation Director", - "cn": "总作画监督", - "jp": "チーフ作画監督", + "37": { + "en": "Production Manager", + "cn": "制作管理", + "jp": "制作マネージャー 制作担当 制作班長", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "15": { - "en": "Animation Direction", - "cn": "作画监督", - "jp": "作監 アニメーション演出", + "38": { + "en": "Publicity", + "cn": "宣传", + "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "16": { - "en": "Mechanical Design", - "cn": "机械设定", - "jp": "メカニック設定", - "categories": [ - { - "order": 5, - "en": "design", - "cn": "设定类" + "39": { + "en": "Recording", + "cn": "录音", + "jp": "録音", + "categories": [ + { + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "17": { - "en": "Director of Photography", - "cn": "摄影监督", - "jp": "撮影監督", + "40": { + "en": "Recording Assistant", + "cn": "录音助理", + "jp": "録音アシスタント 録音助手", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 7, + "en": "music", + "cn": "声音类" }, { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "18": { - "en": "Supervision/Supervisor", - "cn": "监修", - "jp": "シリーズ監修 スーパーバイザー", + "41": { + "en": "Series Production Director", + "cn": "系列监督", + "jp": "", "categories": [ { "order": 1, @@ -2911,10 +3702,22 @@ } ] }, - "19": { - "en": "Prop Design", - "cn": "道具设计", - "jp": "プロップデザイン", + "42": { + "en": "Production", + "cn": "製作", + "jp": "", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "43": { + "en": "Setting", + "cn": "设定", + "jp": "設定", "categories": [ { "order": 5, @@ -2923,66 +3726,51 @@ } ] }, - "20": { - "en": "Key Animation", - "cn": "原画", - "jp": "作画 原画", + "44": { + "en": "Sound Director", + "cn": "音响监督", + "jp": "", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 1, + "en": "director", + "cn": "导演类" }, { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "21": { - "en": "2nd Key Animation", - "cn": "第二原画", - "jp": "原画協力", + "45": { + "en": "Sound", + "cn": "音响", + "jp": "音響 音声", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "22": { - "en": "Animation Check", - "cn": "动画检查", - "jp": "動画チェック", + "46": { + "en": "Sound Effects", + "cn": "音效", + "jp": "音響効果", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "23": { - "en": "Assistant Producer", - "cn": "助理制片人", - "jp": "協力プロデューサー(⚠️ 待合并)" - }, - "24": { - "en": "Associate Producer", - "cn": "制作助理", - "jp": "製作補佐 アソシエイトプロデューサー", + "47": { + "en": "Special Effects", + "cn": "特效", + "jp": "特殊効果", "categories": [ { "order": 8, @@ -2990,50 +3778,45 @@ "cn": "制作类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "25": { - "en": "Background Art", - "cn": "背景美术", - "jp": "背景", + "48": { + "en": "ADR Director", + "cn": "配音监督", + "jp": "", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" + "order": 7, + "en": "music", + "cn": "声音类" }, { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 1, + "en": "director", + "cn": "导演类" } ] }, - "26": { - "en": "Color Setting", - "cn": "色彩指定", + "49": { + "en": "Co-Director", + "cn": "联合导演", "jp": "", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" - }, - { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 1, + "en": "director", + "cn": "导演类" } ] }, - "27": { - "en": "Digital Paint", - "cn": "数码绘图", - "jp": "", + "50": { + "en": "Setting", + "cn": "背景设定", + "jp": "基本設定 場面設定 場面設計 設定", "categories": [ { "order": 5, @@ -3042,94 +3825,134 @@ } ] }, - "28": { - "en": "Editing", - "cn": "剪辑", - "jp": "編集", + "51": { + "en": "In-Between Animation", + "cn": "补间动画", + "jp": "動画", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "29": { - "en": "Original Plan", - "cn": "原案", - "jp": "", + "52": { + "en": "Executive Producer", + "cn": "执行制片人", + "jp": "製作総指揮", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "30": { - "en": "Theme Song Arrangement", - "cn": "主题歌编曲", - "jp": "", + "53": { + "en": "Assistant Producer", + "cn": "助理制片人", + "jp": "協力プロデューサー アシスタントプロデューサー", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "31": { - "en": "Theme Song Composition", - "cn": "主题歌作曲", - "jp": "", + "54": { + "en": "Producer", + "cn": "制片人", + "jp": "プロデュース プロデューサー", + "categories": [ + { + "order": 9, + "en": "producer", + "cn": "制片类" + } + ] + }, + "55": { + "en": "Music Assistant", + "cn": "音乐助理", + "jp": "音楽アシスタント", "categories": [ { "order": 7, "en": "music", "cn": "声音类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "56": { + "en": "Assistant Production Manager", + "cn": "制作进行", + "jp": "制作進行", + "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "32": { - "en": "Theme Song Lyrics", - "cn": "主题歌作词", - "jp": "", + "57": { + "en": "Casting Director", + "cn": "演员监督", + "jp": "キャスティングコーディネーター監督", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 1, + "en": "director", + "cn": "导演类" } ] }, - "33": { - "en": "Theme Song Performance", - "cn": "主题歌演出", - "jp": "", + "58": { + "en": "Chief Producer", + "cn": "总制片人", + "jp": "チーフプロデューサー チーフ制作 総合プロデューサー", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "34": { - "en": "Inserted Song Performance", - "cn": "插入歌演出", + "59": { + "en": "Co-Producer", + "cn": "联合制片人", "jp": "", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "35": { - "en": "Planning", - "cn": "企画", - "jp": "プランニング 企画開発", + "60": { + "en": "Dialogue Editing", + "cn": "台词编辑", + "jp": "台詞編集", "categories": [ { "order": 8, @@ -3138,34 +3961,44 @@ } ] }, - "36": { - "en": "Planning Producer", - "cn": "企划制作人", - "jp": "企画プロデューサー 企画営業プロデューサー", + "61": { + "en": "Post-Production Assistant", + "cn": "后期制片协调", + "jp": "ポストプロダクション協力", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "37": { - "en": "Production Manager", - "cn": "制作管理", - "jp": "制作マネージャー 制作担当 制作班長", + "62": { + "en": "Production Assistant", + "cn": "制作助理", + "jp": "制作アシスタント 制作補佐 製作補", "categories": [ { "order": 8, "en": "production", "cn": "制作类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "38": { - "en": "Publicity", - "cn": "宣传", - "jp": "パブリシティ 宣伝 広告宣伝 番組宣伝 製作宣伝", + "63": { + "en": "Production", + "cn": "制作", + "jp": "製作 製作スタジオ", "categories": [ { "order": 8, @@ -3174,28 +4007,40 @@ } ] }, - "39": { - "en": "Recording", - "cn": "录音", - "jp": "録音", + "64": { + "en": "Production Coordination", + "cn": "制作协调", + "jp": "制作コーディネーター", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "40": { - "en": "Recording Assistant", - "cn": "录音助理", - "jp": "録音アシスタント 録音助手", + "65": { + "en": "Music Work", + "cn": "音乐制作", + "jp": "楽曲制作 音楽制作", "categories": [ { "order": 7, "en": "music", "cn": "声音类" }, + { + "order": 8, + "en": "production", + "cn": "制作类" + } + ] + }, + "66": { + "en": "Special Thanks", + "cn": "特别鸣谢", + "jp": "友情協力", + "categories": [ { "order": 12, "en": "assistant", @@ -3203,23 +4048,28 @@ } ] }, - "41": { - "en": "Series Production Director", - "cn": "系列监督", - "jp": "", + "67": { + "en": "Animation Work", + "cn": "动画制作", + "jp": "アニメーション制作 アニメ制作 アニメーション", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "42": { - "en": "Production", - "cn": "製作", - "jp": "", + "69": { + "en": "CG Director", + "cn": "CG 导演", + "jp": "CG 監督", "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, { "order": 8, "en": "production", @@ -3227,11 +4077,33 @@ } ] }, - "43": { - "en": "Setting", - "cn": "设定", - "jp": "設定", + "70": { + "en": "Mechanical Animation Direction", + "cn": "机械作画监督", + "jp": "メカニック作監", + "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "71": { + "en": "Art Design", + "cn": "美术设计", + "jp": "美術設定", "categories": [ + { + "order": 6, + "en": "art", + "cn": "美术类" + }, { "order": 5, "en": "design", @@ -3239,10 +4111,10 @@ } ] }, - "44": { - "en": "Sound Director", - "cn": "音响监督", - "jp": "", + "72": { + "en": "Assistant Director", + "cn": "副导演", + "jp": "助監督 / 監督補佐", "categories": [ { "order": 1, @@ -3250,127 +4122,127 @@ "cn": "导演类" }, { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "45": { - "en": "Sound", - "cn": "音响", - "jp": "音響 音声", + "73": { + "en": "OP ED", + "cn": "OP・ED 分镜", + "jp": "OP・ED 分鏡", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "46": { - "en": "Sound Effects", - "cn": "音效", - "jp": "音響効果", + "74": { + "en": "Chief Director", + "cn": "总导演", + "jp": "総監督 / チーフディレクター", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 1, + "en": "director", + "cn": "导演类" } ] }, - "47": { - "en": "Special Effects", - "cn": "特效", - "jp": "特殊効果", + "75": { + "en": "3DCG", + "cn": "3DCG", + "jp": "", "categories": [ { "order": 8, "en": "production", "cn": "制作类" - }, - { - "order": 11, - "en": "visual", - "cn": "视觉类" } ] }, - "48": { - "en": "ADR Director", - "cn": "配音监督", - "jp": "", - "categories": [ - { - "order": 7, - "en": "music", - "cn": "声音类" + "76": { + "en": "Work Assistance", + "cn": "制作协力", + "jp": "制作協力 / 作品協力", + "categories": [ + { + "order": 8, + "en": "production", + "cn": "制作类" }, { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "49": { - "en": "Co-Director", - "cn": "联合导演", - "jp": "", + "77": { + "en": "Action Animation Direction", + "cn": "动作作画监督", + "jp": "アクション作画監督", "categories": [ { "order": 1, "en": "director", "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "50": { - "en": "Setting", - "cn": "背景设定", - "jp": "基本設定 場面設定 場面設計 設定", + "80": { + "en": "Supervising Producer", + "cn": "监制", + "jp": "プロデュース", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "51": { - "en": "In-Between Animation", - "cn": "补间动画", - "jp": "動画", + "81": { + "en": "Assistance", + "cn": "协力", + "jp": "協力", "categories": [ { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "52": { - "en": "Executive Producer", - "cn": "执行制片人", - "jp": "製作総指揮", + "82": { + "en": "Photography", + "cn": "摄影", + "jp": "撮影", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "53": { - "en": "Assistant Producer", - "cn": "助理制片人", - "jp": "協力プロデューサー アシスタントプロデューサー", + "83": { + "en": "Assistant Production Manager Assistance", + "cn": "制作进行协力", + "jp": "制作進行協力", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 8, + "en": "production", + "cn": "制作类" }, { "order": 12, @@ -3379,22 +4251,23 @@ } ] }, - "54": { - "en": "Producer", - "cn": "制片人", - "jp": "プロデュース プロデューサー", + "84": { + "en": "Design Manager", + "cn": "设定制作", + "jp": "設定制作 制作設定", + "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "55": { - "en": "Music Assistant", - "cn": "音乐助理", - "jp": "音楽アシスタント", + "85": { + "en": "Music Producer", + "cn": "音乐制作人", + "jp": "音楽プロデューサー", "categories": [ { "order": 7, @@ -3402,18 +4275,22 @@ "cn": "声音类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "56": { - "en": "Assistant Production Manager", - "cn": "制作进行", - "jp": "制作進行", - "desc": "管理动画的制作时程、协调各部门作业、回收作画原稿等", + "86": { + "en": "3DCG Director", + "cn": "3DCG 导演", + "jp": "3DCG 監督", "categories": [ + { + "order": 1, + "en": "director", + "cn": "导演类" + }, { "order": 8, "en": "production", @@ -3421,68 +4298,78 @@ } ] }, - "57": { - "en": "Casting Director", - "cn": "演员监督", - "jp": "キャスティングコーディネーター監督", + "87": { + "en": "Animation Producer", + "cn": "动画制片人", + "jp": "アニメプロデューサー アニメーションプロデューサー", "categories": [ { "order": 9, "en": "producer", "cn": "制片类" - }, - { - "order": 1, - "en": "director", - "cn": "导演类" } ] }, - "58": { - "en": "Chief Producer", - "cn": "总制片人", - "jp": "チーフプロデューサー チーフ制作 総合プロデューサー", + "88": { + "en": "Special Effects Animation Direction", + "cn": "特效作画监督", + "jp": "エフェクト作画監督", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "59": { - "en": "Co-Producer", - "cn": "联合制片人", - "jp": "", + "89": { + "en": "Chief Episode Direction", + "cn": "主演出", + "jp": "チーフ演出", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "60": { - "en": "Dialogue Editing", - "cn": "台词编辑", - "jp": "台詞編集", + "90": { + "en": "Assistant Animation Direction", + "cn": "作画监督助理", + "jp": "作画監督補佐", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "61": { - "en": "Post-Production Assistant", - "cn": "后期制片协调", - "jp": "ポストプロダクション協力", + "91": { + "en": "Assistant Episode Direction", + "cn": "演出助理", + "jp": "演出助手 演出補佐 演出協力", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 3, + "en": "direction", + "cn": "演出类" }, { "order": 12, @@ -3491,92 +4378,128 @@ } ] }, - "62": { - "en": "Production Assistant", - "cn": "制作助理", - "jp": "制作アシスタント 制作補佐 製作補", + "92": { + "en": "Main Animator", + "cn": "主动画师", + "jp": "メインアニメーター", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 3, + "en": "direction", + "cn": "演出类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "93": { + "en": "", + "cn": "上色", + "jp": "仕上", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "94": { + "en": "", + "cn": "上色检查", + "jp": "仕上検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" + } + ] + }, + "95": { + "en": "", + "cn": "色彩检查", + "jp": "色検查", + "categories": [ + { + "order": 10, + "en": "colorist", + "cn": "色彩类" } ] }, - "63": { - "en": "Production", - "cn": "制作", - "jp": "製作 製作スタジオ", + "96": { + "en": "", + "cn": "美术板", + "jp": "美術ボード", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 6, + "en": "art", + "cn": "美术类" } ] }, - "64": { - "en": "Production Coordination", - "cn": "制作协调", - "jp": "制作コーディネーター", + "97": { + "en": "", + "cn": "美术", + "jp": "美術", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 6, + "en": "art", + "cn": "美术类" } ] }, - "65": { - "en": "Music Work", - "cn": "音乐制作", - "jp": "楽曲制作 音楽制作", + "98": { + "en": "", + "cn": "印象板", + "jp": "イメージボード", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 6, + "en": "art", + "cn": "美术类" }, { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "66": { - "en": "Special Thanks", - "cn": "特别鸣谢", - "jp": "友情協力", + "99": { + "en": "2D WORKS", + "cn": "2D 设计", + "jp": "2D ワークス", "categories": [ { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "67": { - "en": "Animation Work", - "cn": "动画制作", - "jp": "アニメーション制作 アニメ制作 アニメーション", + "100": { + "en": "3D WORKS", + "cn": "3D 设计", + "jp": "3D ワークス", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "69": { - "en": "CG Director", - "cn": "CG 导演", - "jp": "CG 監督", + "101": { + "en": "Technical Director", + "cn": "技术导演", + "jp": "テクニカルディレクター", "categories": [ { "order": 1, @@ -3590,10 +4513,10 @@ } ] }, - "70": { - "en": "Mechanical Animation Direction", - "cn": "机械作画监督", - "jp": "メカニック作監", + "102": { + "en": "", + "cn": "特技导演", + "jp": "特撮監督", "categories": [ { "order": 1, @@ -3601,38 +4524,33 @@ "cn": "导演类" }, { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "71": { - "en": "Art Design", - "cn": "美术设计", - "jp": "美術設定", + "103": { + "en": "Color Script", + "cn": "色彩脚本", + "jp": "カラースクリプト", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" - }, - { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 10, + "en": "colorist", + "cn": "色彩类" } ] }, - "72": { - "en": "Assistant Director", - "cn": "副导演", - "jp": "助監督 / 監督補佐", + "104": { + "en": "", + "cn": "分镜协力", + "jp": "絵コンテ協力 コンテ協力", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" }, { "order": 12, @@ -3641,63 +4559,63 @@ } ] }, - "73": { - "en": "OP ED", - "cn": "OP・ED 分镜", - "jp": "OP・ED 分鏡", + "105": { + "en": "", + "cn": "分镜抄写", + "jp": "絵コンテ清書 コンテ清書", "categories": [ { "order": 2, "en": "storyboard", "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "74": { - "en": "Chief Director", - "cn": "总导演", - "jp": "総監督 / チーフディレクター", + "106": { + "en": "Sub-Character Design", + "cn": "副人物设定", + "jp": "サブキャラクターデザイン", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "75": { - "en": "3DCG", - "cn": "3DCG", - "jp": "", + "107": { + "en": "Guest character design", + "cn": "客座人物设定", + "jp": "ゲストキャラクターデザイン", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "76": { - "en": "Work Assistance", - "cn": "制作协力", - "jp": "制作協力 / 作品協力", + "108": { + "en": "", + "cn": "构图监修", + "jp": "レイアウト監修", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" - }, - { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "77": { - "en": "Action Animation Direction", - "cn": "动作作画监督", - "jp": "アクション作画監督", + "109": { + "en": "", + "cn": "构图作画监督", + "jp": "レイアウト作画監督 レイアウト作監", "categories": [ { "order": 1, @@ -3711,76 +4629,97 @@ } ] }, - "80": { - "en": "Supervising Producer", - "cn": "监制", - "jp": "プロデュース", + "110": { + "en": "", + "cn": "总作画监督助理", + "jp": "総作画監督補佐 総作監補佐", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "81": { - "en": "Assistance", - "cn": "协力", - "jp": "協力", + "111": { + "en": "", + "cn": "道具作画监督", + "jp": "プロップ作画監督 プロップ作監", "categories": [ { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" + } + ] + }, + "112": { + "en": "Concept Design", + "cn": "概念设计", + "jp": "コンセプトデザイン", + "categories": [ + { + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "82": { - "en": "Photography", - "cn": "摄影", - "jp": "撮影", + "113": { + "en": "Costume Design", + "cn": "服装设计", + "jp": "衣装デザイン 衣装設定", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "83": { - "en": "Assistant Production Manager Assistance", - "cn": "制作进行协力", - "jp": "制作進行協力", + "114": { + "en": "Title Design", + "cn": "标题设计", + "jp": "タイトルデザイン", "categories": [ { - "order": 8, - "en": "production", - "cn": "制作类" - }, - { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "84": { - "en": "Design Manager", - "cn": "设定制作", - "jp": "設定制作 制作設定", - "desc": "有时需要额外的设计工作,联系负责部门并监督工作确保交付", + "115": { + "en": "Setting Cooperation", + "cn": "设定协力", + "jp": "設定協力 デザイン協力", "categories": [ { "order": 5, "en": "design", "cn": "设定类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "85": { - "en": "Music Producer", - "cn": "音乐制作人", - "jp": "音楽プロデューサー", + "116": { + "en": "Music Director", + "cn": "音乐监督", + "jp": "音楽ディレクター", "categories": [ { "order": 7, @@ -3788,101 +4727,81 @@ "cn": "声音类" }, { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 1, + "en": "director", + "cn": "导演类" } ] }, - "86": { - "en": "3DCG Director", - "cn": "3DCG 导演", - "jp": "3DCG 監督", + "117": { + "en": "Music Selection", + "cn": "选曲", + "jp": "選曲", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" - }, - { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "87": { - "en": "Animation Producer", - "cn": "动画制片人", - "jp": "アニメプロデューサー アニメーションプロデューサー", + "118": { + "en": "Inserted Song Lyrics", + "cn": "插入歌作词", + "jp": "Insert Song Lyrics", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "88": { - "en": "Special Effects Animation Direction", - "cn": "特效作画监督", - "jp": "エフェクト作画監督", + "119": { + "en": "Inserted Song Composition", + "cn": "插入歌作曲", + "jp": "Insert Song Composition", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" - }, - { - "order": 8, - "en": "production", - "cn": "制作类" - }, - { - "order": 11, - "en": "visual", - "cn": "视觉类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "89": { - "en": "Chief Episode Direction", - "cn": "主演出", - "jp": "チーフ演出", + "120": { + "en": "Inserted Song Arrangement", + "cn": "插入歌编曲", + "jp": "Insert Song Arrangement", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "90": { - "en": "Assistant Animation Direction", - "cn": "作画监督助理", - "jp": "作画監督補佐", + "121": { + "en": "Creative Producer", + "cn": "创意制片人", + "jp": "クリエイティブプロデューサー", "categories": [ { - "order": 12, - "en": "assistant", - "cn": "助理类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "91": { - "en": "Assistant Episode Direction", - "cn": "演出助理", - "jp": "演出助手 演出補佐 演出協力", + "122": { + "en": "Associate Producer", + "cn": "副制片人", + "jp": "アソシエイトプロデューサー", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 9, + "en": "producer", + "cn": "制片类" }, { "order": 12, @@ -3891,116 +4810,116 @@ } ] }, - "92": { - "en": "Main Animator", - "cn": "主动画师", - "jp": "メインアニメーター", + "123": { + "en": "Chief Production Supervisor", + "cn": "制作统括", + "jp": "制作統括", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" - }, - { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "93": { - "en": "", - "cn": "上色", - "jp": "仕上", + "124": { + "en": "Line Producer", + "cn": "现场制片人", + "jp": "ラインプロデューサー", "categories": [ { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "94": { - "en": "", - "cn": "上色检查", - "jp": "仕上検查", + "125": { + "en": "Literary Producer", + "cn": "文艺制作", + "jp": "文芸制作", "categories": [ { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 9, + "en": "producer", + "cn": "制片类" } ] }, - "95": { - "en": "", - "cn": "色彩检查", - "jp": "色検查", + "127": { + "en": "Planning Cooperation", + "cn": "企画协力", + "jp": "企画協力", "categories": [ { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 9, + "en": "producer", + "cn": "制片类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" } ] }, - "96": { - "en": "", - "cn": "美术板", - "jp": "美術ボード", + "128": { + "en": "OP・ED Direction", + "cn": "OP・ED 演出", + "jp": "OP・ED 演出", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "97": { - "en": "", - "cn": "美术", - "jp": "美術", + "129": { + "en": "Bank Storyboard Direction", + "cn": "Bank 分镜演出", + "jp": "バンク コンテ・演出", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "98": { - "en": "", - "cn": "印象板", - "jp": "イメージボード", + "130": { + "en": "Live Storyboard Direction", + "cn": "Live 分镜演出", + "jp": "ライブ コンテ・演出", "categories": [ { - "order": 6, - "en": "art", - "cn": "美术类" - }, - { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "99": { - "en": "2D WORKS", - "cn": "2D 设计", - "jp": "2D ワークス", + "131": { + "en": "Meta-story Storyboard Direction", + "cn": "剧中剧分镜演出", + "jp": "劇中劇 コンテ・演出", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 3, + "en": "direction", + "cn": "演出类" } ] }, - "100": { - "en": "3D WORKS", - "cn": "3D 设计", - "jp": "3D ワークス", + "132": { + "en": "Meta-story Character Design", + "cn": "剧中剧人设", + "jp": "劇中劇 キャラクターデザイン", "categories": [ { "order": 5, @@ -4009,103 +4928,108 @@ } ] }, - "101": { - "en": "Technical Director", - "cn": "技术导演", - "jp": "テクニカルディレクター", + "133": { + "en": "Visual Director", + "cn": "视觉导演", + "jp": "ビジュアルディレクター", "categories": [ + { + "order": 11, + "en": "visual", + "cn": "视觉类" + }, { "order": 1, "en": "director", "cn": "导演类" - }, - { - "order": 8, - "en": "production", - "cn": "制作类" } ] }, - "102": { - "en": "", - "cn": "特技导演", - "jp": "特撮監督", + "134": { + "en": "Creative Supervisor/Director", + "cn": "创意总监", + "jp": "クリエイティブスーパーバイザー クリエイティブディレクター", "categories": [ { "order": 1, "en": "director", "cn": "导演类" - }, + } + ] + }, + "135": { + "en": "Tokusatsu Effects", + "cn": "特摄效果", + "jp": "特撮", + "categories": [ { "order": 8, "en": "production", "cn": "制作类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "103": { - "en": "Color Script", - "cn": "色彩脚本", - "jp": "カラースクリプト", + "136": { + "en": "Visual Effects", + "cn": "视觉效果", + "jp": "ビジュアルエフェクト", "categories": [ { - "order": 10, - "en": "colorist", - "cn": "色彩类" + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "104": { + "137": { "en": "", - "cn": "分镜协力", - "jp": "絵コンテ協力 コンテ協力", + "cn": "动作导演", + "jp": "アクション監督", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 1, + "en": "director", + "cn": "导演类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "105": { - "en": "", - "cn": "分镜抄写", - "jp": "絵コンテ清書 コンテ清書", + "138": { + "en": "Eyecatch Art", + "cn": "转场绘", + "jp": "アイキャッチ", "categories": [ { - "order": 2, - "en": "storyboard", - "cn": "分镜/脚本类" + "order": 4, + "en": "animation", + "cn": "作画类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "106": { - "en": "Sub-Character Design", - "cn": "副人物设定", - "jp": "サブキャラクターデザイン", + "139": { + "en": "Illustration", + "cn": "插画", + "jp": "イラスト", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" - } - ] - }, - "107": { - "en": "Guest character design", - "cn": "客座人物设定", - "jp": "ゲストキャラクターデザイン", - "categories": [ + "order": 4, + "en": "animation", + "cn": "作画类" + }, { "order": 5, "en": "design", @@ -4113,22 +5037,27 @@ } ] }, - "108": { - "en": "", - "cn": "构图监修", - "jp": "レイアウト監修", + "140": { + "en": "Character Animation Director", + "cn": "角色作画监督", + "jp": "キャラクター作画監督", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 1, + "en": "director", + "cn": "导演类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "109": { - "en": "", - "cn": "构图作画监督", - "jp": "レイアウト作画監督 レイアウト作監", + "141": { + "en": "Animation Supervisor", + "cn": "作画监修", + "jp": "作画監修", "categories": [ { "order": 1, @@ -4142,56 +5071,68 @@ } ] }, - "110": { - "en": "", - "cn": "总作画监督助理", - "jp": "総作画監督補佐 総作監補佐", + "142": { + "en": "Mechanical Design Concept", + "cn": "机设原案", + "jp": "メカニカル原案", "categories": [ { - "order": 12, - "en": "assistant", - "cn": "助理类" - }, + "order": 5, + "en": "design", + "cn": "设定类" + } + ] + }, + "143": { + "en": "Concept Art", + "cn": "概念艺术", + "jp": "コンセプトアート", + "categories": [ { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 5, + "en": "design", + "cn": "设定类" } ] }, - "111": { - "en": "", - "cn": "道具作画监督", - "jp": "プロップ作画監督 プロップ作監", + "144": { + "en": "Visual Concept", + "cn": "视觉概念", + "jp": "ビジュアルコンセプト", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 5, + "en": "design", + "cn": "设定类" }, { - "order": 4, - "en": "animation", - "cn": "作画类" + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "112": { - "en": "Concept Design", - "cn": "概念设计", - "jp": "コンセプトデザイン", + "145": { + "en": "Scene Design", + "cn": "画面设计", + "jp": "画面設計", "categories": [ { "order": 5, "en": "design", "cn": "设定类" + }, + { + "order": 11, + "en": "visual", + "cn": "视觉类" } ] }, - "113": { - "en": "Costume Design", - "cn": "服装设计", - "jp": "衣装デザイン 衣装設定", + "146": { + "en": "Monster Design", + "cn": "怪物设计", + "jp": "モンスターデザイン", "categories": [ { "order": 5, @@ -4200,27 +5141,68 @@ } ] }, - "114": { - "en": "Title Design", - "cn": "标题设计", - "jp": "タイトルデザイン", + "147": { + "en": "Story Concept", + "cn": "故事概念", + "jp": "ストーリーコンセプト", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] + }, + "148": { + "en": "Scenario Coordinator", + "cn": "剧本协调", + "jp": "シナリオコーディネーター", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + } + ] + }, + "149": { + "en": "Script Cooperation", + "cn": "脚本协力", + "jp": "脚本協力", + "categories": [ + { + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" + }, + { + "order": 12, + "en": "assistant", + "cn": "助理类" + } + ] + }, + "150": { + "en": "Associate Series Composition", + "cn": "副系列构成", + "jp": "副シリーズ構成", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" } ] }, - "115": { - "en": "Setting Cooperation", - "cn": "设定协力", - "jp": "設定協力 デザイン協力", + "151": { + "en": "Series Composition Cooperation", + "cn": "构成协力", + "jp": "構成協力", "categories": [ { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 2, + "en": "storyboard", + "cn": "分镜/脚本类" }, { "order": 12, @@ -4229,10 +5211,10 @@ } ] }, - "116": { - "en": "Music Director", - "cn": "音乐监督", - "jp": "音楽ディレクター", + "152": { + "en": "Recording Studio", + "cn": "录音工作室", + "jp": "録音スタジオ", "categories": [ { "order": 7, @@ -4240,16 +5222,16 @@ "cn": "声音类" }, { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "117": { - "en": "Music Selection", - "cn": "选曲", - "jp": "選曲", + "153": { + "en": "Sound Mixing", + "cn": "整音", + "jp": "整音", "categories": [ { "order": 7, @@ -4258,76 +5240,74 @@ } ] }, - "118": { - "en": "Inserted Song Lyrics", - "cn": "插入歌作词", - "jp": "Insert Song Lyrics", + "154": { + "en": "Sound Production Coordinator", + "cn": "音响制作担当", + "jp": "音響制作担当", "categories": [ { "order": 7, "en": "music", "cn": "声音类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "119": { - "en": "Inserted Song Composition", - "cn": "插入歌作曲", - "jp": "Insert Song Composition", + "155": { + "en": "Online Editing", + "cn": "在线剪辑", + "jp": "オンライン編集", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "120": { - "en": "Inserted Song Arrangement", - "cn": "插入歌编曲", - "jp": "Insert Song Arrangement", + "156": { + "en": "Offline Editing", + "cn": "离线剪辑", + "jp": "オフライン編集", "categories": [ { - "order": 7, - "en": "music", - "cn": "声音类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "121": { - "en": "Creative Producer", - "cn": "创意制片人", - "jp": "クリエイティブプロデューサー", + "157": { + "en": "3D Animator", + "cn": "3D 动画师", + "jp": "3Dアニメーター 3Dアニメーション", "categories": [ { - "order": 9, - "en": "producer", - "cn": "制片类" + "order": 8, + "en": "production", + "cn": "制作类" + }, + { + "order": 4, + "en": "animation", + "cn": "作画类" } ] }, - "122": { - "en": "Associate Producer", - "cn": "副制片人", - "jp": "アソシエイトプロデューサー", + "158": { + "en": "CG Producer", + "cn": "CG 制作人", + "jp": "CGプロデューサー CGIプロデューサー", "categories": [ { "order": 9, "en": "producer", "cn": "制片类" }, - { - "order": 12, - "en": "assistant", - "cn": "助理类" - } - ] - }, - "123": { - "en": "Chief Production Supervisor", - "cn": "制作统括", - "jp": "制作統括", - "categories": [ { "order": 8, "en": "production", @@ -4335,10 +5315,10 @@ } ] }, - "124": { - "en": "Line Producer", - "cn": "现场制片人", - "jp": "ラインプロデューサー", + "159": { + "en": "Publicity Producer", + "cn": "宣传制片人", + "jp": "宣伝プロデューサー", "categories": [ { "order": 9, @@ -4352,22 +5332,27 @@ } ] }, - "125": { - "en": "Literary Producer", - "cn": "文艺制作", - "jp": "文芸制作", + "160": { + "en": "Art Producer", + "cn": "美术制作人", + "jp": "美術プロデューサー", "categories": [ { "order": 9, "en": "producer", "cn": "制片类" + }, + { + "order": 6, + "en": "art", + "cn": "美术类" } ] }, - "127": { - "en": "Planning Cooperation", - "cn": "企画协力", - "jp": "企画協力", + "161": { + "en": "Sound Producer", + "cn": "音响制作人", + "jp": "音響プロデューサー", "categories": [ { "order": 9, @@ -4375,144 +5360,133 @@ "cn": "制片类" }, { - "order": 12, - "en": "assistant", - "cn": "助理类" + "order": 7, + "en": "music", + "cn": "声音类" } ] }, - "128": { - "en": "OP・ED Direction", - "cn": "OP・ED 演出", - "jp": "OP・ED 演出", + "162": { + "en": "CG Production Coordinator", + "cn": "CG 制作进行", + "jp": "CG進行", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" - } - ] - }, - "129": { - "en": "Bank Storyboard Direction", - "cn": "Bank 分镜演出", - "jp": "バンク コンテ・演出", - "categories": [ + "order": 9, + "en": "producer", + "cn": "制片类" + }, { - "order": 3, - "en": "direction", - "cn": "演出类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "130": { - "en": "Live Storyboard Direction", - "cn": "Live 分镜演出", - "jp": "ライブ コンテ・演出", + "163": { + "en": "Art Production Coordinator", + "cn": "美术制作进行", + "jp": "美術進行", "categories": [ { - "order": 3, - "en": "direction", - "cn": "演出类" - } - ] - }, - "131": { - "en": "Meta-story Storyboard Direction", - "cn": "剧中剧分镜演出", - "jp": "劇中劇 コンテ・演出", - "categories": [ + "order": 9, + "en": "producer", + "cn": "制片类" + }, { - "order": 3, - "en": "direction", - "cn": "演出类" - } - ] - }, - "132": { - "en": "Meta-story Character Design", - "cn": "剧中剧人设", - "jp": "劇中劇 キャラクターデザイン", - "categories": [ + "order": 6, + "en": "art", + "cn": "美术类" + }, { - "order": 5, - "en": "design", - "cn": "设定类" + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "133": { - "en": "Visual Director", - "cn": "视觉导演", - "jp": "ビジュアルディレクター", + "164": { + "en": "Assistant Art Director", + "cn": "美术监督助理", + "jp": "美術監督補佐", "categories": [ { - "order": 11, - "en": "visual", - "cn": "视觉类" + "order": 12, + "en": "assistant", + "cn": "助理类" }, { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 6, + "en": "art", + "cn": "美术类" } ] }, - "134": { - "en": "Creative Supervisor/Director", - "cn": "创意总监", - "jp": "クリエイティブスーパーバイザー クリエイティブディレクター", + "165": { + "en": "Assistant Color Designer", + "cn": "色彩设计助理", + "jp": "色彩設計補佐", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 10, + "en": "colorist", + "cn": "色彩类" } ] }, - "135": { - "en": "Tokusatsu Effects", - "cn": "特摄效果", - "jp": "特撮", + "166": { + "en": "Assistant Director of Photography", + "cn": "摄影监督助理", + "jp": "撮影監督補佐", "categories": [ + { + "order": 12, + "en": "assistant", + "cn": "助理类" + }, { "order": 8, "en": "production", "cn": "制作类" - }, - { - "order": 11, - "en": "visual", - "cn": "视觉类" } ] }, - "136": { - "en": "Visual Effects", - "cn": "视觉效果", - "jp": "ビジュアルエフェクト", + "167": { + "en": "Assistant Production Desk", + "cn": "制作管理助理", + "jp": "制作デスク補佐", "categories": [ { - "order": 11, - "en": "visual", - "cn": "视觉类" + "order": 12, + "en": "assistant", + "cn": "助理类" + }, + { + "order": 8, + "en": "production", + "cn": "制作类" } ] }, - "137": { - "en": "", - "cn": "动作导演", - "jp": "アクション監督", + "168": { + "en": "Assistant Design Manager", + "cn": "设定制作助理", + "jp": "設定制作補佐", "categories": [ { - "order": 1, - "en": "director", - "cn": "导演类" + "order": 12, + "en": "assistant", + "cn": "助理类" }, { - "order": 8, - "en": "production", - "cn": "制作类" + "order": 5, + "en": "design", + "cn": "设定类" } ] } From 34b523c33ab875868dbae8ebd7b80c85bc0ef919 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Nov 2025 11:05:53 +0800 Subject: [PATCH 783/888] build(deps): lock file maintenance npm (#957) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index da980614f..39c067955 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@apidevtools/json-schema-ref-parser": "^14.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "lodash": "^4.17.21", "yaml": "^2.8.1" }, diff --git a/yarn.lock b/yarn.lock index 1fa93b854..a45b9a717 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,10 +97,10 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +js-yaml@^4.1.0, js-yaml@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" From 203aed2ff28b187879d17ea55dcb56303f3eda00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 13:06:05 +0800 Subject: [PATCH 784/888] build(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0 (#958) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 0d41caca8..a4a2aa424 100644 --- a/go.mod +++ b/go.mod @@ -37,8 +37,8 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.17.0 - golang.org/x/text v0.30.0 + golang.org/x/sync v0.18.0 + golang.org/x/text v0.31.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -113,14 +113,14 @@ require ( go.yaml.in/yaml/v2 v2.4.2 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.42.0 // indirect + golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.28.0 // indirect - golang.org/x/net v0.44.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.37.0 // indirect + golang.org/x/tools v0.38.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 5483ac133..e72dacfc5 100644 --- a/go.sum +++ b/go.sum @@ -267,29 +267,29 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= -golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= -golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= -golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= -golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 9e3a77ecbc1131d7b58161f2ad39f99cdbe8b2da Mon Sep 17 00:00:00 2001 From: lijrjyan <114850537+lijrjyan@users.noreply.github.com> Date: Wed, 26 Nov 2025 03:10:16 -0600 Subject: [PATCH 785/888] fix: sync character staff mapping (#960) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- web/handler/subject/related_characters.go | 15 +-------------- web/res/character.go | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/web/handler/subject/related_characters.go b/web/handler/subject/related_characters.go index f519c854d..3d0895fd4 100644 --- a/web/handler/subject/related_characters.go +++ b/web/handler/subject/related_characters.go @@ -66,7 +66,7 @@ func (h Subject) GetRelatedCharacters(c echo.Context) error { response[i] = res.SubjectRelatedCharacter{ Images: res.PersonImage(rel.Character.Image), Name: rel.Character.Name, - Relation: characterStaffString(rel.TypeID), + Relation: res.CharacterStaffString(rel.TypeID), Actors: toActors(actors[rel.Character.ID]), Type: rel.Character.Type, ID: rel.Character.ID, @@ -162,16 +162,3 @@ func toActors(persons []model.Person) []res.Actor { return actors } - -func characterStaffString(i uint8) string { - switch i { - case 1: - return "主角" - case 2: - return "配角" - case 3: - return "客串" - } - - return "" -} diff --git a/web/res/character.go b/web/res/character.go index ad8da4876..51e99e85f 100644 --- a/web/res/character.go +++ b/web/res/character.go @@ -46,17 +46,18 @@ var GenderMap = map[uint8]string{ 2: "female", } -func CharacterStaffString(i uint8) string { - switch i { - case 1: - return "主角" - case 2: - return "配角" - case 3: - return "客串" - } +//nolint:gochecknoglobals +var characterStaffMap = map[uint8]string{ + 1: "主角", + 2: "配角", + 3: "客串", + 4: "闲角", + 5: "旁白", + 6: "声库", +} - return "" +func CharacterStaffString(i uint8) string { + return characterStaffMap[i] } func ConvertModelCharacter(s model.Character) CharacterV0 { From 71bede31e16c404ad9ce4946874d3c4dff38fea6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 00:47:05 +0800 Subject: [PATCH 786/888] build(deps): update module go.uber.org/zap to v1.27.1 (#964) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a4a2aa424..fc2502383 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/trim21/go-phpserialize v0.1.2 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 - go.uber.org/zap v1.27.0 + go.uber.org/zap v1.27.1 golang.org/x/sync v0.18.0 golang.org/x/text v0.31.0 gorm.io/driver/mysql v1.6.0 diff --git a/go.sum b/go.sum index e72dacfc5..281d3cd79 100644 --- a/go.sum +++ b/go.sum @@ -259,8 +259,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= -go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= From 1da6a1f53087edcfcbb1c6d61423155c3f30b759 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 00:47:18 +0800 Subject: [PATCH 787/888] build(deps): update module github.com/redis/rueidis to v1.0.68 (#963) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fc2502383..028ac0df7 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.34.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.67 + github.com/redis/rueidis v1.0.68 github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 diff --git a/go.sum b/go.sum index 281d3cd79..fe044932e 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.67 h1:v2BIArP50KkRsEkhPWyVg4pcwI3rPVehl6EYyWlPHrM= -github.com/redis/rueidis v1.0.67/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.68 h1:gept0E45JGxVigWb3zoWHvxEc4IOC7kc4V/4XvN8eG8= +github.com/redis/rueidis v1.0.68/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 84150dc20c8db535e8b24f29b3276f4e9e56e7c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:24:27 +0800 Subject: [PATCH 788/888] build(deps): update aws-sdk-go-v2 monorepo (#965) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 028ac0df7..aeccbaa16 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v4 v4.7.0 - github.com/aws/aws-sdk-go-v2 v1.39.6 - github.com/aws/aws-sdk-go-v2/credentials v1.18.21 - github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 + github.com/aws/aws-sdk-go-v2 v1.40.1 + github.com/aws/aws-sdk-go-v2/credentials v1.19.3 + github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 // indirect - github.com/aws/smithy-go v1.23.2 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15 // indirect + github.com/aws/smithy-go v1.24.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect diff --git a/go.sum b/go.sum index fe044932e..1111c7b2b 100644 --- a/go.sum +++ b/go.sum @@ -7,30 +7,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v4 v4.7.0 h1:yjDs35SlGvKwRNSykujfjdMxMhMQQM0TnIjJaHB+Zio= github.com/avast/retry-go/v4 v4.7.0/go.mod h1:ZMPDa3sY2bKgpLtap9JRUgk2yTAba7cgiFhqxY2Sg6Q= -github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk= -github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y= -github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA= -github.com/aws/aws-sdk-go-v2/credentials v1.18.21/go.mod h1:3YELwedmQbw7cXNaII2Wywd+YY58AmLPwX4LzARgmmA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13 h1:eg/WYAa12vqTphzIdWMzqYRVKKnCboVPRlvaybNCqPA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13/go.mod h1:/FDdxWhz1486obGrKKC1HONd7krpk38LBt+dutLcN9k= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 h1:NvMjwvv8hpGUILarKw7Z4Q0w1H9anXKsesMxtw++MA4= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4/go.mod h1:455WPHSwaGj2waRSpQp7TsnpOnBfw8iDfPfbwl7KPJE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 h1:zhBJXdhWIFZ1acfDYIhu4+LCzdUS2Vbcum7D01dXlHQ= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13/go.mod h1:JaaOeCE368qn2Hzi3sEzY6FgAZVCIYcC2nwbro2QCh8= -github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2 h1:xgBWsgaeUESl8A8k80p6yBdexMWDVeiDmJ/pkjohJ7c= -github.com/aws/aws-sdk-go-v2/service/s3 v1.89.2/go.mod h1:+wArOOrcHUevqdto9k1tKOF5++YTe9JEcPSc9Tx2ZSw= -github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM= -github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aws/aws-sdk-go-v2 v1.40.1 h1:difXb4maDZkRH0x//Qkwcfpdg1XQVXEAEs2DdXldFFc= +github.com/aws/aws-sdk-go-v2 v1.40.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4= +github.com/aws/aws-sdk-go-v2/credentials v1.19.3 h1:01Ym72hK43hjwDeJUfi1l2oYLXBAOR8gNSZNmXmvuas= +github.com/aws/aws-sdk-go-v2/credentials v1.19.3/go.mod h1:55nWF/Sr9Zvls0bGnWkRxUdhzKqj9uRNlPvgV1vgxKc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 h1:Y5YXgygXwDI5P4RkteB5yF7v35neH7LfJKBG+hzIons= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15/go.mod h1:K+/1EpG42dFSY7CBj+Fruzm8PsCGWTXJ3jdeJ659oGQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 h1:AvltKnW9ewxX2hFmQS0FyJH93aSvJVUEFvXfU+HWtSE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15/go.mod h1:3I4oCdZdmgrREhU74qS1dK9yZ62yumob+58AbFR4cQA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15 h1:NLYTEyZmVZo0Qh183sC8nC+ydJXOOeIL/qI/sS3PdLY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15/go.mod h1:Z803iB3B0bc8oJV8zH2PERLRfQUJ2n2BXISpsA4+O1M= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6 h1:P1MU/SuhadGvg2jtviDXPEejU3jBNhoeeAlRadHzvHI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6/go.mod h1:5KYaMG6wmVKMFBSfWoyG/zH8pWwzQFnKgpoSRlXHKdQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 h1:3/u/4yZOffg5jdNk1sDpOQ4Y+R6Xbh+GzpDrSZjuy3U= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15/go.mod h1:4Zkjq0FKjE78NKjabuM4tRXKFzUJWXgP0ItEZK8l7JU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15 h1:wsSQ4SVz5YE1crz0Ap7VBZrV4nNqZt4CIBBT8mnwoNc= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15/go.mod h1:I7sditnFGtYMIqPRU1QoHZAUrXkGp4SczmlLwrNPlD0= +github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0 h1:IrbE3B8O9pm3lsg96AXIN5MXX4pECEuExh/A0Du3AuI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0/go.mod h1:/sJLzHtiiZvs6C1RbxS/anSAFwZD6oC6M/kotQzOiLw= +github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= +github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From fa03483ce35bcc76811d2a47d507ec5fe743c63b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:24:40 +0800 Subject: [PATCH 789/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.34.2 (#962) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index aeccbaa16..8d355a2c0 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.13.4 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.34.1 + github.com/meilisearch/meilisearch-go v0.34.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.68 diff --git a/go.sum b/go.sum index 1111c7b2b..32fd603f0 100644 --- a/go.sum +++ b/go.sum @@ -163,8 +163,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.34.1 h1:tIPRWZ3GCsq6fnW7hxryNI7EejBWmTIZ9+YOwTho4PA= -github.com/meilisearch/meilisearch-go v0.34.1/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= +github.com/meilisearch/meilisearch-go v0.34.2 h1:/OVQ2NQU3nRT5M/bhtg6pzxckxxGLy1hZyo3zjrja28= +github.com/meilisearch/meilisearch-go v0.34.2/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From d53f7be311b4792bb0b4b505d2a3a4d85091b47d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:25:04 +0800 Subject: [PATCH 790/888] build(deps): update dependency go to v1.24.11 (#961) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 8d355a2c0..2df42702f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.9 +go 1.24.11 tool github.com/vektra/mockery/v3 From 484f69e98640a226468b797aa587998040186fe7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:26:20 +0800 Subject: [PATCH 791/888] ci: update actions/checkout action to v6 (#970) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- .github/workflows/lint-review.yaml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/release-docker.yaml | 2 +- .github/workflows/release-github.yaml | 2 +- .github/workflows/release-openapi.yaml | 4 ++-- .github/workflows/security.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/test.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2642878d4..12ae9593c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index c35c32af9..517127ea5 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 27d1e41f5..33076c083 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,7 +26,7 @@ jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 18d5871f9..87932ad6e 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index fe68ae48b..ab6c458c3 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -12,7 +12,7 @@ jobs: github: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index 9602d6e1b..ff5b7da80 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -13,7 +13,7 @@ jobs: openapi: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: 20 @@ -21,7 +21,7 @@ jobs: - run: yarn install --frozen-lockfile - run: yarn run build - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: repository: "bangumi/api" path: api diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 168e16575..26b30c701 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -19,7 +19,7 @@ jobs: permissions: issues: write steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index 18969211c..b4ab67a63 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -28,7 +28,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-node@v6 with: node-version: "lts/*" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 40e7f0741..0e91f0bba 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: recursive diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index 007e0f1ba..ff9b729fa 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -15,7 +15,7 @@ jobs: update: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: true From 7d2a10cdf876606513dff372b238cd33f9eeccde Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 08:26:50 +0800 Subject: [PATCH 792/888] ci: update golangci/golangci-lint-action action to v9 (#971) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 33076c083..0c1080aeb 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -35,6 +35,6 @@ jobs: cache-namespace: lint - name: Run linters - uses: golangci/golangci-lint-action@v8 + uses: golangci/golangci-lint-action@v9 with: version: v2.1.0 From 784bac98e632a8c05491f5056924973d9b22aea7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:11:07 +0800 Subject: [PATCH 793/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to v15 (#968) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 39c067955..80c4989fe 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^14.2.1", + "@apidevtools/json-schema-ref-parser": "^15.1.3", "js-yaml": "^4.1.1", "lodash": "^4.17.21", "yaml": "^2.8.1" diff --git a/yarn.lock b/yarn.lock index a45b9a717..0de257b45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,12 +2,12 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^14.2.1": - version "14.2.1" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.1.tgz#40040f6a9a250b92055723a76e48dde0efb9688b" - integrity sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg== +"@apidevtools/json-schema-ref-parser@^15.1.3": + version "15.1.3" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.1.3.tgz#4dc45f3807cea9be807cfca0daf582d8c935f0f0" + integrity sha512-XvEitlOaU8S+hOrMPuGyCjp6vC51K+syUN4HHrSUdSDLLWRWQJYjInU6xlSoRGCVBCfcoHxbRm+yiaYq2yFR5w== dependencies: - js-yaml "^4.1.0" + js-yaml "^4.1.1" "@exodus/schemasafe@^1.0.0-rc.2": version "1.3.0" @@ -97,7 +97,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -js-yaml@^4.1.0, js-yaml@^4.1.1: +js-yaml@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== From 57a0f6c5cde8e7b8bc051017c6f51255bc752f73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:11:16 +0800 Subject: [PATCH 794/888] build(deps): update module github.com/vektra/mockery/v3 to v3.6.1 (#967) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2df42702f..ac3c66be0 100644 --- a/go.mod +++ b/go.mod @@ -104,7 +104,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.5.5 // indirect + github.com/vektra/mockery/v3 v3.6.1 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index 32fd603f0..a12df6fcc 100644 --- a/go.sum +++ b/go.sum @@ -235,8 +235,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.5.5 h1:1ExE+yqz3ytvEOe7pUH5VWIwmsYlSq+FjWPVVLdE8O4= -github.com/vektra/mockery/v3 v3.5.5/go.mod h1:Oti3Df0WP8wwT31yuVri3QNsDeMUQU5Q4QEg8EabaBw= +github.com/vektra/mockery/v3 v3.6.1 h1:YyqAXihdNML8y6SJnvPKYr+2HAHvBjdvqFu/fMYlX8g= +github.com/vektra/mockery/v3 v3.6.1/go.mod h1:Oti3Df0WP8wwT31yuVri3QNsDeMUQU5Q4QEg8EabaBw= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= From a39ad52e9c8ccd68aa99af6f399ff2918751ac03 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:11:24 +0800 Subject: [PATCH 795/888] build(deps): update module github.com/go-resty/resty/v2 to v2.17.0 (#966) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index ac3c66be0..dbba2814f 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.28.0 - github.com/go-resty/resty/v2 v2.16.5 + github.com/go-resty/resty/v2 v2.17.0 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 @@ -119,7 +119,7 @@ require ( golang.org/x/net v0.47.0 // indirect golang.org/x/sys v0.38.0 // indirect golang.org/x/term v0.37.0 // indirect - golang.org/x/time v0.11.0 // indirect + golang.org/x/time v0.12.0 // indirect golang.org/x/tools v0.38.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index a12df6fcc..f05ced2ee 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= -github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= -github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= +github.com/go-resty/resty/v2 v2.17.0 h1:pW9DeXcaL4Rrym4EZ8v7L19zZiIlWPg5YXAcVmt+gN0= +github.com/go-resty/resty/v2 v2.17.0/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= @@ -286,8 +286,8 @@ golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= -golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= -golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= +golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= From f102f6e08697a69071c115409d2363b45ba45493 Mon Sep 17 00:00:00 2001 From: lijrjyan <114850537+lijrjyan@users.noreply.github.com> Date: Thu, 25 Dec 2025 22:00:50 -0600 Subject: [PATCH 796/888] feat(api): add character summary to subject characters endpoint (#959) Co-authored-by: Trim21 --- openapi/v0.yaml | 4 ++++ web/handler/subject/related_characters.go | 1 + web/res/subject.go | 1 + 3 files changed, 6 insertions(+) diff --git a/openapi/v0.yaml b/openapi/v0.yaml index 078eacebd..8134dd7c2 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -3047,6 +3047,7 @@ components: required: - id - name + - summary - type - relation type: object @@ -3057,6 +3058,9 @@ components: name: title: Name type: string + summary: + title: Summary + type: string type: type: integer allOf: diff --git a/web/handler/subject/related_characters.go b/web/handler/subject/related_characters.go index 3d0895fd4..563522028 100644 --- a/web/handler/subject/related_characters.go +++ b/web/handler/subject/related_characters.go @@ -66,6 +66,7 @@ func (h Subject) GetRelatedCharacters(c echo.Context) error { response[i] = res.SubjectRelatedCharacter{ Images: res.PersonImage(rel.Character.Image), Name: rel.Character.Name, + Summary: rel.Character.Summary, Relation: res.CharacterStaffString(rel.TypeID), Actors: toActors(actors[rel.Character.ID]), Type: rel.Character.Type, diff --git a/web/res/subject.go b/web/res/subject.go index b99114409..0af10cb1f 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -264,6 +264,7 @@ type SubjectRelatedSubject struct { type SubjectRelatedCharacter struct { Images PersonImages `json:"images"` Name string `json:"name"` + Summary string `json:"summary"` Relation string `json:"relation"` Actors []Actor `json:"actors"` Type uint8 `json:"type"` From 4acdde8cb0ebb610d40e8c3774b626ca56073a5e Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 28 Dec 2025 21:28:11 +0800 Subject: [PATCH 797/888] chore: log more info (#976) --- ctrl/update_subject_collection.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ctrl/update_subject_collection.go b/ctrl/update_subject_collection.go index 86f095050..2603d5e84 100644 --- a/ctrl/update_subject_collection.go +++ b/ctrl/update_subject_collection.go @@ -16,12 +16,14 @@ package ctrl import ( "context" + "errors" "time" "github.com/samber/lo" "github.com/trim21/errgo" "go.uber.org/zap" + "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/auth" "github.com/bangumi/server/internal/collections/domain/collection" "github.com/bangumi/server/internal/model" @@ -112,7 +114,11 @@ func (ctl Ctrl) mayCreateTimeline( ) error { collect, err := ctl.collection.GetSubjectCollection(ctx, u.ID, subjectID) if err != nil { - ctl.log.Error("failed to create associated timeline, can't get collection ID", zap.Error(err)) + if errors.Is(err, gerr.ErrSubjectNotCollected) { + ctl.log.Error("failed to create associated timeline, can't get collection ID", + zap.Error(err), zap.Uint32("user_id", u.ID), zap.Uint32("subject_id", subjectID)) + return nil + } return err } From d1fdec9edf2a9752973bb028e584743fd4b1942d Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 21:40:00 +0800 Subject: [PATCH 798/888] build: upgrade retry-go to v5 (#975) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: trim21 <13553903+trim21@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 2 +- go.sum | 4 ++-- internal/search/searcher/client.go | 35 +++++++++++++++--------------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index dbba2814f..b1d020137 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24.11 tool github.com/vektra/mockery/v3 require ( - github.com/avast/retry-go/v4 v4.7.0 + github.com/avast/retry-go/v5 v5.0.0 github.com/aws/aws-sdk-go-v2 v1.40.1 github.com/aws/aws-sdk-go-v2/credentials v1.19.3 github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0 diff --git a/go.sum b/go.sum index f05ced2ee..3a90a0052 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= -github.com/avast/retry-go/v4 v4.7.0 h1:yjDs35SlGvKwRNSykujfjdMxMhMQQM0TnIjJaHB+Zio= -github.com/avast/retry-go/v4 v4.7.0/go.mod h1:ZMPDa3sY2bKgpLtap9JRUgk2yTAba7cgiFhqxY2Sg6Q= +github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= +github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= github.com/aws/aws-sdk-go-v2 v1.40.1 h1:difXb4maDZkRH0x//Qkwcfpdg1XQVXEAEs2DdXldFFc= github.com/aws/aws-sdk-go-v2 v1.40.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU= diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index 02352bab8..8bfd98eef 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/avast/retry-go/v4" + "github.com/avast/retry-go/v5" wiki "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/meilisearch/meilisearch-go" @@ -94,24 +94,25 @@ func GetWikiValues(f wiki.Field) []string { } func NewSendBatch(log *zap.Logger, index meilisearch.IndexManager) func([]Document) { + var retrier = retry.New( + retry.OnRetry(func(n uint, err error) { + log.Warn("failed to send batch", zap.Uint("attempt", n), zap.Error(err)) + }), + retry.DelayType(retry.BackOffDelay), + retry.Delay(time.Second), + retry.Attempts(5), //nolint:mnd + retry.RetryIf(func(err error) bool { + var r = &meilisearch.Error{} + return errors.As(err, &r) + }), + ) + return func(items []Document) { log.Debug("send batch to meilisearch", zap.Int("len", len(items))) - err := retry.Do( - func() error { - _, err := index.UpdateDocuments(items, lo.ToPtr("id")) - return err - }, - retry.OnRetry(func(n uint, err error) { - log.Warn("failed to send batch", zap.Uint("attempt", n), zap.Error(err)) - }), - retry.DelayType(retry.BackOffDelay), - retry.Delay(time.Microsecond*100), - retry.Attempts(5), //nolint:mnd - retry.RetryIf(func(err error) bool { - var r = &meilisearch.Error{} - return errors.As(err, &r) - }), - ) + err := retrier.Do(func() error { + _, err := index.UpdateDocuments(items, lo.ToPtr("id")) + return err + }) if err != nil { log.Error("failed to send batch", zap.Error(err)) } From 3d05fa7742b083ebc41bdd049bb697edadc7c137 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Dec 2025 21:41:30 +0800 Subject: [PATCH 799/888] build(deps): lock file maintenance npm (#973) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 80c4989fe..1f5a90ca0 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,13 @@ "@apidevtools/json-schema-ref-parser": "^15.1.3", "js-yaml": "^4.1.1", "lodash": "^4.17.21", - "yaml": "^2.8.1" + "yaml": "^2.8.2" }, "devDependencies": { "@types/json-schema": "^7.0.15", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.6.2" + "prettier": "^3.7.4" }, "nodemonConfig": { "restartable": "rs", diff --git a/yarn.lock b/yarn.lock index 0de257b45..3c3d1ac1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -162,10 +162,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -prettier@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== +prettier@^3.7.4: + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== reftools@^1.1.9: version "1.1.9" @@ -256,10 +256,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" - integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== +yaml@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.2.tgz#5694f25eca0ce9c3e7a9d9e00ce0ddabbd9e35c5" + integrity sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A== yargs-parser@^21.1.1: version "21.1.1" From 3417d63fac793f24a3fb19a287d62d4e61f8f96f Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 28 Dec 2025 21:53:18 +0800 Subject: [PATCH 800/888] fix: make subject collection default `Doing` --- internal/collections/infra/mysql_repo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 33c1e56ac..0ff14d93f 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -141,6 +141,7 @@ func (r mysqlRepo) updateOrCreateSubjectCollection( SubjectID: subject.ID, SubjectType: subject.TypeID, UserID: userID, + Type: uint8(collection.SubjectCollectionDoing), } } collectionSubject, err := r.convertToSubjectCollection(obj) From 18f33c2ee485922eed7e7f05a8828777f17f2978 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:21:51 +0800 Subject: [PATCH 801/888] build(deps): update module golang.org/x/sync to v0.19.0 (#985) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1d020137..df5f50c1d 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 - golang.org/x/sync v0.18.0 + golang.org/x/sync v0.19.0 golang.org/x/text v0.31.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 diff --git a/go.sum b/go.sum index 3a90a0052..5ee939f92 100644 --- a/go.sum +++ b/go.sum @@ -275,8 +275,8 @@ golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 533e68f4021d8458b4b70a820706af3d0a5b24ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:22:00 +0800 Subject: [PATCH 802/888] ci: update peter-evans/create-pull-request action to v8 (#987) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index ff5b7da80..fd98b6782 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -29,7 +29,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 with: path: api token: ${{ secrets.PAT }} diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index ff9b729fa..7f9b7da6e 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -32,7 +32,7 @@ jobs: - run: git add . - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 with: token: ${{ secrets.PAT }} title: "feat: update common" From d76dc17f33d5664f9f272a585e49fd47b21bf4b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:26:40 +0800 Subject: [PATCH 803/888] build(deps): update module github.com/labstack/echo/v4 to v4.15.0 (#983) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index df5f50c1d..1e9ca89cf 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v4 v4.13.4 + github.com/labstack/echo/v4 v4.15.0 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.34.2 github.com/mitchellh/mapstructure v1.5.0 @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 golang.org/x/sync v0.19.0 - golang.org/x/text v0.31.0 + golang.org/x/text v0.32.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -113,14 +113,14 @@ require ( go.yaml.in/yaml/v2 v2.4.2 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.45.0 // indirect + golang.org/x/crypto v0.46.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.29.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/sys v0.38.0 // indirect - golang.org/x/term v0.37.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.38.0 // indirect + golang.org/x/mod v0.30.0 // indirect + golang.org/x/net v0.48.0 // indirect + golang.org/x/sys v0.39.0 // indirect + golang.org/x/term v0.38.0 // indirect + golang.org/x/time v0.14.0 // indirect + golang.org/x/tools v0.39.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 5ee939f92..5c6345106 100644 --- a/go.sum +++ b/go.sum @@ -139,8 +139,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.13.4 h1:oTZZW+T3s9gAu5L8vmzihV7/lkXGZuITzTQkTEhcXEA= -github.com/labstack/echo/v4 v4.13.4/go.mod h1:g63b33BZ5vZzcIUF8AtRH40DrTlXnx4UMC8rBdndmjQ= +github.com/labstack/echo/v4 v4.15.0 h1:hoRTKWcnR5STXZFe9BmYun9AMTNeSbjHi2vtDuADJ24= +github.com/labstack/echo/v4 v4.15.0/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= @@ -267,29 +267,29 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= +golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= -golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= +golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= -golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= +golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= +golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= +golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= +golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From d642a588d0583ca8768ce8027d583a4bfac87c22 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:27:28 +0800 Subject: [PATCH 804/888] build(deps): update aws-sdk-go-v2 monorepo (#981) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 1e9ca89cf..20a742ac9 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.40.1 - github.com/aws/aws-sdk-go-v2/credentials v1.19.3 - github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0 + github.com/aws/aws-sdk-go-v2 v1.41.0 + github.com/aws/aws-sdk-go-v2/credentials v1.19.6 + github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -51,13 +51,13 @@ require ( github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 // indirect github.com/aws/smithy-go v1.24.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect diff --git a/go.sum b/go.sum index 5c6345106..7b59632cb 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.40.1 h1:difXb4maDZkRH0x//Qkwcfpdg1XQVXEAEs2DdXldFFc= -github.com/aws/aws-sdk-go-v2 v1.40.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2 v1.41.0 h1:tNvqh1s+v0vFYdA1xq0aOJH+Y5cRyZ5upu6roPgPKd4= +github.com/aws/aws-sdk-go-v2 v1.41.0/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4= -github.com/aws/aws-sdk-go-v2/credentials v1.19.3 h1:01Ym72hK43hjwDeJUfi1l2oYLXBAOR8gNSZNmXmvuas= -github.com/aws/aws-sdk-go-v2/credentials v1.19.3/go.mod h1:55nWF/Sr9Zvls0bGnWkRxUdhzKqj9uRNlPvgV1vgxKc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 h1:Y5YXgygXwDI5P4RkteB5yF7v35neH7LfJKBG+hzIons= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15/go.mod h1:K+/1EpG42dFSY7CBj+Fruzm8PsCGWTXJ3jdeJ659oGQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 h1:AvltKnW9ewxX2hFmQS0FyJH93aSvJVUEFvXfU+HWtSE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15/go.mod h1:3I4oCdZdmgrREhU74qS1dK9yZ62yumob+58AbFR4cQA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15 h1:NLYTEyZmVZo0Qh183sC8nC+ydJXOOeIL/qI/sS3PdLY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.15/go.mod h1:Z803iB3B0bc8oJV8zH2PERLRfQUJ2n2BXISpsA4+O1M= +github.com/aws/aws-sdk-go-v2/credentials v1.19.6 h1:F9vWao2TwjV2MyiyVS+duza0NIRtAslgLUM0vTA1ZaE= +github.com/aws/aws-sdk-go-v2/credentials v1.19.6/go.mod h1:SgHzKjEVsdQr6Opor0ihgWtkWdfRAIwxYzSJ8O85VHY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 h1:rgGwPzb82iBYSvHMHXc8h9mRoOUBZIGFgKb9qniaZZc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16/go.mod h1:L/UxsGeKpGoIj6DxfhOWHWQ/kGKcd4I1VncE4++IyKA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 h1:1jtGzuV7c82xnqOVfx2F0xmJcOw5374L7N6juGW6x6U= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16/go.mod h1:M2E5OQf+XLe+SZGmmpaI2yy+J326aFf6/+54PoxSANc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 h1:CjMzUs78RDDv4ROu3JnJn/Ig1r6ZD7/T2DXLLRpejic= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16/go.mod h1:uVW4OLBqbJXSHJYA9svT9BluSvvwbzLQ2Crf6UPzR3c= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6 h1:P1MU/SuhadGvg2jtviDXPEejU3jBNhoeeAlRadHzvHI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.6/go.mod h1:5KYaMG6wmVKMFBSfWoyG/zH8pWwzQFnKgpoSRlXHKdQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 h1:3/u/4yZOffg5jdNk1sDpOQ4Y+R6Xbh+GzpDrSZjuy3U= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15/go.mod h1:4Zkjq0FKjE78NKjabuM4tRXKFzUJWXgP0ItEZK8l7JU= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15 h1:wsSQ4SVz5YE1crz0Ap7VBZrV4nNqZt4CIBBT8mnwoNc= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.15/go.mod h1:I7sditnFGtYMIqPRU1QoHZAUrXkGp4SczmlLwrNPlD0= -github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0 h1:IrbE3B8O9pm3lsg96AXIN5MXX4pECEuExh/A0Du3AuI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.93.0/go.mod h1:/sJLzHtiiZvs6C1RbxS/anSAFwZD6oC6M/kotQzOiLw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 h1:DIBqIrJ7hv+e4CmIk2z3pyKT+3B6qVMgRsawHiR3qso= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7/go.mod h1:vLm00xmBke75UmpNvOcZQ/Q30ZFjbczeLFqGx5urmGo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 h1:oHjJHeUy0ImIV0bsrX0X91GkV5nJAyv1l1CC9lnO0TI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16/go.mod h1:iRSNGgOYmiYwSCXxXaKb9HfOEj40+oTKn8pTxMlYkRM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 h1:NSbvS17MlI2lurYgXnCOLvCFX38sBW4eiVER7+kkgsU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16/go.mod h1:SwT8Tmqd4sA6G1qaGdzWCJN99bUmPGHfRwwq3G5Qb+A= +github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0 h1:MIWra+MSq53CFaXXAywB2qg9YvVZifkk6vEGl/1Qor0= +github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0/go.mod h1:79S2BdqCJpScXZA2y+cpZuocWsjGjJINyXnOsf5DTz8= github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 9c89290f8bc31c80a37989b9ba463c36a734fc53 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:47:37 +0800 Subject: [PATCH 805/888] build(deps): update gcr.io/distroless/static docker digest to 4b2a093 (#977) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index accaa5fb3..d47e83374 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:87bce11be0af225e4ca761c40babb06d6d559f5767fbf7dc3c47f0f1a466b92c +FROM gcr.io/distroless/static@sha256:4b2a093ef4649bccd586625090a3c668b254cfe180dee54f4c94f3e9bd7e381e ENTRYPOINT ["/app/chii.exe"] From 42287578231a9e23a64675895ceae78a64f56108 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:47:44 +0800 Subject: [PATCH 806/888] build(deps): update module github.com/go-resty/resty/v2 to v2.17.1 (#978) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 20a742ac9..dcac2cb74 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.28.0 - github.com/go-resty/resty/v2 v2.17.0 + github.com/go-resty/resty/v2 v2.17.1 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 diff --git a/go.sum b/go.sum index 7b59632cb..49d5d7b64 100644 --- a/go.sum +++ b/go.sum @@ -69,8 +69,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= -github.com/go-resty/resty/v2 v2.17.0 h1:pW9DeXcaL4Rrym4EZ8v7L19zZiIlWPg5YXAcVmt+gN0= -github.com/go-resty/resty/v2 v2.17.0/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= +github.com/go-resty/resty/v2 v2.17.1 h1:x3aMpHK1YM9e4va/TMDRlusDDoZiQ+ViDu/WpA6xTM4= +github.com/go-resty/resty/v2 v2.17.1/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= From eca72ceed8d24066d7bf004283323b0b444439c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:48:23 +0800 Subject: [PATCH 807/888] build(deps): update module github.com/redis/rueidis to v1.0.70 (#979) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index dcac2cb74..361472ea7 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.34.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.68 + github.com/redis/rueidis v1.0.70 github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.1 diff --git a/go.sum b/go.sum index 49d5d7b64..2c6e3efe6 100644 --- a/go.sum +++ b/go.sum @@ -175,8 +175,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= -github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= +github.com/onsi/gomega v1.38.3 h1:eTX+W6dobAYfFeGC2PV6RwXRu/MyT+cQguijutvkpSM= +github.com/onsi/gomega v1.38.3/go.mod h1:ZCU1pkQcXDO5Sl9/VVEGlDyp+zm0m1cmeG5TOzLgdh4= github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -191,8 +191,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.68 h1:gept0E45JGxVigWb3zoWHvxEc4IOC7kc4V/4XvN8eG8= -github.com/redis/rueidis v1.0.68/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= +github.com/redis/rueidis v1.0.70 h1:O01v0Mt27/qXV9mKU/zahgxHdC8piHzIepqW4Nyzn/I= +github.com/redis/rueidis v1.0.70/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= @@ -263,6 +263,8 @@ go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN/cnWdSH3291CUuxSEqc+AsGTiDxPP3r2J0l4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= From 892b296c1bc15b8ad7b7d248571ee9e52ca3203e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:54:30 +0800 Subject: [PATCH 808/888] build(deps): update module github.com/go-playground/validator/v10 to v10.30.1 (#982) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 361472ea7..eab0c07c3 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.28.0 + github.com/go-playground/validator/v10 v10.30.1 github.com/go-resty/resty/v2 v2.17.1 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 @@ -67,7 +67,7 @@ require ( github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.10 // indirect + github.com/gabriel-vasile/mimetype v1.4.12 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/huandu/xstrings v1.5.0 // indirect diff --git a/go.sum b/go.sum index 2c6e3efe6..8519a4877 100644 --- a/go.sum +++ b/go.sum @@ -59,16 +59,16 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0= -github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw= +github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= -github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= +github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w= +github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM= github.com/go-resty/resty/v2 v2.17.1 h1:x3aMpHK1YM9e4va/TMDRlusDDoZiQ+ViDu/WpA6xTM4= github.com/go-resty/resty/v2 v2.17.1/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= From c2452744dc70dff7194995fdc43fe71ad392509b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 01:54:34 +0800 Subject: [PATCH 809/888] build(deps): update module github.com/spf13/cobra to v1.10.2 (#980) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index eab0c07c3..75f78d14b 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/redis/rueidis v1.0.70 github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.49 - github.com/spf13/cobra v1.10.1 + github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 github.com/trim21/errgo v0.0.6 diff --git a/go.sum b/go.sum index 8519a4877..160f82093 100644 --- a/go.sum +++ b/go.sum @@ -206,8 +206,8 @@ github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/kafka-go v0.4.49 h1:GJiNX1d/g+kG6ljyJEoi9++PUMdXGAxb7JGPiDCuNmk= github.com/segmentio/kafka-go v0.4.49/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= -github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= -github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= From 165ae956574008f540d103a239be3689ea7a6977 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 02:34:13 +0800 Subject: [PATCH 810/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.35.1 (#984) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 --- go.mod | 2 +- go.sum | 4 ++-- internal/search/character/event.go | 7 ++++--- internal/search/person/event.go | 7 ++++--- internal/search/searcher/client.go | 2 +- internal/search/subject/event.go | 7 ++++--- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 75f78d14b..ebf5142c6 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.15.0 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.34.2 + github.com/meilisearch/meilisearch-go v0.35.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.70 diff --git a/go.sum b/go.sum index 160f82093..21e2c1461 100644 --- a/go.sum +++ b/go.sum @@ -163,8 +163,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.34.2 h1:/OVQ2NQU3nRT5M/bhtg6pzxckxxGLy1hZyo3zjrja28= -github.com/meilisearch/meilisearch-go v0.34.2/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= +github.com/meilisearch/meilisearch-go v0.35.1 h1:5H2FeY5eR4HSkaZMJIoefNzOj3XX1+5dd7ZfhAfzeMg= +github.com/meilisearch/meilisearch-go v0.35.1/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= diff --git a/internal/search/character/event.go b/internal/search/character/event.go index 67468fc66..b78712620 100644 --- a/internal/search/character/event.go +++ b/internal/search/character/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" "github.com/trim21/errgo" @@ -27,7 +28,7 @@ func (c *client) OnAdded(ctx context.Context, id model.CharacterID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } @@ -46,13 +47,13 @@ func (c *client) OnUpdate(ctx context.Context, id model.CharacterID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } func (c *client) OnDelete(ctx context.Context, id model.CharacterID) error { - _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10), nil) return errgo.Wrap(err, "search") } diff --git a/internal/search/person/event.go b/internal/search/person/event.go index b93dcc39d..eeb132396 100644 --- a/internal/search/person/event.go +++ b/internal/search/person/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" "github.com/trim21/errgo" @@ -27,7 +28,7 @@ func (c *client) OnAdded(ctx context.Context, id model.PersonID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } @@ -46,13 +47,13 @@ func (c *client) OnUpdate(ctx context.Context, id model.PersonID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } func (c *client) OnDelete(ctx context.Context, id model.PersonID) error { - _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10), nil) return errgo.Wrap(err, "search") } diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index 8bfd98eef..8ff4372df 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -110,7 +110,7 @@ func NewSendBatch(log *zap.Logger, index meilisearch.IndexManager) func([]Docume return func(items []Document) { log.Debug("send batch to meilisearch", zap.Int("len", len(items))) err := retrier.Do(func() error { - _, err := index.UpdateDocuments(items, lo.ToPtr("id")) + _, err := index.UpdateDocuments(items, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err }) if err != nil { diff --git a/internal/search/subject/event.go b/internal/search/subject/event.go index eb3c2415a..3bfdfeb1d 100644 --- a/internal/search/subject/event.go +++ b/internal/search/subject/event.go @@ -5,6 +5,7 @@ import ( "errors" "strconv" + "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" "github.com/trim21/errgo" @@ -28,7 +29,7 @@ func (c *client) OnAdded(ctx context.Context, id model.SubjectID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } @@ -47,13 +48,13 @@ func (c *client) OnUpdate(ctx context.Context, id model.SubjectID) error { extracted := extract(&s) - _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, lo.ToPtr("id")) + _, err = c.index.UpdateDocumentsWithContext(ctx, extracted, &meilisearch.DocumentOptions{PrimaryKey: lo.ToPtr("id")}) return err } func (c *client) OnDelete(ctx context.Context, id model.SubjectID) error { - _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10)) + _, err := c.index.DeleteDocumentWithContext(ctx, strconv.FormatUint(uint64(id), 10), nil) return errgo.Wrap(err, "search") } From e5c3cde91a285fe95807d1949100cad917ebe168 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 8 Jan 2026 21:35:22 +0800 Subject: [PATCH 811/888] fix: missing `TotalEpisodes` in subject search (#988) --- internal/search/subject/handle.go | 66 ++++++++++++++++--------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index 5cc902429..c63bb1c4d 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -67,26 +67,27 @@ type hit struct { } type ResponseSubject struct { - Date *string `json:"date"` - Platform *string `json:"platform"` - Images res.SubjectImages `json:"images"` - Image string `json:"image"` - Summary string `json:"summary"` - Name string `json:"name"` - NameCN string `json:"name_cn"` - Tags []res.SubjectTag `json:"tags"` - Infobox res.V0wiki `json:"infobox"` - Rating res.Rating `json:"rating"` - Collection res.SubjectCollectionStat `json:"collection"` - ID model.SubjectID `json:"id"` - Eps uint32 `json:"eps"` - MetaTags []string `json:"meta_tags"` - Volumes uint32 `json:"volumes"` - Series bool `json:"series"` - Locked bool `json:"locked"` - NSFW bool `json:"nsfw"` - TypeID model.SubjectType `json:"type"` - Redirect model.SubjectID `json:"-"` + Date *string `json:"date"` + Platform *string `json:"platform"` + Images res.SubjectImages `json:"images"` + Image string `json:"image"` + Summary string `json:"summary"` + Name string `json:"name"` + NameCN string `json:"name_cn"` + Tags []res.SubjectTag `json:"tags"` + Infobox res.V0wiki `json:"infobox"` + Rating res.Rating `json:"rating"` + Collection res.SubjectCollectionStat `json:"collection"` + ID model.SubjectID `json:"id"` + Eps uint32 `json:"eps"` + TotalEpisodes int64 `json:"total_episodes"` + MetaTags []string `json:"meta_tags"` + Volumes uint32 `json:"volumes"` + Series bool `json:"series"` + Locked bool `json:"locked"` + NSFW bool `json:"nsfw"` + TypeID model.SubjectType `json:"type"` + Redirect model.SubjectID `json:"-"` } //nolint:funlen @@ -359,18 +360,19 @@ func isDigitsOnly(s string) bool { func toResponseSubject(s model.Subject, metaTags []tag.Tag) ResponseSubject { images := res.SubjectImage(s.Image) return ResponseSubject{ - ID: s.ID, - Image: images.Large, - Images: images, - Summary: s.Summary, - Name: s.Name, - Platform: res.PlatformString(s), - NameCN: s.NameCN, - Date: null.NilString(s.Date), - Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), - Volumes: s.Volumes, - Redirect: s.Redirect, - Eps: s.Eps, + ID: s.ID, + Image: images.Large, + Images: images, + Summary: s.Summary, + Name: s.Name, + Platform: res.PlatformString(s), + NameCN: s.NameCN, + Date: null.NilString(s.Date), + Infobox: compat.V0Wiki(wiki.ParseOmitError(s.Infobox).NonZero()), + Volumes: s.Volumes, + TotalEpisodes: int64(s.Eps), + Redirect: s.Redirect, + Eps: s.Eps, MetaTags: lo.Map(metaTags, func(item tag.Tag, index int) string { return item.Name }), From 706ae07793ca1e38fce50f29bd33920e1d18b24c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 8 Jan 2026 21:51:07 +0800 Subject: [PATCH 812/888] fix: allow CRLF line endings in dam package (#989) --- internal/pkg/dam/dam.go | 2 +- internal/pkg/dam/dam_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/pkg/dam/dam.go b/internal/pkg/dam/dam.go index 719577802..73b6b1722 100644 --- a/internal/pkg/dam/dam.go +++ b/internal/pkg/dam/dam.go @@ -82,7 +82,7 @@ func (d Dam) CensoredWords(text string) bool { func AllPrintableChar(text string) bool { for _, c := range text { switch c { - case '\n', '\t': + case '\n', '\t', '\r': continue } diff --git a/internal/pkg/dam/dam_test.go b/internal/pkg/dam/dam_test.go index f41a86d56..0d39162c4 100644 --- a/internal/pkg/dam/dam_test.go +++ b/internal/pkg/dam/dam_test.go @@ -27,6 +27,7 @@ func TestAllPrintableChar(t *testing.T) { t.Parallel() require.True(t, dam.AllPrintableChar("0123456789abcdEfg\t、\n 汉字")) + require.True(t, dam.AllPrintableChar("abc\r\nabc")) require.False(t, dam.AllPrintableChar("\u202c")) require.False(t, dam.AllPrintableChar("\u202d")) From 4ad9deb8a9e9a50083b1cae01eecf640aed9a0bd Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 Jan 2026 00:41:47 +0800 Subject: [PATCH 813/888] fix: user should be able to change their own private index (#990) --- cmd/gen/gorm/main.go | 8 +- dal/dao/chii_index.gen.go | 30 +++---- dal/query/chii_index.gen.go | 8 +- internal/index/mysql_repository.go | 31 ++++--- internal/index/mysql_repository_test.go | 56 ++++++++++++- internal/model/index.go | 9 +++ web/handler/index/collect.go | 37 ++++----- web/handler/index/collect_test.go | 20 +++++ web/handler/index/index.go | 103 +++++++++++++++++++----- web/handler/index/index_test.go | 53 ++++++++++++ 10 files changed, 277 insertions(+), 78 deletions(-) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index a20963fe0..0025011d4 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -262,12 +262,8 @@ func main() { gen.FieldRename("idx_collects", "CollectCount"), gen.FieldRename("idx_subject_total", "SubjectCount"), - gen.FieldType("idx_ban", "soft_delete.DeletedAt"), - gen.FieldRename("idx_ban", "Deleted"), - gen.FieldGORMTag("idx_ban", func(tag field.GormTag) field.GormTag { - tag["softDelete"] = []string{"flag"} - return tag - }), + gen.FieldType("idx_ban", "uint8"), + gen.FieldRename("idx_ban", "Privacy"), )) g.ApplyBasic(g.GenerateModelAs("chii_index_collects", "IndexCollect", diff --git a/dal/dao/chii_index.gen.go b/dal/dao/chii_index.gen.go index fb8f1b369..7d16c8dcf 100644 --- a/dal/dao/chii_index.gen.go +++ b/dal/dao/chii_index.gen.go @@ -4,27 +4,23 @@ package dao -import ( - "gorm.io/plugin/soft_delete" -) - const TableNameIndex = "chii_index" // Index mapped from table type Index struct { - ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id" json:""` // 自动id - Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null" json:""` - Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题" json:""` // 标题 - Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介" json:""` // 简介 - ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数" json:""` // 回复数 - SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数" json:""` // 内含条目总数 - CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数" json:""` // 收藏数 - Stats string `gorm:"column:idx_stats;type:mediumtext;not null" json:""` - Award uint32 `gorm:"column:idx_award;type:mediumint(8) unsigned;not null" json:""` - CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间" json:""` // 创建时间 - UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null" json:""` - CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID" json:""` // 创建人UID - Deleted soft_delete.DeletedAt `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null;softDelete:flag" json:""` + ID uint32 `gorm:"column:idx_id;type:mediumint(8);primaryKey;autoIncrement:true;comment:自动id" json:""` // 自动id + Type uint8 `gorm:"column:idx_type;type:tinyint(3) unsigned;not null" json:""` + Title string `gorm:"column:idx_title;type:varchar(80);not null;comment:标题" json:""` // 标题 + Desc string `gorm:"column:idx_desc;type:mediumtext;not null;comment:简介" json:""` // 简介 + ReplyCount uint32 `gorm:"column:idx_replies;type:mediumint(8) unsigned;not null;comment:回复数" json:""` // 回复数 + SubjectCount uint32 `gorm:"column:idx_subject_total;type:mediumint(8) unsigned;not null;comment:内含条目总数" json:""` // 内含条目总数 + CollectCount uint32 `gorm:"column:idx_collects;type:mediumint(8);not null;comment:收藏数" json:""` // 收藏数 + Stats string `gorm:"column:idx_stats;type:mediumtext;not null" json:""` + Award uint32 `gorm:"column:idx_award;type:mediumint(8) unsigned;not null" json:""` + CreatedTime int32 `gorm:"column:idx_dateline;type:int(10);not null;comment:创建时间" json:""` // 创建时间 + UpdatedTime uint32 `gorm:"column:idx_lasttouch;type:int(10) unsigned;not null" json:""` + CreatorID uint32 `gorm:"column:idx_uid;type:mediumint(8);not null;comment:创建人UID" json:""` // 创建人UID + Privacy uint8 `gorm:"column:idx_ban;type:tinyint(1) unsigned;not null" json:""` } // TableName Index's table name diff --git a/dal/query/chii_index.gen.go b/dal/query/chii_index.gen.go index c08fcb303..0f8d7abdf 100644 --- a/dal/query/chii_index.gen.go +++ b/dal/query/chii_index.gen.go @@ -39,7 +39,7 @@ func newIndex(db *gorm.DB, opts ...gen.DOOption) index { _index.CreatedTime = field.NewInt32(tableName, "idx_dateline") _index.UpdatedTime = field.NewUint32(tableName, "idx_lasttouch") _index.CreatorID = field.NewUint32(tableName, "idx_uid") - _index.Deleted = field.NewField(tableName, "idx_ban") + _index.Privacy = field.NewUint8(tableName, "idx_ban") _index.fillFieldMap() @@ -62,7 +62,7 @@ type index struct { CreatedTime field.Int32 // 创建时间 UpdatedTime field.Uint32 CreatorID field.Uint32 // 创建人UID - Deleted field.Field + Privacy field.Uint8 fieldMap map[string]field.Expr } @@ -91,7 +91,7 @@ func (i *index) updateTableName(table string) *index { i.CreatedTime = field.NewInt32(table, "idx_dateline") i.UpdatedTime = field.NewUint32(table, "idx_lasttouch") i.CreatorID = field.NewUint32(table, "idx_uid") - i.Deleted = field.NewField(table, "idx_ban") + i.Privacy = field.NewUint8(table, "idx_ban") i.fillFieldMap() @@ -129,7 +129,7 @@ func (i *index) fillFieldMap() { i.fieldMap["idx_dateline"] = i.CreatedTime i.fieldMap["idx_lasttouch"] = i.UpdatedTime i.fieldMap["idx_uid"] = i.CreatorID - i.fieldMap["idx_ban"] = i.Deleted + i.fieldMap["idx_ban"] = i.Privacy } func (i index) clone(db *gorm.DB) index { diff --git a/internal/index/mysql_repository.go b/internal/index/mysql_repository.go index 1f790bbcc..1267a63f9 100644 --- a/internal/index/mysql_repository.go +++ b/internal/index/mysql_repository.go @@ -55,7 +55,12 @@ func (r mysqlRepo) isNsfw(ctx context.Context, id model.IndexID) (bool, error) { } func (r mysqlRepo) Get(ctx context.Context, id model.IndexID) (model.Index, error) { - i, err := r.q.Index.WithContext(ctx).Where(r.q.Index.ID.Eq(id)).Take() + i, err := r.q.Index.WithContext(ctx). + Where( + r.q.Index.ID.Eq(id), + r.q.Index.Privacy.Neq(uint8(model.IndexPrivacyDeleted)), + ). + Take() if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return model.Index{}, gerr.ErrNotFound @@ -85,7 +90,10 @@ func (r mysqlRepo) New(ctx context.Context, i *model.Index) error { func (r mysqlRepo) Update(ctx context.Context, id model.IndexID, title string, desc string) error { query := r.q.Index.WithContext(ctx) - result, err := query.Where(r.q.Index.ID.Eq(id)).Updates(dao.Index{ + result, err := query.Where( + r.q.Index.ID.Eq(id), + r.q.Index.Privacy.Neq(uint8(model.IndexPrivacyDeleted)), + ).Updates(dao.Index{ Title: title, Desc: desc, }) @@ -94,19 +102,19 @@ func (r mysqlRepo) Update(ctx context.Context, id model.IndexID, title string, d func (r mysqlRepo) Delete(ctx context.Context, id model.IndexID) error { return r.q.Transaction(func(tx *query.Query) error { - result, err := tx.Index.WithContext(ctx).Where(tx.Index.ID.Eq(id)).Delete() - if err = r.WrapResult(result, err, "failed to delete index"); err != nil { - return err - } - result, err = tx.IndexSubject.WithContext(ctx). - Where(tx.IndexSubject.IndexID.Eq(id)).Delete() - return r.WrapResult(result, err, "failed to delete subjects in the index") + result, err := tx.Index.WithContext(ctx). + Where(tx.Index.ID.Eq(id)). + UpdateColumnSimple(tx.Index.Privacy.Value(uint8(model.IndexPrivacyDeleted))) + return r.WrapResult(result, err, "failed to delete index") }) } func (r mysqlRepo) CountSubjects( ctx context.Context, id model.IndexID, subjectType model.SubjectType, ) (int64, error) { + if _, err := r.Get(ctx, id); err != nil { + return 0, err + } q := r.q.IndexSubject.WithContext(ctx).Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.Cat.Eq(0)) if subjectType != 0 { q = q.Where(r.q.IndexSubject.SubjectType.Eq(subjectType)) @@ -126,6 +134,9 @@ func (r mysqlRepo) ListSubjects( subjectType model.SubjectType, limit, offset int, ) ([]Subject, error) { + if _, err := r.Get(ctx, id); err != nil { + return nil, err + } q := r.q.IndexSubject.WithContext(ctx).Joins(r.q.IndexSubject.Subject). Preload(r.q.IndexSubject.Subject.Fields). Where(r.q.IndexSubject.IndexID.Eq(id), r.q.IndexSubject.Cat.Eq(0)). @@ -337,6 +348,7 @@ func daoToModel(index *dao.Index) *model.Index { Comments: index.ReplyCount, Collects: index.CollectCount, NSFW: false, // check nsfw outSubjectIDe of this function + Privacy: model.IndexPrivacy(index.Privacy), CreatedAt: time.Unix(int64(index.CreatedTime), 0), UpdatedAt: time.Unix(int64(index.UpdatedTime), 0), } @@ -351,5 +363,6 @@ func modelToDAO(index *model.Index) *dao.Index { CreatorID: index.CreatorID, CreatedTime: int32(index.CreatedAt.Unix()), UpdatedTime: uint32(index.UpdatedAt.Unix()), + Privacy: uint8(index.Privacy), } } diff --git a/internal/index/mysql_repository_test.go b/internal/index/mysql_repository_test.go index eefd6c4bc..d6faa12ec 100644 --- a/internal/index/mysql_repository_test.go +++ b/internal/index/mysql_repository_test.go @@ -55,6 +55,58 @@ func TestMysqlRepo_Get(t *testing.T) { require.False(t, i.NSFW) } +func TestMysqlRepo_GetPrivateIndex(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + ctx := context.Background() + now := time.Now() + + idx := &model.Index{ + ID: 0, + Title: "private index", + Description: "private visibility", + CreatorID: 382951, + CreatedAt: now, + UpdatedAt: now, + Privacy: model.IndexPrivacyPrivate, + } + require.NoError(t, repo.New(ctx, idx)) + defer func() { _ = repo.Delete(ctx, idx.ID) }() + + got, err := repo.Get(ctx, idx.ID) + require.NoError(t, err) + require.Equal(t, idx.ID, got.ID) + require.Equal(t, model.IndexPrivacyPrivate, got.Privacy) +} + +func TestMysqlRepo_GetDeletedIndex(t *testing.T) { + test.RequireEnv(t, test.EnvMysql) + t.Parallel() + + repo := getRepo(t) + ctx := context.Background() + now := time.Now() + + idx := &model.Index{ + ID: 0, + Title: "deleted index", + Description: "deleted visibility", + CreatorID: 382951, + CreatedAt: now, + UpdatedAt: now, + Privacy: model.IndexPrivacyPublic, + } + require.NoError(t, repo.New(ctx, idx)) + defer func() { _ = repo.Delete(ctx, idx.ID) }() + + require.NoError(t, repo.Delete(ctx, idx.ID)) + + _, err := repo.Get(ctx, idx.ID) + require.ErrorIs(t, err, gerr.ErrNotFound) +} + func TestMysqlRepo_ListSubjects(t *testing.T) { test.RequireEnv(t, test.EnvMysql) t.Parallel() @@ -212,8 +264,8 @@ func TestMysqlRepo_DeleteIndex2(t *testing.T) { require.Equal(t, err, gerr.ErrNotFound) subjects, err = repo.ListSubjects(context.Background(), index.ID, model.SubjectTypeAll, 20, 0) - require.NoError(t, err) - require.Len(t, subjects, 0) + require.ErrorIs(t, err, gerr.ErrNotFound) + require.Nil(t, subjects) // 确保不会影响到其他目录 subjects, err = repo.ListSubjects(context.Background(), 15045, model.SubjectTypeAll, 20, 0) diff --git a/internal/model/index.go b/internal/model/index.go index a562a0463..707eeda8e 100644 --- a/internal/model/index.go +++ b/internal/model/index.go @@ -16,6 +16,14 @@ package model import "time" +type IndexPrivacy uint8 + +const ( + IndexPrivacyPublic IndexPrivacy = 0 + IndexPrivacyDeleted IndexPrivacy = 1 + IndexPrivacyPrivate IndexPrivacy = 2 +) + type Index struct { CreatedAt time.Time UpdatedAt time.Time @@ -27,4 +35,5 @@ type Index struct { Comments uint32 Collects uint32 NSFW bool + Privacy IndexPrivacy } diff --git a/web/handler/index/collect.go b/web/handler/index/collect.go index f8b7003bd..2ad9c7069 100644 --- a/web/handler/index/collect.go +++ b/web/handler/index/collect.go @@ -30,8 +30,8 @@ func (h *Handler) CollectIndex(c echo.Context) error { if err != nil { return err } - uid := accessor.GetFromCtx(c).ID - return h.collectIndex(c, iid, uid) + user := accessor.GetFromCtx(c) + return h.collectIndex(c, iid, user) } func (h *Handler) UncollectIndex(c echo.Context) error { @@ -39,50 +39,47 @@ func (h *Handler) UncollectIndex(c echo.Context) error { if err != nil { return err } - uid := accessor.GetFromCtx(c).ID - return h.uncollectIndex(c, iid, uid) + user := accessor.GetFromCtx(c) + return h.uncollectIndex(c, iid, user) } -func (h *Handler) collectIndex(c echo.Context, indexID uint32, uid uint32) error { +func (h *Handler) collectIndex(c echo.Context, indexID uint32, user *accessor.Accessor) error { ctx := c.Request().Context() - // check if the index exists - if _, err := h.i.Get(ctx, indexID); err != nil { - if errors.Is(err, gerr.ErrNotFound) { - return res.NotFound("index not found") - } + + if _, ok, err := h.getIndexWithCache(ctx, user, indexID); err != nil { return res.InternalError(c, err, "get index error") + } else if !ok { + return res.NotFound("index not found") } // check if the user has collected the index - if _, err := h.i.GetIndexCollect(ctx, indexID, uid); err == nil { + if _, err := h.i.GetIndexCollect(ctx, indexID, user.ID); err == nil { return nil // already collected } else if !errors.Is(err, gerr.ErrNotFound) { return res.InternalError(c, err, "get index collect error") } // add the collect - if err := h.i.AddIndexCollect(ctx, indexID, uid); err != nil { + if err := h.i.AddIndexCollect(ctx, indexID, user.ID); err != nil { return res.InternalError(c, err, "add index collect failed") } return nil } -func (h *Handler) uncollectIndex(c echo.Context, indexID uint32, uid uint32) error { +func (h *Handler) uncollectIndex(c echo.Context, indexID uint32, user *accessor.Accessor) error { ctx := c.Request().Context() - // check if the index exists - if _, err := h.i.Get(ctx, indexID); err != nil { - if errors.Is(err, gerr.ErrNotFound) { - return res.NotFound("index not found") - } + if _, ok, err := h.getIndexWithCache(ctx, user, indexID); err != nil { return res.InternalError(c, err, "get index error") + } else if !ok { + return res.NotFound("index not found") } // check if the user has collected the index - if _, err := h.i.GetIndexCollect(ctx, indexID, uid); err != nil { + if _, err := h.i.GetIndexCollect(ctx, indexID, user.ID); err != nil { if errors.Is(err, gerr.ErrNotFound) { return res.NotFound("index not collected") } return res.InternalError(c, err, "get index collect error") } // delete the collect - if err := h.i.DeleteIndexCollect(ctx, indexID, uid); err != nil { + if err := h.i.DeleteIndexCollect(ctx, indexID, user.ID); err != nil { return res.InternalError(c, err, "delete index collect failed") } return nil diff --git a/web/handler/index/collect_test.go b/web/handler/index/collect_test.go index 26911976c..6d146049c 100644 --- a/web/handler/index/collect_test.go +++ b/web/handler/index/collect_test.go @@ -67,3 +67,23 @@ func TestUncollectIndex(t *testing.T) { require.Equal(t, http.StatusOK, resp.StatusCode) } + +func TestCollectIndex_PrivateNotOwner(t *testing.T) { + t.Parallel() + mockIndex := mocks.NewIndexRepo(t) + mockIndex.EXPECT().Get(mock.Anything, uint32(233)).Return( + model.Index{ID: 233, CreatorID: 1, Privacy: model.IndexPrivacyPrivate}, + nil, + ) + mockAuth := mocks.NewAuthRepo(t) + mockAuth.EXPECT().GetByToken(mock.Anything, mock.Anything).Return(auth.UserInfo{ID: 6}, nil) + mockAuth.EXPECT().GetPermission(mock.Anything, mock.Anything).Return(auth.Permission{}, nil) + + app := test.GetWebApp(t, test.Mock{IndexRepo: mockIndex, AuthRepo: mockAuth}) + + resp := htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer token"). + Post("/v0/indices/233/collect") + + require.Equal(t, http.StatusNotFound, resp.StatusCode) +} diff --git a/web/handler/index/index.go b/web/handler/index/index.go index 5f381df61..b1ff7a883 100644 --- a/web/handler/index/index.go +++ b/web/handler/index/index.go @@ -32,6 +32,12 @@ import ( "github.com/bangumi/server/web/res" ) +type indexCacheValue struct { + Index res.Index `json:"index"` + Privacy model.IndexPrivacy `json:"privacy"` + CreatorID model.UserID `json:"creator_id"` +} + func (h Handler) GetIndex(c echo.Context) error { user := accessor.GetFromCtx(c) @@ -40,53 +46,110 @@ func (h Handler) GetIndex(c echo.Context) error { return err } - r, ok, err := h.getIndexWithCache(c.Request().Context(), id) + resp, ok, err := h.getIndexWithCache(c.Request().Context(), user, id) if err != nil { return errgo.Wrap(err, "failed to get index") } - if !ok || r.NSFW && !user.AllowNSFW() { + if !ok { return res.NotFound("index not found") } - return c.JSON(http.StatusOK, r) + return c.JSON(http.StatusOK, resp) } -func (h Handler) getIndexWithCache(c context.Context, id uint32) (res.Index, bool, error) { - var key = cachekey.Index(id) +func (h Handler) getIndexWithCache(ctx context.Context, user *accessor.Accessor, id uint32) (res.Index, bool, error) { + key := cachekey.Index(id) + + userID, allowNSFW := h.extractUserPrefs(user) + + if cached, ok, err := h.getIndexFromCache(ctx, key, userID, allowNSFW); err != nil || ok { + return cached, ok, err + } + + item, ok, err := h.buildIndexResponse(ctx, id, userID, allowNSFW) + if err != nil || !ok { + return item.Index, ok, err + } + + if item.Privacy == model.IndexPrivacyPublic { + _ = h.cache.Set(ctx, key, item, time.Hour) + } - var r res.Index - ok, err := h.cache.Get(c, key, &r) + return item.Index, true, nil +} + +func (h Handler) getIndexFromCache( + ctx context.Context, key string, userID model.UserID, allowNSFW bool, +) (res.Index, bool, error) { + var cached indexCacheValue + ok, err := h.cache.Get(ctx, key, &cached) if err != nil { - return r, ok, errgo.Wrap(err, "cache.Get") + return res.Index{}, ok, errgo.Wrap(err, "cache.Get") + } + + if !ok { + return res.Index{}, false, nil } - if ok { - return r, ok, nil + if !isIndexVisible(cached.Privacy, cached.CreatorID, userID) { + return res.Index{}, false, nil } + if cached.Index.NSFW && !allowNSFW { + return res.Index{}, false, nil + } + + return cached.Index, true, nil +} - i, err := h.i.Get(c, id) +func (h Handler) buildIndexResponse( + ctx context.Context, id uint32, userID model.UserID, allowNSFW bool, +) (indexCacheValue, bool, error) { + i, err := h.i.Get(ctx, id) if err != nil { if errors.Is(err, gerr.ErrNotFound) { - return res.Index{}, false, nil + return indexCacheValue{}, false, nil } - return res.Index{}, false, errgo.Wrap(err, "Index.Get") + return indexCacheValue{}, false, errgo.Wrap(err, "Index.Get") } - u, err := h.u.GetByID(c, i.CreatorID) + if !isIndexVisible(i.Privacy, i.CreatorID, userID) { + return indexCacheValue{}, false, nil + } + + u, err := h.u.GetByID(ctx, i.CreatorID) if err != nil { if errors.Is(err, gerr.ErrNotFound) { h.log.Error("index missing creator", zap.Uint32("index_id", id), zap.Uint32("creator", i.CreatorID)) } - return res.Index{}, false, errgo.Wrap(err, "failed to get creator: user.GetByID") + return indexCacheValue{}, false, errgo.Wrap(err, "failed to get creator: user.GetByID") + } + + r := res.IndexModelToResponse(&i, u) + if r.NSFW && !allowNSFW { + return indexCacheValue{}, false, nil } - r = res.IndexModelToResponse(&i, u) + return indexCacheValue{Index: r, Privacy: i.Privacy, CreatorID: i.CreatorID}, true, nil +} - _ = h.cache.Set(c, key, r, time.Hour) +func isIndexVisible(privacy model.IndexPrivacy, creatorID, userID model.UserID) bool { + if privacy == model.IndexPrivacyDeleted { + return false + } + if privacy == model.IndexPrivacyPrivate && creatorID != userID { + return false + } + return true +} + +func (h Handler) extractUserPrefs(user *accessor.Accessor) (model.UserID, bool) { + if user == nil { + return 0, false + } - return r, true, nil + return user.ID, user.AllowNSFW() } func (h Handler) GetIndexSubjects(c echo.Context) error { @@ -107,12 +170,12 @@ func (h Handler) GetIndexSubjects(c echo.Context) error { return err } - r, ok, err := h.getIndexWithCache(c.Request().Context(), id) + _, ok, err := h.getIndexWithCache(c.Request().Context(), user, id) if err != nil { return errgo.Wrap(err, "failed to get index") } - if !ok || (r.NSFW && !user.AllowNSFW()) { + if !ok { return res.ErrNotFound } diff --git a/web/handler/index/index_test.go b/web/handler/index/index_test.go index a7bf3916a..082c4b95f 100644 --- a/web/handler/index/index_test.go +++ b/web/handler/index/index_test.go @@ -55,6 +55,59 @@ func TestHandler_GetIndex_NSFW(t *testing.T) { require.Equal(t, http.StatusNotFound, resp.StatusCode) } +func TestHandler_GetIndex_PrivateForOwner(t *testing.T) { + t.Parallel() + m := mocks.NewIndexRepo(t) + m.EXPECT().Get(mock.Anything, uint32(7)).Return( + model.Index{ID: 7, CreatorID: 6, Privacy: model.IndexPrivacyPrivate}, + nil, + ) + + mAuth := mocks.NewAuthRepo(t) + mAuth.EXPECT().GetByToken(mock.Anything, mock.Anything). + Return(auth.UserInfo{ID: 6, RegTime: time.Unix(1e9, 0)}, nil) + mAuth.EXPECT().GetPermission(mock.Anything, mock.Anything). + Return(auth.Permission{}, nil) + + app := test.GetWebApp(t, test.Mock{IndexRepo: m, AuthRepo: mAuth}) + + resp := htest.New(t, app). + Header(echo.HeaderAuthorization, "Bearer token"). + Get("/v0/indices/7") + + require.Equal(t, http.StatusOK, resp.StatusCode) +} + +func TestHandler_GetIndex_PrivateForOthers(t *testing.T) { + t.Parallel() + m := mocks.NewIndexRepo(t) + m.EXPECT().Get(mock.Anything, uint32(7)).Return( + model.Index{ID: 7, CreatorID: 6, Privacy: model.IndexPrivacyPrivate}, + nil, + ) + + app := test.GetWebApp(t, test.Mock{IndexRepo: m}) + + resp := htest.New(t, app).Get("/v0/indices/7") + + require.Equal(t, http.StatusNotFound, resp.StatusCode) +} + +func TestHandler_GetIndex_Deleted(t *testing.T) { + t.Parallel() + m := mocks.NewIndexRepo(t) + m.EXPECT().Get(mock.Anything, uint32(7)).Return( + model.Index{ID: 7, CreatorID: 6, Privacy: model.IndexPrivacyDeleted}, + nil, + ) + + app := test.GetWebApp(t, test.Mock{IndexRepo: m}) + + resp := htest.New(t, app).Get("/v0/indices/7") + + require.Equal(t, http.StatusNotFound, resp.StatusCode) +} + func TestHandler_NewIndex_NoPermission(t *testing.T) { t.Parallel() From 207b00f08b64c36792a44da25323709306ee2e6c Mon Sep 17 00:00:00 2001 From: Trim21 Date: Fri, 9 Jan 2026 00:51:19 +0800 Subject: [PATCH 814/888] fix: update career field in request filter and extract function (#991) --- internal/search/person/doc.go | 1 + internal/search/person/handle.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/search/person/doc.go b/internal/search/person/doc.go index e5141dfd4..6be3d8cce 100644 --- a/internal/search/person/doc.go +++ b/internal/search/person/doc.go @@ -46,5 +46,6 @@ func extract(c *model.Person) searcher.Document { Aliases: searcher.ExtractAliases(w), Comment: c.CommentCount, Collect: c.CollectCount, + Career: c.Careers(), } } diff --git a/internal/search/person/handle.go b/internal/search/person/handle.go index 3f4bf1023..279bb5bca 100644 --- a/internal/search/person/handle.go +++ b/internal/search/person/handle.go @@ -24,7 +24,7 @@ type Req struct { } type ReqFilter struct { //nolint:musttag - Careers []string `json:"meta_tags"` // and + Careers []string `json:"career"` // and } type hit struct { From e52551c043728a3df58a730220a08c156b040524 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 18 Jan 2026 02:56:33 +0800 Subject: [PATCH 815/888] fix: updating collection time (#993) --- internal/collections/infra/mysql_repo.go | 2 +- internal/collections/infra/mysql_repo_test.go | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/collections/infra/mysql_repo.go b/internal/collections/infra/mysql_repo.go index 0ff14d93f..0dd46da3f 100644 --- a/internal/collections/infra/mysql_repo.go +++ b/internal/collections/infra/mysql_repo.go @@ -395,7 +395,7 @@ func (r mysqlRepo) updateSubjectCollection( obj.Private = uint8(s.Privacy()) obj.Type = uint8(s.TypeID()) - if s.TypeID() != original.TypeID() { + if isNew || s.TypeID() != original.TypeID() { err := r.updateCollectionTime(obj, s.TypeID(), at) if err != nil { return errgo.Trace(err) diff --git a/internal/collections/infra/mysql_repo_test.go b/internal/collections/infra/mysql_repo_test.go index a99ab5972..7d8300845 100644 --- a/internal/collections/infra/mysql_repo_test.go +++ b/internal/collections/infra/mysql_repo_test.go @@ -217,6 +217,8 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { repo, q := getRepo(t) table := q.SubjectCollection + var r *dao.SubjectCollection + err := q.Subject.WithContext(context.TODO()).Clauses(clause.OnConflict{DoNothing: true}). Where(q.Subject.ID.Eq(sid)).Create(&dao.Subject{ID: sid}) require.NoError(t, err) @@ -258,8 +260,9 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.NoError(t, err) // DB 里有数据 - _, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + r, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() require.NoError(t, err) + require.EqualValues(t, now.Unix(), r.DoingTime) // 更新 err = repo.UpdateOrCreateSubjectCollection(context.Background(), uid, subject, now, "", @@ -272,7 +275,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { }) require.NoError(t, err) - r, err := table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() + r, err = table.WithContext(context.TODO()).Where(table.SubjectID.Eq(sid), table.UserID.Eq(uid)).Take() require.NoError(t, err) require.EqualValues(t, now.Unix(), r.UpdatedTime) @@ -281,7 +284,7 @@ func TestMysqlRepo_UpdateOrCreateSubjectCollection(t *testing.T) { require.Equal(t, uint8(1), r.Rate) require.EqualValues(t, now.Unix(), r.DroppedTime) require.Zero(t, r.WishTime) - require.Zero(t, r.DoingTime) + require.EqualValues(t, now.Unix(), r.DoingTime) require.Zero(t, r.DoneTime) require.Zero(t, r.OnHoldTime) From 4a555f9ee07c794062b3b38387db6023cc5e6ca4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jan 2026 10:25:36 +0800 Subject: [PATCH 816/888] build(deps): bump lodash from 4.17.21 to 4.17.23 (#995) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1f5a90ca0..a6c804623 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "dependencies": { "@apidevtools/json-schema-ref-parser": "^15.1.3", "js-yaml": "^4.1.1", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "yaml": "^2.8.2" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 3c3d1ac1d..5886d7aa4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -104,10 +104,10 @@ js-yaml@^4.1.1: dependencies: argparse "^2.0.1" -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.17.23: + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== node-fetch-h2@^2.3.0: version "2.3.0" From d4992effe250e441c5d6bbe8c825ba91e596ab8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 5 Feb 2026 23:58:29 +0800 Subject: [PATCH 817/888] build(deps): update dependency go to v1.24.13 (#1002) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ebf5142c6..5deae9177 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.11 +go 1.24.13 tool github.com/vektra/mockery/v3 From d805aa1c39ffbdea8e80c839fc43202a5ffd8410 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:02:40 +0800 Subject: [PATCH 818/888] build(deps): update aws-sdk-go-v2 monorepo (#1001) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 5deae9177..8b001a018 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.41.0 - github.com/aws/aws-sdk-go-v2/credentials v1.19.6 - github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0 + github.com/aws/aws-sdk-go-v2 v1.41.1 + github.com/aws/aws-sdk-go-v2/credentials v1.19.7 + github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.14.2 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -51,13 +51,13 @@ require ( github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 // indirect github.com/aws/smithy-go v1.24.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect diff --git a/go.sum b/go.sum index 21e2c1461..3b1949d43 100644 --- a/go.sum +++ b/go.sum @@ -7,28 +7,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.41.0 h1:tNvqh1s+v0vFYdA1xq0aOJH+Y5cRyZ5upu6roPgPKd4= -github.com/aws/aws-sdk-go-v2 v1.41.0/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= +github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4= -github.com/aws/aws-sdk-go-v2/credentials v1.19.6 h1:F9vWao2TwjV2MyiyVS+duza0NIRtAslgLUM0vTA1ZaE= -github.com/aws/aws-sdk-go-v2/credentials v1.19.6/go.mod h1:SgHzKjEVsdQr6Opor0ihgWtkWdfRAIwxYzSJ8O85VHY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 h1:rgGwPzb82iBYSvHMHXc8h9mRoOUBZIGFgKb9qniaZZc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16/go.mod h1:L/UxsGeKpGoIj6DxfhOWHWQ/kGKcd4I1VncE4++IyKA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 h1:1jtGzuV7c82xnqOVfx2F0xmJcOw5374L7N6juGW6x6U= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16/go.mod h1:M2E5OQf+XLe+SZGmmpaI2yy+J326aFf6/+54PoxSANc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 h1:CjMzUs78RDDv4ROu3JnJn/Ig1r6ZD7/T2DXLLRpejic= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16/go.mod h1:uVW4OLBqbJXSHJYA9svT9BluSvvwbzLQ2Crf6UPzR3c= +github.com/aws/aws-sdk-go-v2/credentials v1.19.7 h1:tHK47VqqtJxOymRrNtUXN5SP/zUTvZKeLx4tH6PGQc8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.7/go.mod h1:qOZk8sPDrxhf+4Wf4oT2urYJrYt3RejHSzgAquYeppw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17 h1:JqcdRG//czea7Ppjb+g/n4o8i/R50aTBHkA7vu0lK+k= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17/go.mod h1:CO+WeGmIdj/MlPel2KwID9Gt7CNq4M65HUfBW97liM0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 h1:DIBqIrJ7hv+e4CmIk2z3pyKT+3B6qVMgRsawHiR3qso= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7/go.mod h1:vLm00xmBke75UmpNvOcZQ/Q30ZFjbczeLFqGx5urmGo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 h1:oHjJHeUy0ImIV0bsrX0X91GkV5nJAyv1l1CC9lnO0TI= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16/go.mod h1:iRSNGgOYmiYwSCXxXaKb9HfOEj40+oTKn8pTxMlYkRM= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 h1:NSbvS17MlI2lurYgXnCOLvCFX38sBW4eiVER7+kkgsU= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16/go.mod h1:SwT8Tmqd4sA6G1qaGdzWCJN99bUmPGHfRwwq3G5Qb+A= -github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0 h1:MIWra+MSq53CFaXXAywB2qg9YvVZifkk6vEGl/1Qor0= -github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0/go.mod h1:79S2BdqCJpScXZA2y+cpZuocWsjGjJINyXnOsf5DTz8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8 h1:Z5EiPIzXKewUQK0QTMkutjiaPVeVYXX7KIqhXu/0fXs= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8/go.mod h1:FsTpJtvC4U1fyDXk7c71XoDv3HlRm8V3NiYLeYLh5YE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 h1:RuNSMoozM8oXlgLG/n6WLaFGoea7/CddrCfIiSA+xdY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17/go.mod h1:F2xxQ9TZz5gDWsclCtPQscGpP0VUOc8RqgFM3vDENmU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 h1:bGeHBsGZx0Dvu/eJC0Lh9adJa3M1xREcndxLNZlve2U= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17/go.mod h1:dcW24lbU0CzHusTE8LLHhRLI42ejmINN8Lcr22bwh/g= +github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 h1:oeu8VPlOre74lBA/PMhxa5vewaMIMmILM+RraSyB8KA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0/go.mod h1:5jggDlZ2CLQhwJBiZJb4vfk4f0GxWdEDruWKEJ1xOdo= github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 8a56272e93ad41824595be51416e7539df965715 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:03:53 +0800 Subject: [PATCH 819/888] build(deps): update module github.com/bytedance/sonic to v1.15.0 (#1006) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8b001a018..c568c7de6 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.19.7 github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.14.2 + github.com/bytedance/sonic v1.15.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -62,7 +62,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect - github.com/bytedance/sonic/loader v0.4.0 // indirect + github.com/bytedance/sonic/loader v0.5.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect diff --git a/go.sum b/go.sum index 3b1949d43..e9139c78d 100644 --- a/go.sum +++ b/go.sum @@ -41,10 +41,10 @@ github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= -github.com/bytedance/sonic v1.14.2 h1:k1twIoe97C1DtYUo+fZQy865IuHia4PR5RPiuGPPIIE= -github.com/bytedance/sonic v1.14.2/go.mod h1:T80iDELeHiHKSc0C9tubFygiuXoGzrkjKzX2quAx980= -github.com/bytedance/sonic/loader v0.4.0 h1:olZ7lEqcxtZygCK9EKYKADnpQoYkRQxaeY2NYzevs+o= -github.com/bytedance/sonic/loader v0.4.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= +github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= +github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k= +github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE= +github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= From 8d3611f17848e36ee0c85c023894c3a47c52368f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:04:08 +0800 Subject: [PATCH 820/888] ci: update dependency gotestyourself/gotestsum to v1.13.0 (#1009) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0e91f0bba..c6de41676 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -46,7 +46,7 @@ jobs: uses: jaxxstorm/action-install-gh-release@v2.1.0 with: repo: gotestyourself/gotestsum - tag: v1.12.1 + tag: v1.13.0 platform: linux arch: amd64 env: From af305c898602e4e13fe4a23f9670a6a1dabd566c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:20:16 +0800 Subject: [PATCH 821/888] build(deps): update module github.com/redis/rueidis to v1.0.71 (#1003) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c568c7de6..eb0c04adb 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.35.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.70 + github.com/redis/rueidis v1.0.71 github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.49 github.com/spf13/cobra v1.10.2 diff --git a/go.sum b/go.sum index e9139c78d..5781a0cf2 100644 --- a/go.sum +++ b/go.sum @@ -191,8 +191,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.70 h1:O01v0Mt27/qXV9mKU/zahgxHdC8piHzIepqW4Nyzn/I= -github.com/redis/rueidis v1.0.70/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= +github.com/redis/rueidis v1.0.71 h1:pODtnAR5GAB7j4ekhldZ29HKOxe4Hph0GTDGk1ayEQY= +github.com/redis/rueidis v1.0.71/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From a737f0561919f4ca62da54f6ef932b4c72f717ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:20:26 +0800 Subject: [PATCH 822/888] build(deps): update module github.com/vektra/mockery/v3 to v3.6.3 (#1005) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 5 ++--- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index eb0c04adb..8213b477f 100644 --- a/go.mod +++ b/go.mod @@ -66,7 +66,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect - github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.12 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect @@ -98,13 +98,12 @@ require ( github.com/prometheus/common v0.66.1 // indirect github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/rs/zerolog v1.34.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.6.1 // indirect + github.com/vektra/mockery/v3 v3.6.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect diff --git a/go.sum b/go.sum index 5781a0cf2..3bdfbb764 100644 --- a/go.sum +++ b/go.sum @@ -57,8 +57,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= -github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw= github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -235,8 +235,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.6.1 h1:YyqAXihdNML8y6SJnvPKYr+2HAHvBjdvqFu/fMYlX8g= -github.com/vektra/mockery/v3 v3.6.1/go.mod h1:Oti3Df0WP8wwT31yuVri3QNsDeMUQU5Q4QEg8EabaBw= +github.com/vektra/mockery/v3 v3.6.3 h1:YaBokm33LG0E8w1TccCkcJr/6tRf+zSYiHS8ct4ttCc= +github.com/vektra/mockery/v3 v3.6.3/go.mod h1:kh58mpWIghfUCfFkNCP72TJmuJUR/dKnrqBZ3HspVq8= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= From 2386e7c6733e5f3faa6c8661c5937656c489a2a2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:20:37 +0800 Subject: [PATCH 823/888] build(deps): update module golang.org/x/text to v0.33.0 (#1008) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 8213b477f..c061d0d24 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 golang.org/x/sync v0.19.0 - golang.org/x/text v0.32.0 + golang.org/x/text v0.33.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -114,12 +114,12 @@ require ( golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.46.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.30.0 // indirect + golang.org/x/mod v0.31.0 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/sys v0.39.0 // indirect golang.org/x/term v0.38.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.39.0 // indirect + golang.org/x/tools v0.40.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 3bdfbb764..a5d1b3ba4 100644 --- a/go.sum +++ b/go.sum @@ -273,8 +273,8 @@ golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= @@ -286,12 +286,12 @@ golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= -golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= -golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 4414ddb9416c20f8e052e56071fa2eed9ef8fb53 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:20:53 +0800 Subject: [PATCH 824/888] build(deps): lock file maintenance npm (#997) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index a6c804623..99f8a9015 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^15.1.3", + "@apidevtools/json-schema-ref-parser": "^15.2.2", "js-yaml": "^4.1.1", "lodash": "^4.17.23", "yaml": "^2.8.2" @@ -22,7 +22,7 @@ "@types/json-schema": "^7.0.15", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.7.4" + "prettier": "^3.8.1" }, "nodemonConfig": { "restartable": "rs", diff --git a/yarn.lock b/yarn.lock index 5886d7aa4..efb2c5db3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^15.1.3": - version "15.1.3" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.1.3.tgz#4dc45f3807cea9be807cfca0daf582d8c935f0f0" - integrity sha512-XvEitlOaU8S+hOrMPuGyCjp6vC51K+syUN4HHrSUdSDLLWRWQJYjInU6xlSoRGCVBCfcoHxbRm+yiaYq2yFR5w== +"@apidevtools/json-schema-ref-parser@^15.2.2": + version "15.2.2" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.2.2.tgz#2eb1efe8534c17125901c172e49485c7179835ce" + integrity sha512-54fvjSwWiBTdVviiUItOCeyxtPSBmCrSEjlOl8XFEDuYD3lXY1lOBWKim/WJ3i1EYzdGx6rSOjK5KRDMppLI4Q== dependencies: js-yaml "^4.1.1" @@ -162,10 +162,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -prettier@^3.7.4: - version "3.7.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== +prettier@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" + integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== reftools@^1.1.9: version "1.1.9" From 056ea10350549b087368cd4405cab254367e0338 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:21:00 +0800 Subject: [PATCH 825/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.50 (#1004) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c061d0d24..35c9d0b9a 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.71 github.com/samber/lo v1.52.0 - github.com/segmentio/kafka-go v0.4.49 + github.com/segmentio/kafka-go v0.4.50 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index a5d1b3ba4..d9115d8a3 100644 --- a/go.sum +++ b/go.sum @@ -204,8 +204,8 @@ github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/segmentio/kafka-go v0.4.49 h1:GJiNX1d/g+kG6ljyJEoi9++PUMdXGAxb7JGPiDCuNmk= -github.com/segmentio/kafka-go v0.4.49/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= +github.com/segmentio/kafka-go v0.4.50 h1:mcyC3tT5WeyWzrFbd6O374t+hmcu1NKt2Pu1L3QaXmc= +github.com/segmentio/kafka-go v0.4.50/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= From ce01af4be7a9141523fb70f8755ac3894478eda6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 00:21:09 +0800 Subject: [PATCH 826/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.36.0 (#1007) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 35c9d0b9a..b0e372dd2 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.15.0 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.35.1 + github.com/meilisearch/meilisearch-go v0.36.0 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.71 @@ -69,7 +69,7 @@ require ( github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.12 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect - github.com/golang-jwt/jwt/v4 v4.5.2 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jedib0t/go-pretty/v6 v6.6.7 // indirect diff --git a/go.sum b/go.sum index d9115d8a3..915b762f2 100644 --- a/go.sum +++ b/go.sum @@ -77,8 +77,8 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6 github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= -github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -163,8 +163,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.35.1 h1:5H2FeY5eR4HSkaZMJIoefNzOj3XX1+5dd7ZfhAfzeMg= -github.com/meilisearch/meilisearch-go v0.35.1/go.mod h1:cUVJZ2zMqTvvwIMEEAdsWH+zrHsrLpAw6gm8Lt1MXK0= +github.com/meilisearch/meilisearch-go v0.36.0 h1:N1etykTektXt5KPcSbhBO0d5Xx5NaKj4pJWEM7WA5dI= +github.com/meilisearch/meilisearch-go v0.36.0/go.mod h1:HBfHzKMxcSbTOvqdfuRA/yf6Vk9IivcwKocWRuW7W78= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From fe4e2d63967541bf6e315b9542b1effd25cc1f2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:20:08 +0800 Subject: [PATCH 827/888] build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 (#1012) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b0e372dd2..5761bd9e4 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( ) require ( - filippo.io/edwards25519 v1.1.0 // indirect + filippo.io/edwards25519 v1.1.1 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect diff --git a/go.sum b/go.sum index 915b762f2..4292520a2 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,6 @@ -filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +filippo.io/edwards25519 v1.1.1 h1:YpjwWWlNmGIDyXOn8zLzqiD+9TyIlPhGFG96P39uBpw= +filippo.io/edwards25519 v1.1.1/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= From 9411540f59fd2a9d5c2dc0c0c7b4ec10f59f7f67 Mon Sep 17 00:00:00 2001 From: Inchei Chan Date: Mon, 23 Feb 2026 13:48:38 +0800 Subject: [PATCH 828/888] feat(archive): export person relations (#1013) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- cmd/archive/main.go | 32 ++ cmd/gen/gorm/main.go | 13 + dal/dao/chii_crt_cast_index.gen.go | 1 + dal/dao/chii_person_relations.gen.go | 26 ++ dal/query/chii_crt_cast_index.gen.go | 6 +- dal/query/chii_person_relations.gen.go | 367 ++++++++++++++++++++++ dal/query/gen.go | 6 + internal/subject/mysql_repository_test.go | 4 +- 8 files changed, 452 insertions(+), 3 deletions(-) create mode 100644 dal/dao/chii_person_relations.gen.go create mode 100644 dal/query/chii_person_relations.gen.go diff --git a/cmd/archive/main.go b/cmd/archive/main.go index e439f65fb..f71770f60 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -136,6 +136,7 @@ func start(out string) { {FileName: "subject-persons.jsonlines", Fn: exportSubjectPersonRelations}, {FileName: "subject-characters.jsonlines", Fn: exportSubjectCharacterRelations}, {FileName: "person-characters.jsonlines", Fn: exportPersonCharacterRelations}, + {FileName: "person-relations.jsonlines", Fn: exportPersonRelations}, } { w, err := z.Create(s.FileName) if err != nil { @@ -557,6 +558,37 @@ func exportPersonCharacterRelations(q *query.Query, w io.Writer) { } } +type PersonRelation struct { + PersonType string `json:"person_type"` + PersonID model.PersonID `json:"person_id"` + RelatedPersonID model.PersonID `json:"related_person_id"` + RelationType uint32 `json:"relation_type"` + Spoiler bool `json:"spoiler"` + Ended bool `json:"ended"` +} + +func exportPersonRelations(q *query.Query, w io.Writer) { + for i := model.PersonID(0); i < maxPersonID; i += defaultStep { + relations, err := q.WithContext(context.Background()).PersonRelation. + Order(q.PersonRelation.PersonID, q.PersonRelation.PersonID). + Where(q.PersonRelation.PersonID.Gt(i), q.PersonRelation.PersonID.Lte(i+defaultStep)).Find() + if err != nil { + panic(err) + } + + for _, rel := range relations { + encode(w, PersonRelation{ + PersonType: rel.PersonType, + PersonID: rel.PersonID, + RelatedPersonID: rel.RelatedPersonID, + RelationType: rel.RelationType, + Spoiler: rel.Spoiler, + Ended: rel.Ended, + }) + } + } +} + func encode(w io.Writer, object any) { if err := json.NewEncoder(w).Encode(object); err != nil { panic(err) diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index 0025011d4..bf9922dd6 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -441,6 +441,19 @@ func main() { ), ) + g.ApplyBasic(g.GenerateModelAs("chii_person_relations", "PersonRelation", + gen.FieldTrimPrefix("rlt_"), + gen.FieldRename("prsn_id", "PersonID"), + gen.FieldRename("prsn_type", "PersonType"), + gen.FieldRename("rlt_prsn_id", "RelatedPersonID"), + gen.FieldRename("rlt_prsn_type", "RelatedPersonType"), + gen.FieldRename("rlt_type", "RelationType"), + gen.FieldType("prsn_id", personIDTypeString), + gen.FieldType("rlt_spoiler", "bool"), + gen.FieldType("rlt_ended", "bool"), + gen.FieldType("rlt_vice_versa", "bool"), + )) + g.ApplyBasic(g.GenerateModelAs("chii_index_related", "IndexSubject", gen.FieldTrimPrefix("idx_rlt_"), gen.FieldType("idx_rlt_type", "uint8"), diff --git a/dal/dao/chii_crt_cast_index.gen.go b/dal/dao/chii_crt_cast_index.gen.go index 71ab5eb01..3f925247d 100644 --- a/dal/dao/chii_crt_cast_index.gen.go +++ b/dal/dao/chii_crt_cast_index.gen.go @@ -8,6 +8,7 @@ const TableNameCast = "chii_crt_cast_index" // Cast mapped from table type Cast struct { + RltType uint32 `gorm:"column:rlt_type;type:mediumint(8) unsigned;not null" json:""` CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` diff --git a/dal/dao/chii_person_relations.gen.go b/dal/dao/chii_person_relations.gen.go new file mode 100644 index 000000000..c5fd862cd --- /dev/null +++ b/dal/dao/chii_person_relations.gen.go @@ -0,0 +1,26 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package dao + +const TableNamePersonRelation = "chii_person_relations" + +// PersonRelation mapped from table +type PersonRelation struct { + ID uint32 `gorm:"column:rlt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + PersonType string `gorm:"column:prsn_type;type:enum('prsn','crt');not null" json:""` + PersonID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;not null" json:""` + RelatedPersonType string `gorm:"column:rlt_prsn_type;type:enum('prsn','crt');not null" json:""` + RelatedPersonID uint32 `gorm:"column:rlt_prsn_id;type:int(10) unsigned;not null" json:""` + RelationType uint32 `gorm:"column:rlt_type;type:int(10) unsigned;not null;comment:关联类型" json:""` // 关联类型 + Spoiler bool `gorm:"column:rlt_spoiler;type:tinyint(3) unsigned;not null" json:""` + Ended bool `gorm:"column:rlt_ended;type:tinyint(3) unsigned;not null" json:""` + ViceVersa bool `gorm:"column:rlt_vice_versa;type:tinyint(3) unsigned;not null" json:""` + Comment string `gorm:"column:rlt_comment;type:text;not null" json:""` +} + +// TableName PersonRelation's table name +func (*PersonRelation) TableName() string { + return TableNamePersonRelation +} diff --git a/dal/query/chii_crt_cast_index.gen.go b/dal/query/chii_crt_cast_index.gen.go index d39af2136..5ddf49802 100644 --- a/dal/query/chii_crt_cast_index.gen.go +++ b/dal/query/chii_crt_cast_index.gen.go @@ -27,6 +27,7 @@ func newCast(db *gorm.DB, opts ...gen.DOOption) cast { tableName := _cast.castDo.TableName() _cast.ALL = field.NewAsterisk(tableName) + _cast.RltType = field.NewUint32(tableName, "rlt_type") _cast.CharacterID = field.NewUint32(tableName, "crt_id") _cast.PersonID = field.NewUint32(tableName, "prsn_id") _cast.SubjectID = field.NewUint32(tableName, "subject_id") @@ -74,6 +75,7 @@ type cast struct { castDo castDo ALL field.Asterisk + RltType field.Uint32 CharacterID field.Uint32 PersonID field.Uint32 SubjectID field.Uint32 @@ -100,6 +102,7 @@ func (c cast) As(alias string) *cast { func (c *cast) updateTableName(table string) *cast { c.ALL = field.NewAsterisk(table) + c.RltType = field.NewUint32(table, "rlt_type") c.CharacterID = field.NewUint32(table, "crt_id") c.PersonID = field.NewUint32(table, "prsn_id") c.SubjectID = field.NewUint32(table, "subject_id") @@ -129,7 +132,8 @@ func (c *cast) GetFieldByName(fieldName string) (field.OrderExpr, bool) { } func (c *cast) fillFieldMap() { - c.fieldMap = make(map[string]field.Expr, 8) + c.fieldMap = make(map[string]field.Expr, 9) + c.fieldMap["rlt_type"] = c.RltType c.fieldMap["crt_id"] = c.CharacterID c.fieldMap["prsn_id"] = c.PersonID c.fieldMap["subject_id"] = c.SubjectID diff --git a/dal/query/chii_person_relations.gen.go b/dal/query/chii_person_relations.gen.go new file mode 100644 index 000000000..2108efe27 --- /dev/null +++ b/dal/query/chii_person_relations.gen.go @@ -0,0 +1,367 @@ +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. +// Code generated by gorm.io/gen. DO NOT EDIT. + +package query + +import ( + "context" + + "gorm.io/gorm" + "gorm.io/gorm/clause" + "gorm.io/gorm/schema" + + "gorm.io/gen" + "gorm.io/gen/field" + + "gorm.io/plugin/dbresolver" + + "github.com/bangumi/server/dal/dao" +) + +func newPersonRelation(db *gorm.DB, opts ...gen.DOOption) personRelation { + _personRelation := personRelation{} + + _personRelation.personRelationDo.UseDB(db, opts...) + _personRelation.personRelationDo.UseModel(&dao.PersonRelation{}) + + tableName := _personRelation.personRelationDo.TableName() + _personRelation.ALL = field.NewAsterisk(tableName) + _personRelation.ID = field.NewUint32(tableName, "rlt_id") + _personRelation.PersonType = field.NewString(tableName, "prsn_type") + _personRelation.PersonID = field.NewUint32(tableName, "prsn_id") + _personRelation.RelatedPersonType = field.NewString(tableName, "rlt_prsn_type") + _personRelation.RelatedPersonID = field.NewUint32(tableName, "rlt_prsn_id") + _personRelation.RelationType = field.NewUint32(tableName, "rlt_type") + _personRelation.Spoiler = field.NewBool(tableName, "rlt_spoiler") + _personRelation.Ended = field.NewBool(tableName, "rlt_ended") + _personRelation.ViceVersa = field.NewBool(tableName, "rlt_vice_versa") + _personRelation.Comment = field.NewString(tableName, "rlt_comment") + + _personRelation.fillFieldMap() + + return _personRelation +} + +type personRelation struct { + personRelationDo personRelationDo + + ALL field.Asterisk + ID field.Uint32 + PersonType field.String + PersonID field.Uint32 + RelatedPersonType field.String + RelatedPersonID field.Uint32 + RelationType field.Uint32 // 关联类型 + Spoiler field.Bool + Ended field.Bool + ViceVersa field.Bool + Comment field.String + + fieldMap map[string]field.Expr +} + +func (p personRelation) Table(newTableName string) *personRelation { + p.personRelationDo.UseTable(newTableName) + return p.updateTableName(newTableName) +} + +func (p personRelation) As(alias string) *personRelation { + p.personRelationDo.DO = *(p.personRelationDo.As(alias).(*gen.DO)) + return p.updateTableName(alias) +} + +func (p *personRelation) updateTableName(table string) *personRelation { + p.ALL = field.NewAsterisk(table) + p.ID = field.NewUint32(table, "rlt_id") + p.PersonType = field.NewString(table, "prsn_type") + p.PersonID = field.NewUint32(table, "prsn_id") + p.RelatedPersonType = field.NewString(table, "rlt_prsn_type") + p.RelatedPersonID = field.NewUint32(table, "rlt_prsn_id") + p.RelationType = field.NewUint32(table, "rlt_type") + p.Spoiler = field.NewBool(table, "rlt_spoiler") + p.Ended = field.NewBool(table, "rlt_ended") + p.ViceVersa = field.NewBool(table, "rlt_vice_versa") + p.Comment = field.NewString(table, "rlt_comment") + + p.fillFieldMap() + + return p +} + +func (p *personRelation) WithContext(ctx context.Context) *personRelationDo { + return p.personRelationDo.WithContext(ctx) +} + +func (p personRelation) TableName() string { return p.personRelationDo.TableName() } + +func (p personRelation) Alias() string { return p.personRelationDo.Alias() } + +func (p personRelation) Columns(cols ...field.Expr) gen.Columns { + return p.personRelationDo.Columns(cols...) +} + +func (p *personRelation) GetFieldByName(fieldName string) (field.OrderExpr, bool) { + _f, ok := p.fieldMap[fieldName] + if !ok || _f == nil { + return nil, false + } + _oe, ok := _f.(field.OrderExpr) + return _oe, ok +} + +func (p *personRelation) fillFieldMap() { + p.fieldMap = make(map[string]field.Expr, 10) + p.fieldMap["rlt_id"] = p.ID + p.fieldMap["prsn_type"] = p.PersonType + p.fieldMap["prsn_id"] = p.PersonID + p.fieldMap["rlt_prsn_type"] = p.RelatedPersonType + p.fieldMap["rlt_prsn_id"] = p.RelatedPersonID + p.fieldMap["rlt_type"] = p.RelationType + p.fieldMap["rlt_spoiler"] = p.Spoiler + p.fieldMap["rlt_ended"] = p.Ended + p.fieldMap["rlt_vice_versa"] = p.ViceVersa + p.fieldMap["rlt_comment"] = p.Comment +} + +func (p personRelation) clone(db *gorm.DB) personRelation { + p.personRelationDo.ReplaceConnPool(db.Statement.ConnPool) + return p +} + +func (p personRelation) replaceDB(db *gorm.DB) personRelation { + p.personRelationDo.ReplaceDB(db) + return p +} + +type personRelationDo struct{ gen.DO } + +func (p personRelationDo) Debug() *personRelationDo { + return p.withDO(p.DO.Debug()) +} + +func (p personRelationDo) WithContext(ctx context.Context) *personRelationDo { + return p.withDO(p.DO.WithContext(ctx)) +} + +func (p personRelationDo) ReadDB() *personRelationDo { + return p.Clauses(dbresolver.Read) +} + +func (p personRelationDo) WriteDB() *personRelationDo { + return p.Clauses(dbresolver.Write) +} + +func (p personRelationDo) Session(config *gorm.Session) *personRelationDo { + return p.withDO(p.DO.Session(config)) +} + +func (p personRelationDo) Clauses(conds ...clause.Expression) *personRelationDo { + return p.withDO(p.DO.Clauses(conds...)) +} + +func (p personRelationDo) Returning(value interface{}, columns ...string) *personRelationDo { + return p.withDO(p.DO.Returning(value, columns...)) +} + +func (p personRelationDo) Not(conds ...gen.Condition) *personRelationDo { + return p.withDO(p.DO.Not(conds...)) +} + +func (p personRelationDo) Or(conds ...gen.Condition) *personRelationDo { + return p.withDO(p.DO.Or(conds...)) +} + +func (p personRelationDo) Select(conds ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Select(conds...)) +} + +func (p personRelationDo) Where(conds ...gen.Condition) *personRelationDo { + return p.withDO(p.DO.Where(conds...)) +} + +func (p personRelationDo) Order(conds ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Order(conds...)) +} + +func (p personRelationDo) Distinct(cols ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Distinct(cols...)) +} + +func (p personRelationDo) Omit(cols ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Omit(cols...)) +} + +func (p personRelationDo) Join(table schema.Tabler, on ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Join(table, on...)) +} + +func (p personRelationDo) LeftJoin(table schema.Tabler, on ...field.Expr) *personRelationDo { + return p.withDO(p.DO.LeftJoin(table, on...)) +} + +func (p personRelationDo) RightJoin(table schema.Tabler, on ...field.Expr) *personRelationDo { + return p.withDO(p.DO.RightJoin(table, on...)) +} + +func (p personRelationDo) Group(cols ...field.Expr) *personRelationDo { + return p.withDO(p.DO.Group(cols...)) +} + +func (p personRelationDo) Having(conds ...gen.Condition) *personRelationDo { + return p.withDO(p.DO.Having(conds...)) +} + +func (p personRelationDo) Limit(limit int) *personRelationDo { + return p.withDO(p.DO.Limit(limit)) +} + +func (p personRelationDo) Offset(offset int) *personRelationDo { + return p.withDO(p.DO.Offset(offset)) +} + +func (p personRelationDo) Scopes(funcs ...func(gen.Dao) gen.Dao) *personRelationDo { + return p.withDO(p.DO.Scopes(funcs...)) +} + +func (p personRelationDo) Unscoped() *personRelationDo { + return p.withDO(p.DO.Unscoped()) +} + +func (p personRelationDo) Create(values ...*dao.PersonRelation) error { + if len(values) == 0 { + return nil + } + return p.DO.Create(values) +} + +func (p personRelationDo) CreateInBatches(values []*dao.PersonRelation, batchSize int) error { + return p.DO.CreateInBatches(values, batchSize) +} + +// Save : !!! underlying implementation is different with GORM +// The method is equivalent to executing the statement: db.Clauses(clause.OnConflict{UpdateAll: true}).Create(values) +func (p personRelationDo) Save(values ...*dao.PersonRelation) error { + if len(values) == 0 { + return nil + } + return p.DO.Save(values) +} + +func (p personRelationDo) First() (*dao.PersonRelation, error) { + if result, err := p.DO.First(); err != nil { + return nil, err + } else { + return result.(*dao.PersonRelation), nil + } +} + +func (p personRelationDo) Take() (*dao.PersonRelation, error) { + if result, err := p.DO.Take(); err != nil { + return nil, err + } else { + return result.(*dao.PersonRelation), nil + } +} + +func (p personRelationDo) Last() (*dao.PersonRelation, error) { + if result, err := p.DO.Last(); err != nil { + return nil, err + } else { + return result.(*dao.PersonRelation), nil + } +} + +func (p personRelationDo) Find() ([]*dao.PersonRelation, error) { + result, err := p.DO.Find() + return result.([]*dao.PersonRelation), err +} + +func (p personRelationDo) FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*dao.PersonRelation, err error) { + buf := make([]*dao.PersonRelation, 0, batchSize) + err = p.DO.FindInBatches(&buf, batchSize, func(tx gen.Dao, batch int) error { + defer func() { results = append(results, buf...) }() + return fc(tx, batch) + }) + return results, err +} + +func (p personRelationDo) FindInBatches(result *[]*dao.PersonRelation, batchSize int, fc func(tx gen.Dao, batch int) error) error { + return p.DO.FindInBatches(result, batchSize, fc) +} + +func (p personRelationDo) Attrs(attrs ...field.AssignExpr) *personRelationDo { + return p.withDO(p.DO.Attrs(attrs...)) +} + +func (p personRelationDo) Assign(attrs ...field.AssignExpr) *personRelationDo { + return p.withDO(p.DO.Assign(attrs...)) +} + +func (p personRelationDo) Joins(fields ...field.RelationField) *personRelationDo { + for _, _f := range fields { + p = *p.withDO(p.DO.Joins(_f)) + } + return &p +} + +func (p personRelationDo) Preload(fields ...field.RelationField) *personRelationDo { + for _, _f := range fields { + p = *p.withDO(p.DO.Preload(_f)) + } + return &p +} + +func (p personRelationDo) FirstOrInit() (*dao.PersonRelation, error) { + if result, err := p.DO.FirstOrInit(); err != nil { + return nil, err + } else { + return result.(*dao.PersonRelation), nil + } +} + +func (p personRelationDo) FirstOrCreate() (*dao.PersonRelation, error) { + if result, err := p.DO.FirstOrCreate(); err != nil { + return nil, err + } else { + return result.(*dao.PersonRelation), nil + } +} + +func (p personRelationDo) FindByPage(offset int, limit int) (result []*dao.PersonRelation, count int64, err error) { + result, err = p.Offset(offset).Limit(limit).Find() + if err != nil { + return + } + + if size := len(result); 0 < limit && 0 < size && size < limit { + count = int64(size + offset) + return + } + + count, err = p.Offset(-1).Limit(-1).Count() + return +} + +func (p personRelationDo) ScanByPage(result interface{}, offset int, limit int) (count int64, err error) { + count, err = p.Count() + if err != nil { + return + } + + err = p.Offset(offset).Limit(limit).Scan(result) + return +} + +func (p personRelationDo) Scan(result interface{}) (err error) { + return p.DO.Scan(result) +} + +func (p personRelationDo) Delete(models ...*dao.PersonRelation) (result gen.ResultInfo, err error) { + return p.DO.Delete(models) +} + +func (p *personRelationDo) withDO(do gen.Dao) *personRelationDo { + p.DO = *do.(*gen.DO) + return p +} diff --git a/dal/query/gen.go b/dal/query/gen.go index d24e02f71..191d4805a 100644 --- a/dal/query/gen.go +++ b/dal/query/gen.go @@ -34,6 +34,7 @@ func Use(db *gorm.DB, opts ...gen.DOOption) *Query { Person: newPerson(db, opts...), PersonCollect: newPersonCollect(db, opts...), PersonField: newPersonField(db, opts...), + PersonRelation: newPersonRelation(db, opts...), PersonSubjects: newPersonSubjects(db, opts...), PrivateMessage: newPrivateMessage(db, opts...), RevisionHistory: newRevisionHistory(db, opts...), @@ -69,6 +70,7 @@ type Query struct { Person person PersonCollect personCollect PersonField personField + PersonRelation personRelation PersonSubjects personSubjects PrivateMessage privateMessage RevisionHistory revisionHistory @@ -105,6 +107,7 @@ func (q *Query) clone(db *gorm.DB) *Query { Person: q.Person.clone(db), PersonCollect: q.PersonCollect.clone(db), PersonField: q.PersonField.clone(db), + PersonRelation: q.PersonRelation.clone(db), PersonSubjects: q.PersonSubjects.clone(db), PrivateMessage: q.PrivateMessage.clone(db), RevisionHistory: q.RevisionHistory.clone(db), @@ -148,6 +151,7 @@ func (q *Query) ReplaceDB(db *gorm.DB) *Query { Person: q.Person.replaceDB(db), PersonCollect: q.PersonCollect.replaceDB(db), PersonField: q.PersonField.replaceDB(db), + PersonRelation: q.PersonRelation.replaceDB(db), PersonSubjects: q.PersonSubjects.replaceDB(db), PrivateMessage: q.PrivateMessage.replaceDB(db), RevisionHistory: q.RevisionHistory.replaceDB(db), @@ -181,6 +185,7 @@ type queryCtx struct { Person *personDo PersonCollect *personCollectDo PersonField *personFieldDo + PersonRelation *personRelationDo PersonSubjects *personSubjectsDo PrivateMessage *privateMessageDo RevisionHistory *revisionHistoryDo @@ -214,6 +219,7 @@ func (q *Query) WithContext(ctx context.Context) *queryCtx { Person: q.Person.WithContext(ctx), PersonCollect: q.PersonCollect.WithContext(ctx), PersonField: q.PersonField.WithContext(ctx), + PersonRelation: q.PersonRelation.WithContext(ctx), PersonSubjects: q.PersonSubjects.WithContext(ctx), PrivateMessage: q.PrivateMessage.WithContext(ctx), RevisionHistory: q.RevisionHistory.WithContext(ctx), diff --git a/internal/subject/mysql_repository_test.go b/internal/subject/mysql_repository_test.go index 93c531595..d8138c6af 100644 --- a/internal/subject/mysql_repository_test.go +++ b/internal/subject/mysql_repository_test.go @@ -73,7 +73,7 @@ func TestBrowse(t *testing.T) { } s, err := repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 17, len(s)) + require.Equal(t, 30, len(s)) filter = subject.BrowseFilter{ Type: 1, @@ -89,7 +89,7 @@ func TestBrowse(t *testing.T) { } s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 2, len(s)) + require.Equal(t, 5, len(s)) filter = subject.BrowseFilter{ Type: 3, From 4be2ff0d7bae79c14d8deb5582a2a1d4a41332d0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Tue, 3 Mar 2026 23:44:19 +0800 Subject: [PATCH 829/888] ci: configure mergify to auto-merge renovate PRs (#1026) --- .github/mergify.yml | 17 +++++++++++++++++ .github/renovate.json | 2 ++ 2 files changed, 19 insertions(+) diff --git a/.github/mergify.yml b/.github/mergify.yml index a864b6efc..fe45a03a7 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -6,3 +6,20 @@ pull_request_rules: label: toggle: - conflict + + - name: Automatic merge on approval + conditions: + - "#commits-behind=0" + - or: + - "#approved-reviews-by>=1" + - label=ci:auto-merge + - not: + and: + - "head*=renovate/lockfile-maintenance-*" + - "created-at>24h ago" + - base=master + - check-success=docker + - check-success=test + actions: + merge: + method: squash diff --git a/.github/renovate.json b/.github/renovate.json index 100ef1178..8729455d9 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,5 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "labels": ["ci:auto-merge", "dependencies"], + "prConcurrentLimit": 3, "extends": [ "local>Trim21/renovate-config", "local>Trim21/renovate-config:go", From 1199ec0ec18092b06d0e407b514ccec96cb8543a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:59:58 +0000 Subject: [PATCH 830/888] build(deps): update module github.com/labstack/echo/v4 to v4.15.1 (#1029) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5761bd9e4..9cc2c3e1a 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v4 v4.15.0 + github.com/labstack/echo/v4 v4.15.1 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.36.0 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index 4292520a2..2b20340c4 100644 --- a/go.sum +++ b/go.sum @@ -140,8 +140,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/labstack/echo/v4 v4.15.0 h1:hoRTKWcnR5STXZFe9BmYun9AMTNeSbjHi2vtDuADJ24= -github.com/labstack/echo/v4 v4.15.0/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= +github.com/labstack/echo/v4 v4.15.1 h1:S9keusg26gZpjMmPqB5hOEvNKnmd1lNmcHrbbH2lnFs= +github.com/labstack/echo/v4 v4.15.1/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= From ec21dc637deaedf1acf654e4f308adf56be2d7eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:04:18 +0000 Subject: [PATCH 831/888] build(deps): update aws-sdk-go-v2 monorepo (#1027) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 9cc2c3e1a..f97a7b522 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.41.1 - github.com/aws/aws-sdk-go-v2/credentials v1.19.7 - github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 + github.com/aws/aws-sdk-go-v2 v1.41.2 + github.com/aws/aws-sdk-go-v2/credentials v1.19.10 + github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.1 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 // indirect - github.com/aws/smithy-go v1.24.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18 // indirect + github.com/aws/smithy-go v1.24.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect diff --git a/go.sum b/go.sum index 2b20340c4..441385c85 100644 --- a/go.sum +++ b/go.sum @@ -8,30 +8,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= -github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4= -github.com/aws/aws-sdk-go-v2/credentials v1.19.7 h1:tHK47VqqtJxOymRrNtUXN5SP/zUTvZKeLx4tH6PGQc8= -github.com/aws/aws-sdk-go-v2/credentials v1.19.7/go.mod h1:qOZk8sPDrxhf+4Wf4oT2urYJrYt3RejHSzgAquYeppw= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17 h1:JqcdRG//czea7Ppjb+g/n4o8i/R50aTBHkA7vu0lK+k= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17/go.mod h1:CO+WeGmIdj/MlPel2KwID9Gt7CNq4M65HUfBW97liM0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8 h1:Z5EiPIzXKewUQK0QTMkutjiaPVeVYXX7KIqhXu/0fXs= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.8/go.mod h1:FsTpJtvC4U1fyDXk7c71XoDv3HlRm8V3NiYLeYLh5YE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 h1:RuNSMoozM8oXlgLG/n6WLaFGoea7/CddrCfIiSA+xdY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17/go.mod h1:F2xxQ9TZz5gDWsclCtPQscGpP0VUOc8RqgFM3vDENmU= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 h1:bGeHBsGZx0Dvu/eJC0Lh9adJa3M1xREcndxLNZlve2U= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17/go.mod h1:dcW24lbU0CzHusTE8LLHhRLI42ejmINN8Lcr22bwh/g= -github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 h1:oeu8VPlOre74lBA/PMhxa5vewaMIMmILM+RraSyB8KA= -github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0/go.mod h1:5jggDlZ2CLQhwJBiZJb4vfk4f0GxWdEDruWKEJ1xOdo= -github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= -github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aws/aws-sdk-go-v2 v1.41.2 h1:LuT2rzqNQsauaGkPK/7813XxcZ3o3yePY0Iy891T2ls= +github.com/aws/aws-sdk-go-v2 v1.41.2/go.mod h1:IvvlAZQXvTXznUPfRVfryiG1fbzE2NGK6m9u39YQ+S4= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5 h1:zWFmPmgw4sveAYi1mRqG+E/g0461cJ5M4bJ8/nc6d3Q= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5/go.mod h1:nVUlMLVV8ycXSb7mSkcNu9e3v/1TJq2RTlrPwhYWr5c= +github.com/aws/aws-sdk-go-v2/credentials v1.19.10 h1:EEhmEUFCE1Yhl7vDhNOI5OCL/iKMdkkYFTRpZXNw7m8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.10/go.mod h1:RnnlFCAlxQCkN2Q379B67USkBMu1PipEEiibzYN5UTE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 h1:F43zk1vemYIqPAwhjTjYIz0irU2EY7sOb/F5eJ3HuyM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18/go.mod h1:w1jdlZXrGKaJcNoL+Nnrj+k5wlpGXqnNrKoP22HvAug= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 h1:xCeWVjj0ki0l3nruoyP2slHsGArMxeiiaoPN5QZH6YQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18/go.mod h1:r/eLGuGCBw6l36ZRWiw6PaZwPXb6YOj+i/7MizNl5/k= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18 h1:eZioDaZGJ0tMM4gzmkNIO2aAoQd+je7Ug7TkvAzlmkU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18/go.mod h1:CCXwUKAJdoWr6/NcxZ+zsiPr6oH/Q5aTooRGYieAyj4= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 h1:CeY9LUdur+Dxoeldqoun6y4WtJ3RQtzk0JMP2gfUay0= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5/go.mod h1:AZLZf2fMaahW5s/wMRciu1sYbdsikT/UHwbUjOdEVTc= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10 h1:fJvQ5mIBVfKtiyx0AHY6HeWcRX5LGANLpq8SVR+Uazs= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10/go.mod h1:Kzm5e6OmNH8VMkgK9t+ry5jEih4Y8whqs+1hrkxim1I= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 h1:LTRCYFlnnKFlKsyIQxKhJuDuA3ZkrDQMRYm6rXiHlLY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18/go.mod h1:XhwkgGG6bHSd00nO/mexWTcTjgd6PjuvWQMqSn2UaEk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18 h1:/A/xDuZAVD2BpsS2fftFRo/NoEKQJ8YTnJDEHBy2Gtg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18/go.mod h1:hWe9b4f+djUQGmyiGEeOnZv69dtMSgpDRIvNMvuvzvY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2 h1:M1A9AjcFwlxTLuf0Faj88L8Iqw0n/AJHjpZTQzMMsSc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2/go.mod h1:KsdTV6Q9WKUZm2mNJnUFmIoXfZux91M3sr/a4REX8e0= +github.com/aws/smithy-go v1.24.1 h1:VbyeNfmYkWoxMVpGUAbQumkODcYmfMRfZ8yQiH30SK0= +github.com/aws/smithy-go v1.24.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From f896f73ab165b83cc20e45ee3c38f9c43d7e586f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:09:48 +0000 Subject: [PATCH 832/888] build(deps): update module github.com/go-resty/resty/v2 to v2.17.2 (#1028) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f97a7b522..8adfcf904 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.30.1 - github.com/go-resty/resty/v2 v2.17.1 + github.com/go-resty/resty/v2 v2.17.2 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 diff --git a/go.sum b/go.sum index 441385c85..a5705db85 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w= github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM= -github.com/go-resty/resty/v2 v2.17.1 h1:x3aMpHK1YM9e4va/TMDRlusDDoZiQ+ViDu/WpA6xTM4= -github.com/go-resty/resty/v2 v2.17.1/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= +github.com/go-resty/resty/v2 v2.17.2 h1:FQW5oHYcIlkCNrMD2lloGScxcHJ0gkjshV3qcQAyHQk= +github.com/go-resty/resty/v2 v2.17.2/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= From 411a6317e1b78e38fd6fe1b5db94564bc4c68117 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 5 Mar 2026 00:20:20 +0800 Subject: [PATCH 833/888] fix(subject): exclude redirected entries from /v0/subjects (#1030) --- internal/subject/mysql_repository.go | 4 +-- internal/subject/mysql_repository_test.go | 35 ++++++++++++++++------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/internal/subject/mysql_repository.go b/internal/subject/mysql_repository.go index 0c047831c..a6858deb0 100644 --- a/internal/subject/mysql_repository.go +++ b/internal/subject/mysql_repository.go @@ -233,7 +233,7 @@ func (r mysqlRepo) Count( filter BrowseFilter) (int64, error) { q := r.q.Subject.WithContext(ctx).Joins(r.q.Subject.Fields).Join( r.q.SubjectField, r.q.Subject.ID.EqCol(r.q.SubjectField.Sid), - ).Where(r.q.Subject.TypeID.Eq(filter.Type)) + ).Where(r.q.Subject.TypeID.Eq(filter.Type), r.q.SubjectField.Redirect.Eq(0)) if filter.NSFW.Set { q = q.Where(r.q.Subject.Nsfw.Is(filter.NSFW.Value)) } @@ -270,7 +270,7 @@ func (r mysqlRepo) Browse( ) ([]model.Subject, error) { q := r.q.Subject.WithContext(ctx).Joins(r.q.Subject.Fields).Join( r.q.SubjectField, r.q.Subject.ID.EqCol(r.q.SubjectField.Sid), - ).Where(r.q.Subject.TypeID.Eq(filter.Type)) + ).Where(r.q.Subject.TypeID.Eq(filter.Type), r.q.SubjectField.Redirect.Eq(0)) if filter.NSFW.Set { q = q.Where(r.q.Subject.Nsfw.Is(filter.NSFW.Value)) } diff --git a/internal/subject/mysql_repository_test.go b/internal/subject/mysql_repository_test.go index d8138c6af..8233fd48d 100644 --- a/internal/subject/mysql_repository_test.go +++ b/internal/subject/mysql_repository_test.go @@ -74,6 +74,9 @@ func TestBrowse(t *testing.T) { s, err := repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) require.Equal(t, 30, len(s)) + for _, item := range s { + require.Zero(t, item.Redirect) + } filter = subject.BrowseFilter{ Type: 1, @@ -82,6 +85,9 @@ func TestBrowse(t *testing.T) { s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) require.Equal(t, 2, len(s)) + for _, item := range s { + require.Zero(t, item.Redirect) + } filter = subject.BrowseFilter{ Type: 2, @@ -89,7 +95,10 @@ func TestBrowse(t *testing.T) { } s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 5, len(s)) + require.Equal(t, 4, len(s)) + for _, item := range s { + require.Zero(t, item.Redirect) + } filter = subject.BrowseFilter{ Type: 3, @@ -97,15 +106,18 @@ func TestBrowse(t *testing.T) { } s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) - require.Equal(t, 8, len(s)) - require.Equal(t, model.SubjectID(20), s[0].ID) - require.Equal(t, model.SubjectID(17), s[1].ID) - require.Equal(t, model.SubjectID(16), s[2].ID) - require.Equal(t, model.SubjectID(15), s[3].ID) - require.Equal(t, model.SubjectID(406604), s[4].ID) - require.Equal(t, model.SubjectID(19), s[5].ID) - require.Equal(t, model.SubjectID(315957), s[6].ID) - require.Equal(t, model.SubjectID(18), s[7].ID) + require.Equal(t, 7, len(s)) + lastRank := uint32(0) + for i, item := range s { + require.NotZero(t, item.Rating.Rank) + if i > 0 { + require.GreaterOrEqual(t, item.Rating.Rank, lastRank) + } + lastRank = item.Rating.Rank + } + for _, item := range s { + require.Zero(t, item.Redirect) + } filter = subject.BrowseFilter{ Type: 4, @@ -115,6 +127,9 @@ func TestBrowse(t *testing.T) { s, err = repo.Browse(context.Background(), filter, 30, 0) require.NoError(t, err) require.Equal(t, 3, len(s)) + for _, item := range s { + require.Zero(t, item.Redirect) + } require.Equal(t, model.SubjectID(7), s[0].ID) require.Equal(t, model.SubjectID(6), s[1].ID) require.Equal(t, model.SubjectID(13), s[2].ID) From 88e22788e244adb7181556e3ddcdc5459e532b31 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 19 Mar 2026 00:12:14 +0800 Subject: [PATCH 834/888] fix: unescape person and character wiki fields in archive (#1031) --- cmd/archive/main.go | 126 ++++++++++-------- cmd/archive/main_test.go | 78 +++++++++++ cmd/gen/gorm/main.go | 4 + dal/dao/chii_characters.gen.go | 38 +++--- dal/dao/chii_persons.gen.go | 52 ++++---- internal/character/mysql_repository.go | 4 +- .../mysql_repository_internal_test.go | 35 +++++ internal/person/mysql_repository.go | 4 +- .../person/mysql_repository_internal_test.go | 35 +++++ 9 files changed, 277 insertions(+), 99 deletions(-) create mode 100644 cmd/archive/main_test.go create mode 100644 internal/character/mysql_repository_internal_test.go create mode 100644 internal/person/mysql_repository_internal_test.go diff --git a/cmd/archive/main.go b/cmd/archive/main.go index f71770f60..04049bcbd 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -269,45 +269,55 @@ func exportSubjects(q *query.Query, w io.Writer) { metaTags = append(metaTags, v) } - encode(w, Subject{ - ID: subject.ID, - Type: subject.TypeID, - Name: string(subject.Name), - NameCN: string(subject.NameCN), - Infobox: string(subject.Infobox), - Platform: subject.Platform, - Summary: subject.Summary, - Nsfw: subject.Nsfw, - Rank: subject.Fields.Rank, - Tags: encodedTags, - MetaTags: metaTags, - Score: math.Round(score*10) / 10, - ScoreDetails: Score{ - Field1: subject.Fields.Rate1, - Field2: subject.Fields.Rate2, - Field3: subject.Fields.Rate3, - Field4: subject.Fields.Rate4, - Field5: subject.Fields.Rate5, - Field6: subject.Fields.Rate6, - Field7: subject.Fields.Rate7, - Field8: subject.Fields.Rate8, - Field9: subject.Fields.Rate9, - Field10: subject.Fields.Rate10, - }, - Date: encodedDate, - Series: subject.Series, - Favorite: Favorite{ - Wish: subject.Wish, - Done: subject.Done, - Doing: subject.Doing, - OnHold: subject.OnHold, - Dropped: subject.Dropped, - }, - }) + encode(w, buildSubjectArchiveRecord(subject, encodedTags, metaTags, encodedDate, score)) } } } +func buildSubjectArchiveRecord( + subject *dao.Subject, + tags []Tag, + metaTags []string, + encodedDate string, + score float64, +) Subject { + return Subject{ + ID: subject.ID, + Type: subject.TypeID, + Name: string(subject.Name), + NameCN: string(subject.NameCN), + Infobox: string(subject.Infobox), + Platform: subject.Platform, + Summary: subject.Summary, + Nsfw: subject.Nsfw, + Rank: subject.Fields.Rank, + Tags: tags, + MetaTags: metaTags, + Score: math.Round(score*10) / 10, + ScoreDetails: Score{ + Field1: subject.Fields.Rate1, + Field2: subject.Fields.Rate2, + Field3: subject.Fields.Rate3, + Field4: subject.Fields.Rate4, + Field5: subject.Fields.Rate5, + Field6: subject.Fields.Rate6, + Field7: subject.Fields.Rate7, + Field8: subject.Fields.Rate8, + Field9: subject.Fields.Rate9, + Field10: subject.Fields.Rate10, + }, + Date: encodedDate, + Series: subject.Series, + Favorite: Favorite{ + Wish: subject.Wish, + Done: subject.Done, + Doing: subject.Doing, + OnHold: subject.OnHold, + Dropped: subject.Dropped, + }, + } +} + type Person struct { ID model.PersonID `json:"id"` Name string `json:"name"` @@ -328,20 +338,24 @@ func exportPersons(q *query.Query, w io.Writer) { } for _, p := range persons { - encode(w, Person{ - ID: p.ID, - Name: p.Name, - Type: p.Type, - Career: careers(p), - Infobox: p.Infobox, - Summary: p.Summary, - Comments: p.Comment, - Collects: p.Collects, - }) + encode(w, buildPersonArchiveRecord(p)) } } } +func buildPersonArchiveRecord(p *dao.Person) Person { + return Person{ + ID: p.ID, + Name: string(p.Name), + Type: p.Type, + Career: careers(p), + Infobox: string(p.Infobox), + Summary: p.Summary, + Comments: p.Comment, + Collects: p.Collects, + } +} + func careers(p *dao.Person) []string { s := make([]string, 0, 7) @@ -395,19 +409,23 @@ func exportCharacters(q *query.Query, w io.Writer) { } for _, c := range characters { - encode(w, Character{ - ID: c.ID, - Name: c.Name, - Role: c.Role, - Infobox: c.Infobox, - Summary: c.Summary, - Comments: c.Comment, - Collects: c.Collects, - }) + encode(w, buildCharacterArchiveRecord(c)) } } } +func buildCharacterArchiveRecord(c *dao.Character) Character { + return Character{ + ID: c.ID, + Name: string(c.Name), + Role: c.Role, + Infobox: string(c.Infobox), + Summary: c.Summary, + Comments: c.Comment, + Collects: c.Collects, + } +} + type Episode struct { ID model.EpisodeID `json:"id"` Name string `json:"name"` diff --git a/cmd/archive/main_test.go b/cmd/archive/main_test.go new file mode 100644 index 000000000..d50a8334c --- /dev/null +++ b/cmd/archive/main_test.go @@ -0,0 +1,78 @@ +//nolint:testpackage +package archive + +import ( + "bytes" + "encoding/json" + "html" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/bangumi/server/dal/dao" + "github.com/bangumi/server/dal/utiltype" +) + +func TestBuildArchiveRecords_UnescapesHTMLStrings(t *testing.T) { + t.Parallel() + + wikiValue := `[nickname|"First Hassan"] Tom & Jerry 'quote'` + nameValue := `Tom & Jerry ` + nameCNValue := `6' 1"` + + subject := buildSubjectArchiveRecord(&dao.Subject{ + Name: mustScanHTMLString(t, html.EscapeString(nameValue)), + NameCN: mustScanHTMLString(t, html.EscapeString(nameCNValue)), + Infobox: mustScanHTMLString(t, html.EscapeString(wikiValue)), + }, nil, nil, "", 0) + person := buildPersonArchiveRecord(&dao.Person{ + Name: mustScanHTMLString(t, html.EscapeString(nameValue)), + Infobox: mustScanHTMLString(t, html.EscapeString(wikiValue)), + }) + character := buildCharacterArchiveRecord(&dao.Character{ + Name: mustScanHTMLString(t, html.EscapeString(nameValue)), + Infobox: mustScanHTMLString(t, html.EscapeString(wikiValue)), + }) + + require.Equal(t, nameValue, subject.Name) + require.Equal(t, nameCNValue, subject.NameCN) + require.Equal(t, wikiValue, subject.Infobox) + require.Equal(t, nameValue, person.Name) + require.Equal(t, wikiValue, person.Infobox) + require.Equal(t, nameValue, character.Name) + require.Equal(t, wikiValue, character.Infobox) + + assertJSONRoundTrip(t, subject, func(decoded Subject) { + require.Equal(t, nameValue, decoded.Name) + require.Equal(t, nameCNValue, decoded.NameCN) + require.Equal(t, wikiValue, decoded.Infobox) + }) + assertJSONRoundTrip(t, person, func(decoded Person) { + require.Equal(t, nameValue, decoded.Name) + require.Equal(t, wikiValue, decoded.Infobox) + }) + assertJSONRoundTrip(t, character, func(decoded Character) { + require.Equal(t, nameValue, decoded.Name) + require.Equal(t, wikiValue, decoded.Infobox) + }) +} + +func assertJSONRoundTrip[T any](t *testing.T, value T, assertFn func(decoded T)) { + t.Helper() + + var buf bytes.Buffer + encode(&buf, value) + + var decoded T + require.NoError(t, json.Unmarshal(buf.Bytes(), &decoded)) + assertFn(decoded) +} + +func mustScanHTMLString(t *testing.T, value string) utiltype.HTMLEscapedString { + t.Helper() + + var result utiltype.HTMLEscapedString + require.NoError(t, (&result).Scan(value)) + + return result +} diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index bf9922dd6..de6d213f3 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -293,6 +293,8 @@ func main() { DeprecatedFiled("prsn_img_anidb"), DeprecatedFiled("prsn_anidb_id"), gen.FieldType("prsn_id", personIDTypeString), + gen.FieldType("prsn_name", "utiltype.HTMLEscapedString"), + gen.FieldType("prsn_infobox", "utiltype.HTMLEscapedString"), gen.FieldType("prsn_illustrator", "bool"), gen.FieldType("prsn_writer", "bool"), gen.FieldType("prsn_redirect", personIDTypeString), @@ -307,6 +309,8 @@ func main() { DeprecatedFiled("crt_img_anidb"), DeprecatedFiled("crt_anidb_id"), gen.FieldType("crt_id", characterIDTypeString), + gen.FieldType("crt_name", "utiltype.HTMLEscapedString"), + gen.FieldType("crt_infobox", "utiltype.HTMLEscapedString"), gen.FieldType("crt_redirect", characterIDTypeString), gen.FieldRelate(field.HasOne, "Fields", modelPersonField, &field.RelateConfig{ GORMTag: field.GormTag{"foreignKey": []string{"crt_id"}, "polymorphic": []string{"Owner"}, "polymorphicValue": []string{"crt"}}, diff --git a/dal/dao/chii_characters.gen.go b/dal/dao/chii_characters.gen.go index e7afdee98..4fefe3eef 100644 --- a/dal/dao/chii_characters.gen.go +++ b/dal/dao/chii_characters.gen.go @@ -4,27 +4,31 @@ package dao +import ( + "github.com/bangumi/server/dal/utiltype" +) + const TableNameCharacter = "chii_characters" // Character mapped from table type Character struct { - ID uint32 `gorm:"column:crt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` - Name string `gorm:"column:crt_name;type:varchar(255);not null" json:""` - Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null;comment:角色,机体,组织。。" json:""` // 角色,机体,组织。。 - Infobox string `gorm:"column:crt_infobox;type:mediumtext;not null" json:""` - Summary string `gorm:"column:crt_summary;type:mediumtext;not null" json:""` - Img string `gorm:"column:crt_img;type:varchar(255);not null" json:""` - Comment uint32 `gorm:"column:crt_comment;type:mediumint(9) unsigned;not null" json:""` - Collects uint32 `gorm:"column:crt_collects;type:mediumint(8) unsigned;not null" json:""` - Dateline uint32 `gorm:"column:crt_dateline;type:int(10) unsigned;not null" json:""` - Lastpost uint32 `gorm:"column:crt_lastpost;type:int(11) unsigned;not null" json:""` - Lock int8 `gorm:"column:crt_lock;type:tinyint(4);not null" json:""` - ImgAnidb string `gorm:"column:crt_img_anidb;type:varchar(255);not null" json:""` // Deprecated - AnidbID uint32 `gorm:"column:crt_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated - Ban uint8 `gorm:"column:crt_ban;type:tinyint(3) unsigned;not null" json:""` - Redirect uint32 `gorm:"column:crt_redirect;type:int(10) unsigned;not null" json:""` - Nsfw bool `gorm:"column:crt_nsfw;type:tinyint(1) unsigned;not null" json:""` - Fields PersonField `gorm:"foreignKey:crt_id;polymorphic:Owner;polymorphicValue:crt" json:"fields"` + ID uint32 `gorm:"column:crt_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name utiltype.HTMLEscapedString `gorm:"column:crt_name;type:varchar(255);not null" json:""` + Role uint8 `gorm:"column:crt_role;type:tinyint(4) unsigned;not null;comment:角色,机体,组织。。" json:""` // 角色,机体,组织。。 + Infobox utiltype.HTMLEscapedString `gorm:"column:crt_infobox;type:mediumtext;not null" json:""` + Summary string `gorm:"column:crt_summary;type:mediumtext;not null" json:""` + Img string `gorm:"column:crt_img;type:varchar(255);not null" json:""` + Comment uint32 `gorm:"column:crt_comment;type:mediumint(9) unsigned;not null" json:""` + Collects uint32 `gorm:"column:crt_collects;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:crt_dateline;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:crt_lastpost;type:int(11) unsigned;not null" json:""` + Lock int8 `gorm:"column:crt_lock;type:tinyint(4);not null" json:""` + ImgAnidb string `gorm:"column:crt_img_anidb;type:varchar(255);not null" json:""` // Deprecated + AnidbID uint32 `gorm:"column:crt_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated + Ban uint8 `gorm:"column:crt_ban;type:tinyint(3) unsigned;not null" json:""` + Redirect uint32 `gorm:"column:crt_redirect;type:int(10) unsigned;not null" json:""` + Nsfw bool `gorm:"column:crt_nsfw;type:tinyint(1) unsigned;not null" json:""` + Fields PersonField `gorm:"foreignKey:crt_id;polymorphic:Owner;polymorphicValue:crt" json:"fields"` } // TableName Character's table name diff --git a/dal/dao/chii_persons.gen.go b/dal/dao/chii_persons.gen.go index 409e3dbcb..3244bf5f8 100644 --- a/dal/dao/chii_persons.gen.go +++ b/dal/dao/chii_persons.gen.go @@ -4,34 +4,38 @@ package dao +import ( + "github.com/bangumi/server/dal/utiltype" +) + const TableNamePerson = "chii_persons" // Person (现实)人物表 type Person struct { - ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` - Name string `gorm:"column:prsn_name;type:varchar(255);not null" json:""` - Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null;comment:个人,公司,组合" json:""` // 个人,公司,组合 - Infobox string `gorm:"column:prsn_infobox;type:mediumtext;not null" json:""` - Producer bool `gorm:"column:prsn_producer;type:tinyint(1);not null" json:""` - Mangaka bool `gorm:"column:prsn_mangaka;type:tinyint(1);not null" json:""` - Artist bool `gorm:"column:prsn_artist;type:tinyint(1);not null" json:""` - Seiyu bool `gorm:"column:prsn_seiyu;type:tinyint(1);not null" json:""` - Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null;comment:作家" json:""` // 作家 - Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null;comment:绘师" json:""` // 绘师 - Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null;comment:演员" json:""` // 演员 - Summary string `gorm:"column:prsn_summary;type:mediumtext;not null" json:""` - Img string `gorm:"column:prsn_img;type:varchar(255);not null" json:""` - ImgAnidb string `gorm:"column:prsn_img_anidb;type:varchar(255);not null" json:""` // Deprecated - Comment uint32 `gorm:"column:prsn_comment;type:mediumint(9) unsigned;not null" json:""` - Collects uint32 `gorm:"column:prsn_collects;type:mediumint(8) unsigned;not null" json:""` - Dateline uint32 `gorm:"column:prsn_dateline;type:int(10) unsigned;not null" json:""` - Lastpost uint32 `gorm:"column:prsn_lastpost;type:int(11) unsigned;not null" json:""` - Lock int8 `gorm:"column:prsn_lock;type:tinyint(4);not null" json:""` - AnidbID uint32 `gorm:"column:prsn_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated - Ban uint8 `gorm:"column:prsn_ban;type:tinyint(3) unsigned;not null" json:""` - Redirect uint32 `gorm:"column:prsn_redirect;type:int(10) unsigned;not null" json:""` - Nsfw bool `gorm:"column:prsn_nsfw;type:tinyint(1) unsigned;not null" json:""` - Fields PersonField `gorm:"foreignKey:prsn_id;polymorphic:Owner;polymorphicValue:prsn" json:"fields"` + ID uint32 `gorm:"column:prsn_id;type:mediumint(8) unsigned;primaryKey;autoIncrement:true" json:""` + Name utiltype.HTMLEscapedString `gorm:"column:prsn_name;type:varchar(255);not null" json:""` + Type uint8 `gorm:"column:prsn_type;type:tinyint(4) unsigned;not null;comment:个人,公司,组合" json:""` // 个人,公司,组合 + Infobox utiltype.HTMLEscapedString `gorm:"column:prsn_infobox;type:mediumtext;not null" json:""` + Producer bool `gorm:"column:prsn_producer;type:tinyint(1);not null" json:""` + Mangaka bool `gorm:"column:prsn_mangaka;type:tinyint(1);not null" json:""` + Artist bool `gorm:"column:prsn_artist;type:tinyint(1);not null" json:""` + Seiyu bool `gorm:"column:prsn_seiyu;type:tinyint(1);not null" json:""` + Writer bool `gorm:"column:prsn_writer;type:tinyint(4);not null;comment:作家" json:""` // 作家 + Illustrator bool `gorm:"column:prsn_illustrator;type:tinyint(4);not null;comment:绘师" json:""` // 绘师 + Actor bool `gorm:"column:prsn_actor;type:tinyint(1);not null;comment:演员" json:""` // 演员 + Summary string `gorm:"column:prsn_summary;type:mediumtext;not null" json:""` + Img string `gorm:"column:prsn_img;type:varchar(255);not null" json:""` + ImgAnidb string `gorm:"column:prsn_img_anidb;type:varchar(255);not null" json:""` // Deprecated + Comment uint32 `gorm:"column:prsn_comment;type:mediumint(9) unsigned;not null" json:""` + Collects uint32 `gorm:"column:prsn_collects;type:mediumint(8) unsigned;not null" json:""` + Dateline uint32 `gorm:"column:prsn_dateline;type:int(10) unsigned;not null" json:""` + Lastpost uint32 `gorm:"column:prsn_lastpost;type:int(11) unsigned;not null" json:""` + Lock int8 `gorm:"column:prsn_lock;type:tinyint(4);not null" json:""` + AnidbID uint32 `gorm:"column:prsn_anidb_id;type:mediumint(8) unsigned;not null" json:""` // Deprecated + Ban uint8 `gorm:"column:prsn_ban;type:tinyint(3) unsigned;not null" json:""` + Redirect uint32 `gorm:"column:prsn_redirect;type:int(10) unsigned;not null" json:""` + Nsfw bool `gorm:"column:prsn_nsfw;type:tinyint(1) unsigned;not null" json:""` + Fields PersonField `gorm:"foreignKey:prsn_id;polymorphic:Owner;polymorphicValue:prsn" json:"fields"` } // TableName Person's table name diff --git a/internal/character/mysql_repository.go b/internal/character/mysql_repository.go index 543615ac1..a8abcaeed 100644 --- a/internal/character/mysql_repository.go +++ b/internal/character/mysql_repository.go @@ -151,12 +151,12 @@ func (r mysqlRepo) GetSubjectRelationByIDs( func convertDao(s *dao.Character) model.Character { return model.Character{ ID: s.ID, - Name: s.Name, + Name: string(s.Name), Type: s.Role, Image: s.Img, Summary: s.Summary, Locked: s.Ban != 0, - Infobox: s.Infobox, + Infobox: string(s.Infobox), CollectCount: s.Collects, CommentCount: s.Comment, NSFW: s.Nsfw, diff --git a/internal/character/mysql_repository_internal_test.go b/internal/character/mysql_repository_internal_test.go new file mode 100644 index 000000000..5e4a671ef --- /dev/null +++ b/internal/character/mysql_repository_internal_test.go @@ -0,0 +1,35 @@ +package character + +import ( + "html" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/bangumi/server/dal/dao" + "github.com/bangumi/server/dal/utiltype" +) + +func TestConvertDao_UnescapesHTMLStrings(t *testing.T) { + t.Parallel() + + wikiValue := `[nickname|"First Hassan"] Tom & Jerry 'quote'` + nameValue := `Tom & Jerry ` + + character := convertDao(&dao.Character{ + Name: mustScanHTMLString(t, html.EscapeString(nameValue)), + Infobox: mustScanHTMLString(t, html.EscapeString(wikiValue)), + }) + + require.Equal(t, nameValue, character.Name) + require.Equal(t, wikiValue, character.Infobox) +} + +func mustScanHTMLString(t *testing.T, value string) utiltype.HTMLEscapedString { + t.Helper() + + var result utiltype.HTMLEscapedString + require.NoError(t, (&result).Scan(value)) + + return result +} diff --git a/internal/person/mysql_repository.go b/internal/person/mysql_repository.go index 95eccc14d..2a888fd05 100644 --- a/internal/person/mysql_repository.go +++ b/internal/person/mysql_repository.go @@ -116,9 +116,9 @@ func convertDao(p *dao.Person) model.Person { Redirect: p.Redirect, Type: p.Type, ID: p.ID, - Name: p.Name, + Name: string(p.Name), Image: p.Img, - Infobox: p.Infobox, + Infobox: string(p.Infobox), Summary: p.Summary, Locked: p.Ban != 0, CollectCount: p.Collects, diff --git a/internal/person/mysql_repository_internal_test.go b/internal/person/mysql_repository_internal_test.go new file mode 100644 index 000000000..578e8410d --- /dev/null +++ b/internal/person/mysql_repository_internal_test.go @@ -0,0 +1,35 @@ +package person + +import ( + "html" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/bangumi/server/dal/dao" + "github.com/bangumi/server/dal/utiltype" +) + +func TestConvertDao_UnescapesHTMLStrings(t *testing.T) { + t.Parallel() + + wikiValue := `[nickname|"First Hassan"] Tom & Jerry 'quote'` + nameValue := `Tom & Jerry ` + + person := convertDao(&dao.Person{ + Name: mustScanHTMLString(t, html.EscapeString(nameValue)), + Infobox: mustScanHTMLString(t, html.EscapeString(wikiValue)), + }) + + require.Equal(t, nameValue, person.Name) + require.Equal(t, wikiValue, person.Infobox) +} + +func mustScanHTMLString(t *testing.T, value string) utiltype.HTMLEscapedString { + t.Helper() + + var result utiltype.HTMLEscapedString + require.NoError(t, (&result).Scan(value)) + + return result +} From f998a78ed832fe433d87078cbf0a76de11c7134a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 16:22:26 +0000 Subject: [PATCH 835/888] build(deps): update dependency go to v1.26.1 (#1032) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 8adfcf904..3b4fcd06a 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.24.13 +go 1.26.1 tool github.com/vektra/mockery/v3 From 000a855dd877f022b9bcc345b0cf440a07bd5fca Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 19 Mar 2026 00:24:21 +0800 Subject: [PATCH 836/888] ci: fix mergify --- .github/mergify.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/mergify.yml b/.github/mergify.yml index fe45a03a7..a9b268790 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -20,6 +20,7 @@ pull_request_rules: - base=master - check-success=docker - check-success=test + - check-success=lint actions: merge: method: squash From 28e5b3003f99a7cfb593b5086b8b4cb44b5e85e3 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Thu, 19 Mar 2026 00:43:32 +0800 Subject: [PATCH 837/888] ci: update golangci-lint to v2.11.3 (#1033) --- .github/workflows/lint.yaml | 2 +- canal/on_user.go | 2 +- web/mw/recovery/middle_test.go | 3 ++- web/new_internal_test.go | 5 +++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 0c1080aeb..802614308 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -37,4 +37,4 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v9 with: - version: v2.1.0 + version: v2.11.3 diff --git a/canal/on_user.go b/canal/on_user.go index 5447ae2ef..8eae44a7e 100644 --- a/canal/on_user.go +++ b/canal/on_user.go @@ -75,7 +75,7 @@ func (e *eventHandler) OnUserChange(ctx context.Context, key json.RawMessage, pa } e.log.Debug("clear user avatar cache", log.User(k.ID)) - go e.clearImageCache(context.Background(), after.Avatar) + go e.clearImageCache(context.WithoutCancel(ctx), after.Avatar) } } diff --git a/web/mw/recovery/middle_test.go b/web/mw/recovery/middle_test.go index 78ed03f6e..97b8ecd3f 100644 --- a/web/mw/recovery/middle_test.go +++ b/web/mw/recovery/middle_test.go @@ -15,6 +15,7 @@ package recovery_test import ( + "context" "net/http" "net/http/httptest" "testing" @@ -35,7 +36,7 @@ func TestPanicMiddleware(t *testing.T) { panic("errInternal") }) - req := httptest.NewRequest(http.MethodGet, "/", nil) + req := httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/", nil) resp := httptest.NewRecorder() app.ServeHTTP(resp, req) diff --git a/web/new_internal_test.go b/web/new_internal_test.go index 0660d8a49..21b2c766f 100644 --- a/web/new_internal_test.go +++ b/web/new_internal_test.go @@ -15,6 +15,7 @@ package web import ( + "context" "encoding/json" "errors" "net/http" @@ -37,7 +38,7 @@ func TestDefaultErrorHandler_resError(t *testing.T) { return res.BadRequest("mm") }) - req := httptest.NewRequest(http.MethodGet, "/", nil) + req := httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/", nil) resp := httptest.NewRecorder() app.ServeHTTP(resp, req) require.Equal(t, http.StatusBadRequest, resp.Code) @@ -62,7 +63,7 @@ func TestDefaultErrorHandler_internal(t *testing.T) { return errors.New("mm") }) - req := httptest.NewRequest(http.MethodGet, "/", nil) + req := httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/", nil) resp := httptest.NewRecorder() app.ServeHTTP(resp, req) From 9bbaaeff86948cd28967d11307ac828b121bacd0 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Wed, 25 Mar 2026 22:58:03 +0800 Subject: [PATCH 838/888] ci: update mergify and renovate configurations for improved merge handling --- .github/mergify.yml | 21 ++++++++++++++------- .github/renovate.json | 1 + 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/mergify.yml b/.github/mergify.yml index a9b268790..efc77a0df 100644 --- a/.github/mergify.yml +++ b/.github/mergify.yml @@ -1,3 +1,12 @@ +merge_queue: + max_parallel_checks: 1 + queued_label: "ci:queued" + dequeued_label: "ci:dequeued" + +queue_rules: + - name: renovate + update_method: merge + pull_request_rules: - name: label conflicts conditions: @@ -9,18 +18,16 @@ pull_request_rules: - name: Automatic merge on approval conditions: - - "#commits-behind=0" - or: - "#approved-reviews-by>=1" - label=ci:auto-merge - - not: - and: - - "head*=renovate/lockfile-maintenance-*" - - "created-at>24h ago" + - or: + - "- head*=renovate/lockfile-maintenance-*" + - "created-at<=24h ago" - base=master - check-success=docker - check-success=test - check-success=lint actions: - merge: - method: squash + queue: + name: renovate diff --git a/.github/renovate.json b/.github/renovate.json index 8729455d9..4234cc9bf 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,6 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "labels": ["ci:auto-merge", "dependencies"], + "rebaseWhen": "conflicted", "prConcurrentLimit": 3, "extends": [ "local>Trim21/renovate-config", From 3454b4764e04d902c95b932de7d642781a0a6796 Mon Sep 17 00:00:00 2001 From: Inchei Chan Date: Wed, 25 Mar 2026 23:00:39 +0800 Subject: [PATCH 839/888] feat(archive): export cast type (#1034) --- cmd/archive/main.go | 2 ++ cmd/gen/gorm/main.go | 1 + dal/dao/chii_crt_cast_index.gen.go | 2 +- dal/query/chii_characters.gen.go | 12 ++++++------ dal/query/chii_crt_cast_index.gen.go | 6 +++--- dal/query/chii_persons.gen.go | 12 ++++++------ .../mocks/{TimeLineService.go => TimelineService.go} | 0 7 files changed, 19 insertions(+), 16 deletions(-) rename internal/mocks/{TimeLineService.go => TimelineService.go} (100%) diff --git a/cmd/archive/main.go b/cmd/archive/main.go index 04049bcbd..6d166b562 100644 --- a/cmd/archive/main.go +++ b/cmd/archive/main.go @@ -553,6 +553,7 @@ type PersonCharacter struct { PersonID model.PersonID `json:"person_id"` SubjectID model.SubjectID `json:"subject_id"` CharacterID model.CharacterID `json:"character_id"` + Type uint8 `json:"type"` Summary string `json:"summary"` } @@ -570,6 +571,7 @@ func exportPersonCharacterRelations(q *query.Query, w io.Writer) { PersonID: rel.PersonID, SubjectID: rel.SubjectID, CharacterID: rel.CharacterID, + Type: rel.RltType, Summary: rel.Summary, }) } diff --git a/cmd/gen/gorm/main.go b/cmd/gen/gorm/main.go index de6d213f3..2a1d08ed6 100644 --- a/cmd/gen/gorm/main.go +++ b/cmd/gen/gorm/main.go @@ -404,6 +404,7 @@ func main() { gen.FieldType("crt_id", characterIDTypeString), gen.FieldType("prsn_id", personIDTypeString), gen.FieldType("subject_id", subjectIDTypeString), + gen.FieldType("rlt_type", "uint8"), gen.FieldRelate(field.HasOne, "Character", modelCharacter, &field.RelateConfig{ GORMTag: field.GormTag{"foreignKey": []string{"crt_id"}, "references": []string{"crt_id"}}, }), diff --git a/dal/dao/chii_crt_cast_index.gen.go b/dal/dao/chii_crt_cast_index.gen.go index 3f925247d..ced7552fd 100644 --- a/dal/dao/chii_crt_cast_index.gen.go +++ b/dal/dao/chii_crt_cast_index.gen.go @@ -8,7 +8,7 @@ const TableNameCast = "chii_crt_cast_index" // Cast mapped from table type Cast struct { - RltType uint32 `gorm:"column:rlt_type;type:mediumint(8) unsigned;not null" json:""` + RltType uint8 `gorm:"column:rlt_type;type:mediumint(8) unsigned;not null" json:""` CharacterID uint32 `gorm:"column:crt_id;type:mediumint(9) unsigned;primaryKey" json:""` PersonID uint32 `gorm:"column:prsn_id;type:mediumint(9) unsigned;primaryKey" json:""` SubjectID uint32 `gorm:"column:subject_id;type:mediumint(9) unsigned;primaryKey" json:""` diff --git a/dal/query/chii_characters.gen.go b/dal/query/chii_characters.gen.go index ca35b58b7..5d2039ee9 100644 --- a/dal/query/chii_characters.gen.go +++ b/dal/query/chii_characters.gen.go @@ -28,9 +28,9 @@ func newCharacter(db *gorm.DB, opts ...gen.DOOption) character { tableName := _character.characterDo.TableName() _character.ALL = field.NewAsterisk(tableName) _character.ID = field.NewUint32(tableName, "crt_id") - _character.Name = field.NewString(tableName, "crt_name") + _character.Name = field.NewField(tableName, "crt_name") _character.Role = field.NewUint8(tableName, "crt_role") - _character.Infobox = field.NewString(tableName, "crt_infobox") + _character.Infobox = field.NewField(tableName, "crt_infobox") _character.Summary = field.NewString(tableName, "crt_summary") _character.Img = field.NewString(tableName, "crt_img") _character.Comment = field.NewUint32(tableName, "crt_comment") @@ -59,9 +59,9 @@ type character struct { ALL field.Asterisk ID field.Uint32 - Name field.String + Name field.Field Role field.Uint8 // 角色,机体,组织。。 - Infobox field.String + Infobox field.Field Summary field.String Img field.String Comment field.Uint32 @@ -92,9 +92,9 @@ func (c character) As(alias string) *character { func (c *character) updateTableName(table string) *character { c.ALL = field.NewAsterisk(table) c.ID = field.NewUint32(table, "crt_id") - c.Name = field.NewString(table, "crt_name") + c.Name = field.NewField(table, "crt_name") c.Role = field.NewUint8(table, "crt_role") - c.Infobox = field.NewString(table, "crt_infobox") + c.Infobox = field.NewField(table, "crt_infobox") c.Summary = field.NewString(table, "crt_summary") c.Img = field.NewString(table, "crt_img") c.Comment = field.NewUint32(table, "crt_comment") diff --git a/dal/query/chii_crt_cast_index.gen.go b/dal/query/chii_crt_cast_index.gen.go index 5ddf49802..94d1b4c63 100644 --- a/dal/query/chii_crt_cast_index.gen.go +++ b/dal/query/chii_crt_cast_index.gen.go @@ -27,7 +27,7 @@ func newCast(db *gorm.DB, opts ...gen.DOOption) cast { tableName := _cast.castDo.TableName() _cast.ALL = field.NewAsterisk(tableName) - _cast.RltType = field.NewUint32(tableName, "rlt_type") + _cast.RltType = field.NewUint8(tableName, "rlt_type") _cast.CharacterID = field.NewUint32(tableName, "crt_id") _cast.PersonID = field.NewUint32(tableName, "prsn_id") _cast.SubjectID = field.NewUint32(tableName, "subject_id") @@ -75,7 +75,7 @@ type cast struct { castDo castDo ALL field.Asterisk - RltType field.Uint32 + RltType field.Uint8 CharacterID field.Uint32 PersonID field.Uint32 SubjectID field.Uint32 @@ -102,7 +102,7 @@ func (c cast) As(alias string) *cast { func (c *cast) updateTableName(table string) *cast { c.ALL = field.NewAsterisk(table) - c.RltType = field.NewUint32(table, "rlt_type") + c.RltType = field.NewUint8(table, "rlt_type") c.CharacterID = field.NewUint32(table, "crt_id") c.PersonID = field.NewUint32(table, "prsn_id") c.SubjectID = field.NewUint32(table, "subject_id") diff --git a/dal/query/chii_persons.gen.go b/dal/query/chii_persons.gen.go index aeb85e21a..919ae68d2 100644 --- a/dal/query/chii_persons.gen.go +++ b/dal/query/chii_persons.gen.go @@ -28,9 +28,9 @@ func newPerson(db *gorm.DB, opts ...gen.DOOption) person { tableName := _person.personDo.TableName() _person.ALL = field.NewAsterisk(tableName) _person.ID = field.NewUint32(tableName, "prsn_id") - _person.Name = field.NewString(tableName, "prsn_name") + _person.Name = field.NewField(tableName, "prsn_name") _person.Type = field.NewUint8(tableName, "prsn_type") - _person.Infobox = field.NewString(tableName, "prsn_infobox") + _person.Infobox = field.NewField(tableName, "prsn_infobox") _person.Producer = field.NewBool(tableName, "prsn_producer") _person.Mangaka = field.NewBool(tableName, "prsn_mangaka") _person.Artist = field.NewBool(tableName, "prsn_artist") @@ -67,9 +67,9 @@ type person struct { ALL field.Asterisk ID field.Uint32 - Name field.String + Name field.Field Type field.Uint8 // 个人,公司,组合 - Infobox field.String + Infobox field.Field Producer field.Bool Mangaka field.Bool Artist field.Bool @@ -107,9 +107,9 @@ func (p person) As(alias string) *person { func (p *person) updateTableName(table string) *person { p.ALL = field.NewAsterisk(table) p.ID = field.NewUint32(table, "prsn_id") - p.Name = field.NewString(table, "prsn_name") + p.Name = field.NewField(table, "prsn_name") p.Type = field.NewUint8(table, "prsn_type") - p.Infobox = field.NewString(table, "prsn_infobox") + p.Infobox = field.NewField(table, "prsn_infobox") p.Producer = field.NewBool(table, "prsn_producer") p.Mangaka = field.NewBool(table, "prsn_mangaka") p.Artist = field.NewBool(table, "prsn_artist") diff --git a/internal/mocks/TimeLineService.go b/internal/mocks/TimelineService.go similarity index 100% rename from internal/mocks/TimeLineService.go rename to internal/mocks/TimelineService.go From 63942843bdf951856736889d15e8187426deda1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:10:59 +0000 Subject: [PATCH 840/888] build(deps): update aws-sdk-go-v2 monorepo (#1035) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 3b4fcd06a..bc245c4a5 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.41.2 - github.com/aws/aws-sdk-go-v2/credentials v1.19.10 - github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2 + github.com/aws/aws-sdk-go-v2 v1.41.4 + github.com/aws/aws-sdk-go-v2/credentials v1.19.12 + github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.1 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18 // indirect - github.com/aws/smithy-go v1.24.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 // indirect + github.com/aws/smithy-go v1.24.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.2.4 // indirect github.com/bytedance/gopkg v0.1.3 // indirect diff --git a/go.sum b/go.sum index a5705db85..e1cf63860 100644 --- a/go.sum +++ b/go.sum @@ -8,30 +8,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.41.2 h1:LuT2rzqNQsauaGkPK/7813XxcZ3o3yePY0Iy891T2ls= -github.com/aws/aws-sdk-go-v2 v1.41.2/go.mod h1:IvvlAZQXvTXznUPfRVfryiG1fbzE2NGK6m9u39YQ+S4= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5 h1:zWFmPmgw4sveAYi1mRqG+E/g0461cJ5M4bJ8/nc6d3Q= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.5/go.mod h1:nVUlMLVV8ycXSb7mSkcNu9e3v/1TJq2RTlrPwhYWr5c= -github.com/aws/aws-sdk-go-v2/credentials v1.19.10 h1:EEhmEUFCE1Yhl7vDhNOI5OCL/iKMdkkYFTRpZXNw7m8= -github.com/aws/aws-sdk-go-v2/credentials v1.19.10/go.mod h1:RnnlFCAlxQCkN2Q379B67USkBMu1PipEEiibzYN5UTE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 h1:F43zk1vemYIqPAwhjTjYIz0irU2EY7sOb/F5eJ3HuyM= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18/go.mod h1:w1jdlZXrGKaJcNoL+Nnrj+k5wlpGXqnNrKoP22HvAug= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 h1:xCeWVjj0ki0l3nruoyP2slHsGArMxeiiaoPN5QZH6YQ= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18/go.mod h1:r/eLGuGCBw6l36ZRWiw6PaZwPXb6YOj+i/7MizNl5/k= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18 h1:eZioDaZGJ0tMM4gzmkNIO2aAoQd+je7Ug7TkvAzlmkU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.18/go.mod h1:CCXwUKAJdoWr6/NcxZ+zsiPr6oH/Q5aTooRGYieAyj4= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 h1:CeY9LUdur+Dxoeldqoun6y4WtJ3RQtzk0JMP2gfUay0= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5/go.mod h1:AZLZf2fMaahW5s/wMRciu1sYbdsikT/UHwbUjOdEVTc= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10 h1:fJvQ5mIBVfKtiyx0AHY6HeWcRX5LGANLpq8SVR+Uazs= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.10/go.mod h1:Kzm5e6OmNH8VMkgK9t+ry5jEih4Y8whqs+1hrkxim1I= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 h1:LTRCYFlnnKFlKsyIQxKhJuDuA3ZkrDQMRYm6rXiHlLY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18/go.mod h1:XhwkgGG6bHSd00nO/mexWTcTjgd6PjuvWQMqSn2UaEk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18 h1:/A/xDuZAVD2BpsS2fftFRo/NoEKQJ8YTnJDEHBy2Gtg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.18/go.mod h1:hWe9b4f+djUQGmyiGEeOnZv69dtMSgpDRIvNMvuvzvY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2 h1:M1A9AjcFwlxTLuf0Faj88L8Iqw0n/AJHjpZTQzMMsSc= -github.com/aws/aws-sdk-go-v2/service/s3 v1.96.2/go.mod h1:KsdTV6Q9WKUZm2mNJnUFmIoXfZux91M3sr/a4REX8e0= -github.com/aws/smithy-go v1.24.1 h1:VbyeNfmYkWoxMVpGUAbQumkODcYmfMRfZ8yQiH30SK0= -github.com/aws/smithy-go v1.24.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= +github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k= +github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= +github.com/aws/aws-sdk-go-v2/credentials v1.19.12 h1:oqtA6v+y5fZg//tcTWahyN9PEn5eDU/Wpvc2+kJ4aY8= +github.com/aws/aws-sdk-go-v2/credentials v1.19.12/go.mod h1:U3R1RtSHx6NB0DvEQFGyf/0sbrpJrluENHdPy1j/3TE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 h1:SwGMTMLIlvDNyhMteQ6r8IJSBPlRdXX5d4idhIGbkXA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21/go.mod h1:UUxgWxofmOdAMuqEsSppbDtGKLfR04HGsD0HXzvhI1k= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 h1:qtJZ70afD3ISKWnoX3xB0J2otEqu3LqicRcDBqsj0hQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12/go.mod h1:v2pNpJbRNl4vEUWEh5ytQok0zACAKfdmKS51Hotc3pQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 h1:siU1A6xjUZ2N8zjTHSXFhB9L/2OY8Dqs0xXiLjF30jA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20/go.mod h1:4TLZCmVJDM3FOu5P5TJP0zOlu9zWgDWU7aUxWbr+rcw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2 h1:MRNiP6nqa20aEl8fQ6PJpEq11b2d40b16sm4WD7QgMU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2/go.mod h1:FrNA56srbsr3WShiaelyWYEo70x80mXnVZ17ZZfbeqg= +github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= +github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From ef9441b386a71b3aa27f9d8776f0c642a6b47f68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:14:50 +0000 Subject: [PATCH 841/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.36.1 (#1036) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index bc245c4a5..76508f745 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v4 v4.15.1 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.36.0 + github.com/meilisearch/meilisearch-go v0.36.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.71 @@ -69,7 +69,7 @@ require ( github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.12 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect - github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jedib0t/go-pretty/v6 v6.6.7 // indirect diff --git a/go.sum b/go.sum index e1cf63860..82f9b4413 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6 github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= -github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= +github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= +github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -164,8 +164,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.36.0 h1:N1etykTektXt5KPcSbhBO0d5Xx5NaKj4pJWEM7WA5dI= -github.com/meilisearch/meilisearch-go v0.36.0/go.mod h1:HBfHzKMxcSbTOvqdfuRA/yf6Vk9IivcwKocWRuW7W78= +github.com/meilisearch/meilisearch-go v0.36.1 h1:mJTCJE5g7tRvaqKco6DfqOuJEjX+rRltDEnkEC02Y0M= +github.com/meilisearch/meilisearch-go v0.36.1/go.mod h1:hWcR0MuWLSzHfbz9GGzIr3s9rnXLm1jqkmHkJPbUSvM= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From d4d59cb8655a8f89bba68c98fbb78f16a620496f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:19:09 +0000 Subject: [PATCH 842/888] build(deps): update module github.com/redis/rueidis to v1.0.73 (#1037) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 76508f745..573396da4 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.36.1 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.71 + github.com/redis/rueidis v1.0.73 github.com/samber/lo v1.52.0 github.com/segmentio/kafka-go v0.4.50 github.com/spf13/cobra v1.10.2 diff --git a/go.sum b/go.sum index 82f9b4413..2d1676d73 100644 --- a/go.sum +++ b/go.sum @@ -192,8 +192,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.71 h1:pODtnAR5GAB7j4ekhldZ29HKOxe4Hph0GTDGk1ayEQY= -github.com/redis/rueidis v1.0.71/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= +github.com/redis/rueidis v1.0.73 h1:0Enrg0VuMdaYyNDDj0lLIheWY0uybCeQOh+jTp2GG3M= +github.com/redis/rueidis v1.0.73/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= From 6cdca6d2d8baa2142526227360ce57eb8f66b749 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:23:21 +0000 Subject: [PATCH 843/888] build(deps): update module golang.org/x/sync to v0.20.0 (#1041) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 573396da4..e0f2654d6 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 - golang.org/x/sync v0.19.0 + golang.org/x/sync v0.20.0 golang.org/x/text v0.33.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 diff --git a/go.sum b/go.sum index 2d1676d73..0ba36e6dd 100644 --- a/go.sum +++ b/go.sum @@ -278,8 +278,8 @@ golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= -golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From a143b0e613791258ed0e982fff229e9e4adc4cd5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:28:13 +0000 Subject: [PATCH 844/888] build(deps): update module github.com/samber/lo to v1.53.0 (#1039) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e0f2654d6..27d2bd162 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.73 - github.com/samber/lo v1.52.0 + github.com/samber/lo v1.53.0 github.com/segmentio/kafka-go v0.4.50 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 diff --git a/go.sum b/go.sum index 0ba36e6dd..048061929 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= -github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= +github.com/samber/lo v1.53.0 h1:t975lj2py4kJPQ6haz1QMgtId2gtmfktACxIXArw3HM= +github.com/samber/lo v1.53.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/kafka-go v0.4.50 h1:mcyC3tT5WeyWzrFbd6O374t+hmcu1NKt2Pu1L3QaXmc= github.com/segmentio/kafka-go v0.4.50/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= From 7a5f3f47f824b6a3ae209e7bf66b3bdfd09e1b46 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:32:44 +0000 Subject: [PATCH 845/888] build(deps): update module github.com/vektra/mockery/v3 to v3.7.0 (#1040) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 45 +++++++++++++++-------------- go.sum | 91 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 69 insertions(+), 67 deletions(-) diff --git a/go.mod b/go.mod index 27d2bd162..174c89f17 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 golang.org/x/sync v0.20.0 - golang.org/x/text v0.33.0 + golang.org/x/text v0.34.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -60,35 +60,36 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 // indirect github.com/aws/smithy-go v1.24.2 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/brunoga/deep v1.2.4 // indirect + github.com/brunoga/deep v1.3.1 // indirect github.com/bytedance/gopkg v0.1.3 // indirect github.com/bytedance/sonic/loader v0.5.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/clipperhouse/uax29/v2 v2.2.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.12 // indirect - github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jedib0t/go-pretty/v6 v6.6.7 // indirect + github.com/jedib0t/go-pretty/v6 v6.7.8 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect - github.com/knadh/koanf/parsers/yaml v0.1.0 // indirect - github.com/knadh/koanf/providers/env v1.0.0 // indirect - github.com/knadh/koanf/providers/file v1.1.2 // indirect - github.com/knadh/koanf/providers/posflag v0.1.0 // indirect - github.com/knadh/koanf/providers/structs v0.1.0 // indirect - github.com/knadh/koanf/v2 v2.3.0 // indirect + github.com/knadh/koanf/parsers/yaml v1.1.0 // indirect + github.com/knadh/koanf/providers/env v1.1.0 // indirect + github.com/knadh/koanf/providers/file v1.2.1 // indirect + github.com/knadh/koanf/providers/posflag v1.0.1 // indirect + github.com/knadh/koanf/providers/structs v1.0.0 // indirect + github.com/knadh/koanf/v2 v2.3.2 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mattn/go-runewidth v0.0.19 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -97,29 +98,29 @@ require ( github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.66.1 // indirect github.com/prometheus/procfs v0.16.1 // indirect - github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/zerolog v1.34.0 // indirect - github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/objx v0.5.3 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/vektra/mockery/v3 v3.6.3 // indirect - github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect + github.com/vektra/mockery/v3 v3.7.0 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.46.0 // indirect - golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/mod v0.31.0 // indirect - golang.org/x/net v0.48.0 // indirect - golang.org/x/sys v0.39.0 // indirect - golang.org/x/term v0.38.0 // indirect + golang.org/x/crypto v0.48.0 // indirect + golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect + golang.org/x/mod v0.33.0 // indirect + golang.org/x/net v0.50.0 // indirect + golang.org/x/sys v0.41.0 // indirect + golang.org/x/term v0.40.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.40.0 // indirect + golang.org/x/tools v0.42.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index 048061929..ce18948a0 100644 --- a/go.sum +++ b/go.sum @@ -38,8 +38,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M= github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0= -github.com/brunoga/deep v1.2.4 h1:Aj9E9oUbE+ccbyh35VC/NHlzzjfIVU69BXu2mt2LmL8= -github.com/brunoga/deep v1.2.4/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= +github.com/brunoga/deep v1.3.1 h1:bSrL6FhAZa6JlVv4vsi7Hg8SLwroDb1kgDERRVipBCo= +github.com/brunoga/deep v1.3.1/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= @@ -48,6 +48,8 @@ github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiD github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= +github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -75,8 +77,8 @@ github.com/go-resty/resty/v2 v2.17.2/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2m github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= +github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= @@ -104,8 +106,8 @@ github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= -github.com/jedib0t/go-pretty/v6 v6.6.7 h1:m+LbHpm0aIAPLzLbMfn8dc3Ht8MW7lsSO4MPItz/Uuo= -github.com/jedib0t/go-pretty/v6 v6.6.7/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= +github.com/jedib0t/go-pretty/v6 v6.7.8 h1:BVYrDy5DPBA3Qn9ICT+PokP9cvCv1KaHv2i+Hc8sr5o= +github.com/jedib0t/go-pretty/v6 v6.7.8/go.mod h1:YwC5CE4fJ1HFUDeivSV1r//AmANFHyqczZk+U6BDALU= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= @@ -122,18 +124,18 @@ github.com/klauspost/cpuid/v2 v2.2.10 h1:tBs3QSyvjDyFTq3uoc/9xFpCuOsJQFNPiAhYdw2 github.com/klauspost/cpuid/v2 v2.2.10/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= -github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w= -github.com/knadh/koanf/parsers/yaml v0.1.0/go.mod h1:cvbUDC7AL23pImuQP0oRw/hPuccrNBS2bps8asS0CwY= -github.com/knadh/koanf/providers/env v1.0.0 h1:ufePaI9BnWH+ajuxGGiJ8pdTG0uLEUWC7/HDDPGLah0= -github.com/knadh/koanf/providers/env v1.0.0/go.mod h1:mzFyRZueYhb37oPmC1HAv/oGEEuyvJDA98r3XAa8Gak= -github.com/knadh/koanf/providers/file v1.1.2 h1:aCC36YGOgV5lTtAFz2qkgtWdeQsgfxUkxDOe+2nQY3w= -github.com/knadh/koanf/providers/file v1.1.2/go.mod h1:/faSBcv2mxPVjFrXck95qeoyoZ5myJ6uxN8OOVNJJCI= -github.com/knadh/koanf/providers/posflag v0.1.0 h1:mKJlLrKPcAP7Ootf4pBZWJ6J+4wHYujwipe7Ie3qW6U= -github.com/knadh/koanf/providers/posflag v0.1.0/go.mod h1:SYg03v/t8ISBNrMBRMlojH8OsKowbkXV7giIbBVgbz0= -github.com/knadh/koanf/providers/structs v0.1.0 h1:wJRteCNn1qvLtE5h8KQBvLJovidSdntfdyIbbCzEyE0= -github.com/knadh/koanf/providers/structs v0.1.0/go.mod h1:sw2YZ3txUcqA3Z27gPlmmBzWn1h8Nt9O6EP/91MkcWE= -github.com/knadh/koanf/v2 v2.3.0 h1:Qg076dDRFHvqnKG97ZEsi9TAg2/nFTa9hCdcSa1lvlM= -github.com/knadh/koanf/v2 v2.3.0/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= +github.com/knadh/koanf/parsers/yaml v1.1.0 h1:3ltfm9ljprAHt4jxgeYLlFPmUaunuCgu1yILuTXRdM4= +github.com/knadh/koanf/parsers/yaml v1.1.0/go.mod h1:HHmcHXUrp9cOPcuC+2wrr44GTUB0EC+PyfN3HZD9tFg= +github.com/knadh/koanf/providers/env v1.1.0 h1:U2VXPY0f+CsNDkvdsG8GcsnK4ah85WwWyJgef9oQMSc= +github.com/knadh/koanf/providers/env v1.1.0/go.mod h1:QhHHHZ87h9JxJAn2czdEl6pdkNnDh/JS1Vtsyt65hTY= +github.com/knadh/koanf/providers/file v1.2.1 h1:bEWbtQwYrA+W2DtdBrQWyXqJaJSG3KrP3AESOJYp9wM= +github.com/knadh/koanf/providers/file v1.2.1/go.mod h1:bp1PM5f83Q+TOUu10J/0ApLBd9uIzg+n9UgthfY+nRA= +github.com/knadh/koanf/providers/posflag v1.0.1 h1:EnMxHSrPkYCFnKgBUl5KBgrjed8gVFrcXDzaW4l/C6Y= +github.com/knadh/koanf/providers/posflag v1.0.1/go.mod h1:3Wn3+YG3f4ljzRyCUgIwH7G0sZ1pMjCOsNBovrbKmAk= +github.com/knadh/koanf/providers/structs v1.0.0 h1:DznjB7NQykhqCar2LvNug3MuxEQsZ5KvfgMbio+23u4= +github.com/knadh/koanf/providers/structs v1.0.0/go.mod h1:kjo5TFtgpaZORlpoJqcbeLowM2cINodv8kX+oFAeQ1w= +github.com/knadh/koanf/v2 v2.3.2 h1:Ee6tuzQYFwcZXQpc2MiVeC6qHMandf5SMUJJNoFp/c4= +github.com/knadh/koanf/v2 v2.3.2/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -155,8 +157,8 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= -github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= +github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= @@ -194,11 +196,8 @@ github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzM github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/redis/rueidis v1.0.73 h1:0Enrg0VuMdaYyNDDj0lLIheWY0uybCeQOh+jTp2GG3M= github.com/redis/rueidis v1.0.73/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= -github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY= github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ= @@ -215,8 +214,9 @@ github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3A github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -236,16 +236,17 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/vektra/mockery/v3 v3.6.3 h1:YaBokm33LG0E8w1TccCkcJr/6tRf+zSYiHS8ct4ttCc= -github.com/vektra/mockery/v3 v3.6.3/go.mod h1:kh58mpWIghfUCfFkNCP72TJmuJUR/dKnrqBZ3HspVq8= +github.com/vektra/mockery/v3 v3.7.0 h1:Dd0EeaOcRJBVP9n3oYOVPV7KdPaaE3EcwTppaZIsFSM= +github.com/vektra/mockery/v3 v3.7.0/go.mod h1:z9Wr23Ha8etImqQwS3boTNR9WkjX6tIklW5c88DRkSw= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= @@ -270,29 +271,29 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= -golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= -golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= -golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= -golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= +golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= +golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= +golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= +golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= -golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= +golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= -golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= +golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= +golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 1087bb660a780fd96fafe6ce829315b60bebab8e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 15:38:57 +0000 Subject: [PATCH 846/888] build(deps): update module golang.org/x/text to v0.35.0 (#1042) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 174c89f17..82fefc3b9 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.27.1 golang.org/x/sync v0.20.0 - golang.org/x/text v0.34.0 + golang.org/x/text v0.35.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 diff --git a/go.sum b/go.sum index ce18948a0..83e082186 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= +golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= From 735e3df0223cb7ea71619ecbccd3f1be4ffb5b5e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:42:51 +0800 Subject: [PATCH 847/888] ci: update docker/metadata-action action to v6 (#1047) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index 87932ad6e..b947c6198 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -47,7 +47,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: ${{ env.IMAGE }} tags: | From f4bc8ee5ed0a931dcf6af70e80f5dc41d075de73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:42:53 +0800 Subject: [PATCH 848/888] ci: update docker/login-action action to v4 (#1046) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index b947c6198..a1285d3c0 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -57,7 +57,7 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - - uses: docker/login-action@v3 + - uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} From 3251c115ab36690c4de27cb59c5e78bc77fe0eac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:43:11 +0800 Subject: [PATCH 849/888] ci: update docker/build-push-action action to v7 (#1045) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index a1285d3c0..f08873496 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -64,7 +64,7 @@ jobs: password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: ./ provenance: false From a6f0181ff3f6bc20b330608d514cb1c0ca0ce430 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:43:34 +0800 Subject: [PATCH 850/888] build(deps): update gcr.io/distroless/static docker digest to 47b2d72 (#1049) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- etc/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/Dockerfile b/etc/Dockerfile index d47e83374..cce2f539d 100644 --- a/etc/Dockerfile +++ b/etc/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/distroless/static@sha256:4b2a093ef4649bccd586625090a3c668b254cfe180dee54f4c94f3e9bd7e381e +FROM gcr.io/distroless/static@sha256:47b2d72ff90843eb8a768b5c2f89b40741843b639d065b9b937b07cd59b479c6 ENTRYPOINT ["/app/chii.exe"] From 58ba02e745aeede7c1d9002c1acfeb426489c4e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 23:44:05 +0800 Subject: [PATCH 851/888] ci: update dependency golangci/golangci-lint to v2.11.4 (#1038) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 802614308..60969bd0b 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -37,4 +37,4 @@ jobs: - name: Run linters uses: golangci/golangci-lint-action@v9 with: - version: v2.11.3 + version: v2.11.4 From 86facddbc481cb91418fe52ddd1b2edf929c338a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 16:04:35 +0000 Subject: [PATCH 852/888] build(deps): update module github.com/labstack/echo/v4 to v5 (#1044) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Trim21 Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- cmd/web/cmd.go | 2 +- go.mod | 3 +- go.sum | 2 ++ internal/mocks/SearchClient.go | 16 +++++------ internal/pkg/test/web.go | 2 +- internal/search/character/handle.go | 4 +-- internal/search/noop.go | 4 +-- internal/search/person/handle.go | 4 +-- internal/search/search.go | 8 +++--- internal/search/searcher/client.go | 4 +-- internal/search/subject/handle.go | 4 +-- web/accessor/accesor.go | 4 +-- web/accessor/ctx.go | 6 ++-- web/cookie/clear.go | 4 +-- web/dev.go | 4 +-- web/error.go | 6 ++-- web/handler/character/character_test.go | 2 +- web/handler/character/collect.go | 10 +++---- web/handler/character/get.go | 6 ++-- web/handler/character/get_related_persons.go | 4 +-- web/handler/character/get_related_subjects.go | 4 +-- web/handler/common/access_token.go | 4 +-- web/handler/common/validation.go | 4 +-- web/handler/episode.go | 6 ++-- web/handler/index/collect.go | 10 +++---- web/handler/index/collect_test.go | 2 +- web/handler/index/index.go | 14 +++++----- web/handler/index/index_test.go | 2 +- web/handler/index/subject.go | 10 +++---- web/handler/index/subject_test.go | 2 +- web/handler/person/collect.go | 10 +++---- web/handler/person/get.go | 6 ++-- web/handler/person/get_related_characters.go | 4 +-- web/handler/person/get_related_subjects.go | 4 +-- web/handler/revision.go | 20 ++++++------- web/handler/revision_episode.go | 8 +++--- web/handler/search.go | 8 +++--- web/handler/subject/browse.go | 10 +++---- web/handler/subject/get.go | 6 ++-- web/handler/subject/get_test.go | 4 +-- web/handler/subject/related_characters.go | 4 +-- web/handler/subject/related_persons.go | 4 +-- web/handler/subject/related_subjects.go | 4 +-- web/handler/subject/subject.go | 2 +- web/handler/user/collection_test.go | 2 +- web/handler/user/get.go | 6 ++-- web/handler/user/get_character_collection.go | 6 ++-- web/handler/user/get_episode_collection.go | 6 ++-- .../user/get_episode_collection_test.go | 2 +- web/handler/user/get_person_collection.go | 6 ++-- web/handler/user/get_subject_collection.go | 6 ++-- .../user/list_character_collections.go | 6 ++-- web/handler/user/list_person_collections.go | 6 ++-- web/handler/user/list_subject_collections.go | 6 ++-- web/handler/user/me.go | 4 +-- web/handler/user/patch_subject_collection.go | 8 +++--- .../user/patch_subject_collection_test.go | 10 +++---- web/handler/user/post_subject_collection.go | 4 +-- .../user/post_subject_collection_test.go | 10 +++---- web/handler/user/update_episode_collection.go | 6 ++-- .../user/update_episode_collection_test.go | 2 +- web/index.go | 6 ++-- web/json.go | 6 ++-- web/mw/middleware.go | 4 +-- web/mw/origin/new.go | 6 ++-- web/mw/rate-limit.go | 4 +-- web/mw/recovery/dev.go | 6 ++-- web/mw/recovery/middle_test.go | 4 +-- web/mw/recovery/new.go | 4 +-- web/mw/referer/new.go | 6 ++-- web/mw/ua/new.go | 6 ++-- web/new.go | 28 ++++++++----------- web/new_internal_test.go | 6 ++-- web/req/content_type.go | 4 +-- web/req/page.go | 6 ++-- web/res/cache-control.go | 4 +-- web/res/error.go | 6 ++-- web/routes.go | 2 +- web/util/detail.go | 6 ++-- 79 files changed, 229 insertions(+), 232 deletions(-) diff --git a/cmd/web/cmd.go b/cmd/web/cmd.go index 3f94d9cec..dce944add 100644 --- a/cmd/web/cmd.go +++ b/cmd/web/cmd.go @@ -18,7 +18,7 @@ import ( "encoding/json" "github.com/go-resty/resty/v2" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/segmentio/kafka-go" "github.com/spf13/cobra" "github.com/trim21/errgo" diff --git a/go.mod b/go.mod index 82fefc3b9..9d0692b59 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v4 v4.15.1 + github.com/labstack/echo/v5 v5.0.4 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.36.1 github.com/mitchellh/mapstructure v1.5.0 @@ -86,6 +86,7 @@ require ( github.com/knadh/koanf/providers/posflag v1.0.1 // indirect github.com/knadh/koanf/providers/structs v1.0.0 // indirect github.com/knadh/koanf/v2 v2.3.2 // indirect + github.com/labstack/echo/v4 v4.15.1 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect diff --git a/go.sum b/go.sum index 83e082186..674d8abf8 100644 --- a/go.sum +++ b/go.sum @@ -144,6 +144,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/labstack/echo/v4 v4.15.1 h1:S9keusg26gZpjMmPqB5hOEvNKnmd1lNmcHrbbH2lnFs= github.com/labstack/echo/v4 v4.15.1/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= +github.com/labstack/echo/v5 v5.0.4 h1:ll3I/O8BifjMztj9dD1vx/peZQv8cR2CTUdQK6QxGGc= +github.com/labstack/echo/v5 v5.0.4/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= diff --git a/internal/mocks/SearchClient.go b/internal/mocks/SearchClient.go index 9200c87d7..0c13a1883 100644 --- a/internal/mocks/SearchClient.go +++ b/internal/mocks/SearchClient.go @@ -8,7 +8,7 @@ import ( "context" "github.com/bangumi/server/internal/search" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" mock "github.com/stretchr/testify/mock" ) @@ -262,7 +262,7 @@ func (_c *SearchClient_EventUpdate_Call) RunAndReturn(run func(ctx context.Conte } // Handle provides a mock function for the type SearchClient -func (_mock *SearchClient) Handle(c echo.Context, target search.SearchTarget) error { +func (_mock *SearchClient) Handle(c *echo.Context, target search.SearchTarget) error { ret := _mock.Called(c, target) if len(ret) == 0 { @@ -270,7 +270,7 @@ func (_mock *SearchClient) Handle(c echo.Context, target search.SearchTarget) er } var r0 error - if returnFunc, ok := ret.Get(0).(func(echo.Context, search.SearchTarget) error); ok { + if returnFunc, ok := ret.Get(0).(func(*echo.Context, search.SearchTarget) error); ok { r0 = returnFunc(c, target) } else { r0 = ret.Error(0) @@ -284,17 +284,17 @@ type SearchClient_Handle_Call struct { } // Handle is a helper method to define mock.On call -// - c echo.Context +// - c *echo.Context // - target search.SearchTarget func (_e *SearchClient_Expecter) Handle(c interface{}, target interface{}) *SearchClient_Handle_Call { return &SearchClient_Handle_Call{Call: _e.mock.On("Handle", c, target)} } -func (_c *SearchClient_Handle_Call) Run(run func(c echo.Context, target search.SearchTarget)) *SearchClient_Handle_Call { +func (_c *SearchClient_Handle_Call) Run(run func(c *echo.Context, target search.SearchTarget)) *SearchClient_Handle_Call { _c.Call.Run(func(args mock.Arguments) { - var arg0 echo.Context + var arg0 *echo.Context if args[0] != nil { - arg0 = args[0].(echo.Context) + arg0 = args[0].(*echo.Context) } var arg1 search.SearchTarget if args[1] != nil { @@ -313,7 +313,7 @@ func (_c *SearchClient_Handle_Call) Return(err error) *SearchClient_Handle_Call return _c } -func (_c *SearchClient_Handle_Call) RunAndReturn(run func(c echo.Context, target search.SearchTarget) error) *SearchClient_Handle_Call { +func (_c *SearchClient_Handle_Call) RunAndReturn(run func(c *echo.Context, target search.SearchTarget) error) *SearchClient_Handle_Call { _c.Call.Return(run) return _c } diff --git a/internal/pkg/test/web.go b/internal/pkg/test/web.go index 6d13c87ec..10a891747 100644 --- a/internal/pkg/test/web.go +++ b/internal/pkg/test/web.go @@ -20,7 +20,7 @@ import ( "github.com/go-resty/resty/v2" "github.com/jarcoal/httpmock" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "go.uber.org/fx" diff --git a/internal/search/character/handle.go b/internal/search/character/handle.go index 660b2704e..632804879 100644 --- a/internal/search/character/handle.go +++ b/internal/search/character/handle.go @@ -5,7 +5,7 @@ import ( "fmt" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" @@ -34,7 +34,7 @@ type hit struct { } //nolint:funlen -func (c *client) Handle(ctx echo.Context) error { +func (c *client) Handle(ctx *echo.Context) error { auth := accessor.GetFromCtx(ctx) q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) if err != nil { diff --git a/internal/search/noop.go b/internal/search/noop.go index 56ca35a8e..b794201d2 100644 --- a/internal/search/noop.go +++ b/internal/search/noop.go @@ -18,7 +18,7 @@ import ( "context" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" ) var _ Client = NoopClient{} @@ -26,7 +26,7 @@ var _ Client = NoopClient{} type NoopClient struct { } -func (n NoopClient) Handle(c echo.Context, _ SearchTarget) error { +func (n NoopClient) Handle(c *echo.Context, _ SearchTarget) error { return c.String(http.StatusOK, "search is not enable") } diff --git a/internal/search/person/handle.go b/internal/search/person/handle.go index 279bb5bca..f313c3183 100644 --- a/internal/search/person/handle.go +++ b/internal/search/person/handle.go @@ -5,7 +5,7 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" @@ -32,7 +32,7 @@ type hit struct { } //nolint:funlen -func (c *client) Handle(ctx echo.Context) error { +func (c *client) Handle(ctx *echo.Context) error { q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) if err != nil { return err diff --git a/internal/search/search.go b/internal/search/search.go index 485869e6a..8d2e8a859 100644 --- a/internal/search/search.go +++ b/internal/search/search.go @@ -20,7 +20,7 @@ import ( "net/http" "net/url" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/meilisearch/meilisearch-go" "github.com/trim21/errgo" "go.uber.org/zap" @@ -45,7 +45,7 @@ const ( ) type Client interface { - Handle(c echo.Context, target SearchTarget) error + Handle(c *echo.Context, target SearchTarget) error Close() EventAdded(ctx context.Context, id uint32, target SearchTarget) error @@ -54,7 +54,7 @@ type Client interface { } type Handler interface { - Handle(c echo.Context, target SearchTarget) error + Handle(c *echo.Context, target SearchTarget) error } type Search struct { @@ -111,7 +111,7 @@ func New( return s, nil } -func (s *Search) Handle(c echo.Context, target SearchTarget) error { +func (s *Search) Handle(c *echo.Context, target SearchTarget) error { searcher := s.searchers[target] if searcher == nil { return fmt.Errorf("searcher not found for %s", target) diff --git a/internal/search/searcher/client.go b/internal/search/searcher/client.go index 8ff4372df..0b132e1b0 100644 --- a/internal/search/searcher/client.go +++ b/internal/search/searcher/client.go @@ -11,7 +11,7 @@ import ( "github.com/avast/retry-go/v5" wiki "github.com/bangumi/wiki-parser-go" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" "github.com/samber/lo/mutable" @@ -22,7 +22,7 @@ import ( ) type Searcher interface { - Handle(c echo.Context) error + Handle(c *echo.Context) error OnAdded(ctx context.Context, id uint32) error OnUpdate(ctx context.Context, id uint32) error diff --git a/internal/search/subject/handle.go b/internal/search/subject/handle.go index c63bb1c4d..2af4b5a4e 100644 --- a/internal/search/subject/handle.go +++ b/internal/search/subject/handle.go @@ -24,7 +24,7 @@ import ( "strings" "github.com/bangumi/wiki-parser-go" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/meilisearch/meilisearch-go" "github.com/samber/lo" "github.com/trim21/errgo" @@ -91,7 +91,7 @@ type ResponseSubject struct { } //nolint:funlen -func (c *client) Handle(ctx echo.Context) error { +func (c *client) Handle(ctx *echo.Context) error { auth := accessor.GetFromCtx(ctx) q, err := req.GetPageQuerySoftLimit(ctx, defaultLimit, maxLimit) if err != nil { diff --git a/web/accessor/accesor.go b/web/accessor/accesor.go index c6ccf1e3f..fbac1ba8a 100644 --- a/web/accessor/accesor.go +++ b/web/accessor/accesor.go @@ -15,7 +15,7 @@ package accessor import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -34,7 +34,7 @@ func (a *Accessor) AllowNSFW() bool { return a.Login && a.Auth.AllowNSFW() } -func (a *Accessor) fillBasicInfo(c echo.Context) { +func (a *Accessor) fillBasicInfo(c *echo.Context) { a.Login = false a.RequestID = c.Request().Header.Get(cf.HeaderRequestID) a.IP = c.RealIP() diff --git a/web/accessor/ctx.go b/web/accessor/ctx.go index 1d4e8fcf7..5212ed65e 100644 --- a/web/accessor/ctx.go +++ b/web/accessor/ctx.go @@ -15,20 +15,20 @@ package accessor import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "go.uber.org/zap" "github.com/bangumi/server/internal/pkg/logger" "github.com/bangumi/server/web/internal/ctxkey" ) -func NewFromCtx(c echo.Context) *Accessor { +func NewFromCtx(c *echo.Context) *Accessor { a := get() a.fillBasicInfo(c) return a } -func GetFromCtx(c echo.Context) *Accessor { +func GetFromCtx(c *echo.Context) *Accessor { raw := c.Get(ctxkey.User) if raw == nil { return NewFromCtx(c) diff --git a/web/cookie/clear.go b/web/cookie/clear.go index 63819183f..3a9609b82 100644 --- a/web/cookie/clear.go +++ b/web/cookie/clear.go @@ -17,9 +17,9 @@ package cookie import ( "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" ) -func Clear(c echo.Context, key string) { +func Clear(c *echo.Context, key string) { c.SetCookie(&http.Cookie{Name: key, Value: "", SameSite: http.SameSiteLaxMode, HttpOnly: true}) } diff --git a/web/dev.go b/web/dev.go index 786f6aa68..5761cb674 100644 --- a/web/dev.go +++ b/web/dev.go @@ -15,14 +15,14 @@ package web import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/internal/pkg/random" "github.com/bangumi/server/web/req/cf" ) func genFakeRequestID(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { devRequestID := "fake-ray-" + random.Base62String(10) c.Request().Header.Set(cf.HeaderRequestID, devRequestID) c.Set(cf.HeaderRequestID, devRequestID) diff --git a/web/error.go b/web/error.go index 7808a7713..2c2613c7c 100644 --- a/web/error.go +++ b/web/error.go @@ -19,7 +19,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -29,7 +29,7 @@ import ( "github.com/bangumi/server/web/util" ) -func globalNotFoundHandler(c echo.Context) error { +func globalNotFoundHandler(c *echo.Context) error { return c.JSON(http.StatusNotFound, res.Error{ Title: "Not Found", Description: "This is default response, if you see this response, please check your request", @@ -42,7 +42,7 @@ func getDefaultErrorHandler() echo.HTTPErrorHandler { var log = logger.Named("http.err"). WithOptions(zap.AddStacktrace(zapcore.PanicLevel), zap.WithCaller(false)) - return func(err error, c echo.Context) { + return func(c *echo.Context, err error) { reqID := c.Request().Header.Get(cf.HeaderRequestID) { diff --git a/web/handler/character/character_test.go b/web/handler/character/character_test.go index ddf5cff3d..8c19cd638 100644 --- a/web/handler/character/character_test.go +++ b/web/handler/character/character_test.go @@ -19,7 +19,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/character/collect.go b/web/handler/character/collect.go index f8d6c60b6..ab89d04a3 100644 --- a/web/handler/character/collect.go +++ b/web/handler/character/collect.go @@ -17,7 +17,7 @@ package character import ( "errors" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/collections/domain/collection" @@ -26,7 +26,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Character) CollectCharacter(c echo.Context) error { +func (h Character) CollectCharacter(c *echo.Context) error { cid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -35,7 +35,7 @@ func (h Character) CollectCharacter(c echo.Context) error { return h.collectCharacter(c, cid, uid) } -func (h Character) UncollectCharacter(c echo.Context) error { +func (h Character) UncollectCharacter(c *echo.Context) error { cid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -44,7 +44,7 @@ func (h Character) UncollectCharacter(c echo.Context) error { return h.uncollectCharacter(c, cid, uid) } -func (h Character) collectCharacter(c echo.Context, cid uint32, uid uint32) error { +func (h Character) collectCharacter(c *echo.Context, cid uint32, uid uint32) error { ctx := c.Request().Context() // check if the character exists if _, err := h.character.Get(ctx, cid); err != nil { @@ -66,7 +66,7 @@ func (h Character) collectCharacter(c echo.Context, cid uint32, uid uint32) erro return nil } -func (h Character) uncollectCharacter(c echo.Context, cid uint32, uid uint32) error { +func (h Character) uncollectCharacter(c *echo.Context, cid uint32, uid uint32) error { ctx := c.Request().Context() // check if the character exists if _, err := h.character.Get(ctx, cid); err != nil { diff --git a/web/handler/character/get.go b/web/handler/character/get.go index 81ba08f83..551c11a4d 100644 --- a/web/handler/character/get.go +++ b/web/handler/character/get.go @@ -20,7 +20,7 @@ import ( "strconv" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -30,7 +30,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Character) Get(c echo.Context) error { +func (h Character) Get(c *echo.Context) error { u := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) if err != nil { @@ -61,7 +61,7 @@ func (h Character) Get(c echo.Context) error { return c.JSON(http.StatusOK, res.ConvertModelCharacter(r)) } -func (h Character) GetImage(c echo.Context) error { +func (h Character) GetImage(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/character/get_related_persons.go b/web/handler/character/get_related_persons.go index ac17894b4..767b13770 100644 --- a/web/handler/character/get_related_persons.go +++ b/web/handler/character/get_related_persons.go @@ -19,7 +19,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -28,7 +28,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Character) GetRelatedPersons(c echo.Context) error { +func (h Character) GetRelatedPersons(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/character/get_related_subjects.go b/web/handler/character/get_related_subjects.go index f01da6402..c83535412 100644 --- a/web/handler/character/get_related_subjects.go +++ b/web/handler/character/get_related_subjects.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain" @@ -32,7 +32,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Character) GetRelatedSubjects(c echo.Context) error { +func (h Character) GetRelatedSubjects(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/common/access_token.go b/web/handler/common/access_token.go index 9dadd76d4..4e9e64152 100644 --- a/web/handler/common/access_token.go +++ b/web/handler/common/access_token.go @@ -18,7 +18,7 @@ import ( "errors" "strings" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -29,7 +29,7 @@ import ( ) func (h Common) MiddlewareAccessTokenAuth(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { var a = accessor.NewFromCtx(c) defer a.Free() diff --git a/web/handler/common/validation.go b/web/handler/common/validation.go index ff4658a5e..788d5faee 100644 --- a/web/handler/common/validation.go +++ b/web/handler/common/validation.go @@ -25,13 +25,13 @@ import ( ut "github.com/go-playground/universal-translator" "github.com/go-playground/validator/v10" zhTranslations "github.com/go-playground/validator/v10/translations/zh" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/web/res" ) -func (h Common) ValidationError(c echo.Context, err error) error { +func (h Common) ValidationError(c *echo.Context, err error) error { return c.JSON(http.StatusBadRequest, res.Error{ Title: "Bad Request", Description: "can't validate request body", diff --git a/web/handler/episode.go b/web/handler/episode.go index 60fa9e8a7..203fbcba6 100644 --- a/web/handler/episode.go +++ b/web/handler/episode.go @@ -19,7 +19,7 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -32,7 +32,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Handler) GetEpisode(c echo.Context) error { +func (h Handler) GetEpisode(c *echo.Context) error { u := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) @@ -63,7 +63,7 @@ func (h Handler) GetEpisode(c echo.Context) error { return c.JSON(http.StatusOK, res.ConvertModelEpisode(e)) } -func (h Handler) ListEpisode(c echo.Context) error { +func (h Handler) ListEpisode(c *echo.Context) error { u := accessor.GetFromCtx(c) page, err := req.GetPageQuery(c, req.EpisodeDefaultLimit, req.EpisodeMaxLimit) diff --git a/web/handler/index/collect.go b/web/handler/index/collect.go index 2ad9c7069..afd95a6a1 100644 --- a/web/handler/index/collect.go +++ b/web/handler/index/collect.go @@ -17,7 +17,7 @@ package index import ( "errors" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/web/accessor" @@ -25,7 +25,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h *Handler) CollectIndex(c echo.Context) error { +func (h *Handler) CollectIndex(c *echo.Context) error { iid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -34,7 +34,7 @@ func (h *Handler) CollectIndex(c echo.Context) error { return h.collectIndex(c, iid, user) } -func (h *Handler) UncollectIndex(c echo.Context) error { +func (h *Handler) UncollectIndex(c *echo.Context) error { iid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -43,7 +43,7 @@ func (h *Handler) UncollectIndex(c echo.Context) error { return h.uncollectIndex(c, iid, user) } -func (h *Handler) collectIndex(c echo.Context, indexID uint32, user *accessor.Accessor) error { +func (h *Handler) collectIndex(c *echo.Context, indexID uint32, user *accessor.Accessor) error { ctx := c.Request().Context() if _, ok, err := h.getIndexWithCache(ctx, user, indexID); err != nil { @@ -64,7 +64,7 @@ func (h *Handler) collectIndex(c echo.Context, indexID uint32, user *accessor.Ac return nil } -func (h *Handler) uncollectIndex(c echo.Context, indexID uint32, user *accessor.Accessor) error { +func (h *Handler) uncollectIndex(c *echo.Context, indexID uint32, user *accessor.Accessor) error { ctx := c.Request().Context() if _, ok, err := h.getIndexWithCache(ctx, user, indexID); err != nil { return res.InternalError(c, err, "get index error") diff --git a/web/handler/index/collect_test.go b/web/handler/index/collect_test.go index 6d146049c..cc5604883 100644 --- a/web/handler/index/collect_test.go +++ b/web/handler/index/collect_test.go @@ -18,7 +18,7 @@ import ( "net/http" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/index/index.go b/web/handler/index/index.go index b1ff7a883..f39e33dac 100644 --- a/web/handler/index/index.go +++ b/web/handler/index/index.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "go.uber.org/zap" @@ -38,7 +38,7 @@ type indexCacheValue struct { CreatorID model.UserID `json:"creator_id"` } -func (h Handler) GetIndex(c echo.Context) error { +func (h Handler) GetIndex(c *echo.Context) error { user := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) @@ -152,7 +152,7 @@ func (h Handler) extractUserPrefs(user *accessor.Accessor) (model.UserID, bool) return user.ID, user.AllowNSFW() } -func (h Handler) GetIndexSubjects(c echo.Context) error { +func (h Handler) GetIndexSubjects(c *echo.Context) error { user := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) @@ -183,7 +183,7 @@ func (h Handler) GetIndexSubjects(c echo.Context) error { } func (h Handler) getIndexSubjects( - c echo.Context, id model.IndexID, subjectType uint8, page req.PageQuery, + c *echo.Context, id model.IndexID, subjectType uint8, page req.PageQuery, ) error { count, err := h.i.CountSubjects(c.Request().Context(), id, subjectType) if err != nil { @@ -221,7 +221,7 @@ func (h Handler) getIndexSubjects( }) } -func (h Handler) NewIndex(c echo.Context) error { +func (h Handler) NewIndex(c *echo.Context) error { var reqData req.IndexBasicInfo if err := c.Echo().JSONSerializer.Deserialize(c, &reqData); err != nil { return res.JSONError(c, err) @@ -256,7 +256,7 @@ func (h Handler) NewIndex(c echo.Context) error { } // 确保目录存在, 并且当前请求的用户持有权限. -func (h Handler) ensureIndexPermission(c echo.Context, indexID uint32) (*model.Index, error) { +func (h Handler) ensureIndexPermission(c *echo.Context, indexID uint32) (*model.Index, error) { accessor := accessor.GetFromCtx(c) index, err := h.i.Get(c.Request().Context(), indexID) if err != nil { @@ -271,7 +271,7 @@ func (h Handler) ensureIndexPermission(c echo.Context, indexID uint32) (*model.I return &index, nil } -func (h Handler) UpdateIndex(c echo.Context) error { +func (h Handler) UpdateIndex(c *echo.Context) error { indexID, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/index/index_test.go b/web/handler/index/index_test.go index 082c4b95f..399d77c86 100644 --- a/web/handler/index/index_test.go +++ b/web/handler/index/index_test.go @@ -19,7 +19,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/index/subject.go b/web/handler/index/subject.go index d2f849bd2..9db84b0c3 100644 --- a/web/handler/index/subject.go +++ b/web/handler/index/subject.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -26,7 +26,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Handler) AddIndexSubject(c echo.Context) error { +func (h Handler) AddIndexSubject(c *echo.Context) error { var reqData req.IndexAddSubject if err := c.Echo().JSONSerializer.Deserialize(c, &reqData); err != nil { return res.JSONError(c, err) @@ -35,7 +35,7 @@ func (h Handler) AddIndexSubject(c echo.Context) error { return h.addOrUpdateIndexSubject(c, reqData) } -func (h Handler) UpdateIndexSubject(c echo.Context) error { +func (h Handler) UpdateIndexSubject(c *echo.Context) error { var reqData req.IndexSubjectInfo if err := c.Echo().JSONSerializer.Deserialize(c, &reqData); err != nil { return res.JSONError(c, err) @@ -50,7 +50,7 @@ func (h Handler) UpdateIndexSubject(c echo.Context) error { }) } -func (h Handler) addOrUpdateIndexSubject(c echo.Context, payload req.IndexAddSubject) error { +func (h Handler) addOrUpdateIndexSubject(c *echo.Context, payload req.IndexAddSubject) error { if err := h.ensureValidStrings(payload.Comment); err != nil { return err } @@ -73,7 +73,7 @@ func (h Handler) addOrUpdateIndexSubject(c echo.Context, payload req.IndexAddSub return c.JSON(http.StatusOK, indexSubjectToResp(*indexSubject)) } -func (h Handler) RemoveIndexSubject(c echo.Context) error { +func (h Handler) RemoveIndexSubject(c *echo.Context) error { indexID, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/index/subject_test.go b/web/handler/index/subject_test.go index 3e360387a..795a349b2 100644 --- a/web/handler/index/subject_test.go +++ b/web/handler/index/subject_test.go @@ -18,7 +18,7 @@ import ( "net/http" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/person/collect.go b/web/handler/person/collect.go index d1ec9fa62..a060c673b 100644 --- a/web/handler/person/collect.go +++ b/web/handler/person/collect.go @@ -17,7 +17,7 @@ package person import ( "errors" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/collections/domain/collection" @@ -26,7 +26,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Person) CollectPerson(c echo.Context) error { +func (h Person) CollectPerson(c *echo.Context) error { pid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -36,7 +36,7 @@ func (h Person) CollectPerson(c echo.Context) error { return h.collectPerson(c, pid, uid) } -func (h Person) UncollectPerson(c echo.Context) error { +func (h Person) UncollectPerson(c *echo.Context) error { pid, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -46,7 +46,7 @@ func (h Person) UncollectPerson(c echo.Context) error { return h.uncollectPerson(c, pid, uid) } -func (h Person) collectPerson(c echo.Context, pid uint32, uid uint32) error { +func (h Person) collectPerson(c *echo.Context, pid uint32, uid uint32) error { ctx := c.Request().Context() // check if the person exists if _, err := h.person.Get(ctx, pid); err != nil { @@ -68,7 +68,7 @@ func (h Person) collectPerson(c echo.Context, pid uint32, uid uint32) error { return nil } -func (h Person) uncollectPerson(c echo.Context, pid uint32, uid uint32) error { +func (h Person) uncollectPerson(c *echo.Context, pid uint32, uid uint32) error { ctx := c.Request().Context() // check if the person exists if _, err := h.person.Get(ctx, pid); err != nil { diff --git a/web/handler/person/get.go b/web/handler/person/get.go index dd8d7179b..975ce10e5 100644 --- a/web/handler/person/get.go +++ b/web/handler/person/get.go @@ -20,7 +20,7 @@ import ( "strconv" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -28,7 +28,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Person) Get(c echo.Context) error { +func (h Person) Get(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err @@ -52,7 +52,7 @@ func (h Person) Get(c echo.Context) error { return c.JSON(http.StatusOK, res.ConvertModelPerson(r)) } -func (h Person) GetImage(c echo.Context) error { +func (h Person) GetImage(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/person/get_related_characters.go b/web/handler/person/get_related_characters.go index 2d7e16942..3da24f61f 100644 --- a/web/handler/person/get_related_characters.go +++ b/web/handler/person/get_related_characters.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -32,7 +32,7 @@ import ( ) //nolint:funlen -func (h Person) GetRelatedCharacters(c echo.Context) error { +func (h Person) GetRelatedCharacters(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/person/get_related_subjects.go b/web/handler/person/get_related_subjects.go index edf334e5a..e7ce0d95c 100644 --- a/web/handler/person/get_related_subjects.go +++ b/web/handler/person/get_related_subjects.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain" @@ -33,7 +33,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Person) GetRelatedSubjects(c echo.Context) error { +func (h Person) GetRelatedSubjects(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/revision.go b/web/handler/revision.go index 8525bc10a..df4d85330 100644 --- a/web/handler/revision.go +++ b/web/handler/revision.go @@ -20,7 +20,7 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/samber/lo" "github.com/trim21/errgo" @@ -32,7 +32,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Handler) ListPersonRevision(c echo.Context) error { +func (h Handler) ListPersonRevision(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -45,7 +45,7 @@ func (h Handler) ListPersonRevision(c echo.Context) error { return h.listPersonRevision(c, personID, page) } -func (h Handler) listPersonRevision(c echo.Context, personID model.PersonID, page req.PageQuery) error { +func (h Handler) listPersonRevision(c *echo.Context, personID model.PersonID, page req.PageQuery) error { var response = res.Paged{ Limit: page.Limit, Offset: page.Offset, @@ -91,7 +91,7 @@ func (h Handler) listPersonRevision(c echo.Context, personID model.PersonID, pag return c.JSON(http.StatusOK, response) } -func (h Handler) GetPersonRevision(c echo.Context) error { +func (h Handler) GetPersonRevision(c *echo.Context) error { id, err := gstr.ParseUint32(c.Param("id")) if err != nil || id <= 0 { return res.BadRequest(fmt.Sprintf("bad param id: %s", c.Param("id"))) @@ -113,7 +113,7 @@ func (h Handler) GetPersonRevision(c echo.Context) error { return c.JSON(http.StatusOK, convertModelPersonRevision(&r, creatorMap)) } -func (h Handler) ListCharacterRevision(c echo.Context) error { +func (h Handler) ListCharacterRevision(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -127,7 +127,7 @@ func (h Handler) ListCharacterRevision(c echo.Context) error { return h.listCharacterRevision(c, characterID, page) } -func (h Handler) listCharacterRevision(c echo.Context, characterID model.CharacterID, page req.PageQuery) error { +func (h Handler) listCharacterRevision(c *echo.Context, characterID model.CharacterID, page req.PageQuery) error { var response = res.Paged{ Limit: page.Limit, Offset: page.Offset, @@ -172,7 +172,7 @@ func (h Handler) listCharacterRevision(c echo.Context, characterID model.Charact return c.JSON(http.StatusOK, response) } -func (h Handler) GetCharacterRevision(c echo.Context) error { +func (h Handler) GetCharacterRevision(c *echo.Context) error { id, err := gstr.ParseUint32(c.Param("id")) if err != nil || id <= 0 { return res.NewError( @@ -197,7 +197,7 @@ func (h Handler) GetCharacterRevision(c echo.Context) error { return c.JSON(http.StatusOK, convertModelCharacterRevision(&r, creatorMap)) } -func (h Handler) ListSubjectRevision(c echo.Context) error { +func (h Handler) ListSubjectRevision(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -210,7 +210,7 @@ func (h Handler) ListSubjectRevision(c echo.Context) error { return h.listSubjectRevision(c, subjectID, page) } -func (h Handler) listSubjectRevision(c echo.Context, subjectID model.SubjectID, page req.PageQuery) error { +func (h Handler) listSubjectRevision(c *echo.Context, subjectID model.SubjectID, page req.PageQuery) error { var response = res.Paged{ Limit: page.Limit, Offset: page.Offset, @@ -255,7 +255,7 @@ func (h Handler) listSubjectRevision(c echo.Context, subjectID model.SubjectID, return c.JSON(http.StatusOK, response) } -func (h Handler) GetSubjectRevision(c echo.Context) error { +func (h Handler) GetSubjectRevision(c *echo.Context) error { id, err := gstr.ParseUint32(c.Param("id")) if err != nil || id == 0 { return res.BadRequest("bad param id: " + strconv.Quote(c.Param("id"))) diff --git a/web/handler/revision_episode.go b/web/handler/revision_episode.go index 95f152866..773be09af 100644 --- a/web/handler/revision_episode.go +++ b/web/handler/revision_episode.go @@ -20,7 +20,7 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/samber/lo" "github.com/trim21/errgo" @@ -31,7 +31,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Handler) GetEpisodeRevision(c echo.Context) error { +func (h Handler) GetEpisodeRevision(c *echo.Context) error { id, err := gstr.ParseUint32(c.Param("id")) if err != nil || id <= 0 { return res.NewError( @@ -56,7 +56,7 @@ func (h Handler) GetEpisodeRevision(c echo.Context) error { return c.JSON(http.StatusOK, convertModelEpisodeRevision(&r, creatorMap)) } -func (h Handler) ListEpisodeRevision(c echo.Context) error { +func (h Handler) ListEpisodeRevision(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -70,7 +70,7 @@ func (h Handler) ListEpisodeRevision(c echo.Context) error { return h.listEpisodeRevision(c, episodeID, page) } -func (h Handler) listEpisodeRevision(c echo.Context, episodeID model.EpisodeID, page req.PageQuery) error { +func (h Handler) listEpisodeRevision(c *echo.Context, episodeID model.EpisodeID, page req.PageQuery) error { var response = res.Paged{ Limit: page.Limit, Offset: page.Offset, diff --git a/web/handler/search.go b/web/handler/search.go index cf0aeec0c..57f9dec34 100644 --- a/web/handler/search.go +++ b/web/handler/search.go @@ -15,19 +15,19 @@ package handler import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/internal/search" ) -func (h Handler) SearchSubjects(c echo.Context) error { +func (h Handler) SearchSubjects(c *echo.Context) error { return h.search.Handle(c, search.SearchTargetSubject) //nolint:wrapcheck } -func (h Handler) SearchCharacters(c echo.Context) error { +func (h Handler) SearchCharacters(c *echo.Context) error { return h.search.Handle(c, search.SearchTargetCharacter) //nolint:wrapcheck } -func (h Handler) SearchPersons(c echo.Context) error { +func (h Handler) SearchPersons(c *echo.Context) error { return h.search.Handle(c, search.SearchTargetPerson) //nolint:wrapcheck } diff --git a/web/handler/subject/browse.go b/web/handler/subject/browse.go index 1e08f763d..ed518544b 100644 --- a/web/handler/subject/browse.go +++ b/web/handler/subject/browse.go @@ -17,7 +17,7 @@ package subject import ( "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/internal/model" @@ -29,7 +29,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Subject) Browse(c echo.Context) error { +func (h Subject) Browse(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -76,7 +76,7 @@ func (h Subject) Browse(c echo.Context) error { return c.JSON(http.StatusOK, res.Paged{Data: data, Total: count, Limit: page.Limit, Offset: page.Offset}) } -func parseBrowseQuery(c echo.Context) (*subject.BrowseFilter, error) { +func parseBrowseQuery(c *echo.Context) (*subject.BrowseFilter, error) { filter := subject.BrowseFilter{} u := accessor.GetFromCtx(c) filter.NSFW = null.Bool{Value: false, Set: !u.AllowNSFW()} @@ -129,7 +129,7 @@ func parseBrowseQuery(c echo.Context) (*subject.BrowseFilter, error) { return &filter, nil } -func GetYearQuery(c echo.Context) (null.Int32, error) { +func GetYearQuery(c *echo.Context) (null.Int32, error) { yearStr := c.QueryParam("year") if yearStr == "" { return null.Int32{}, nil @@ -144,7 +144,7 @@ func GetYearQuery(c echo.Context) (null.Int32, error) { } } -func GetMonthQuery(c echo.Context) (null.Int8, error) { +func GetMonthQuery(c *echo.Context) (null.Int8, error) { monthStr := c.QueryParam("month") if monthStr == "" { return null.Int8{}, nil diff --git a/web/handler/subject/get.go b/web/handler/subject/get.go index 7e9c41419..6e6915f49 100644 --- a/web/handler/subject/get.go +++ b/web/handler/subject/get.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -34,7 +34,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Subject) Get(c echo.Context) error { +func (h Subject) Get(c *echo.Context) error { u := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) @@ -74,7 +74,7 @@ func (h Subject) Get(c echo.Context) error { return c.JSON(http.StatusOK, res.ToSubjectV0(s, totalEpisode, metaTags)) } -func (h Subject) GetImage(c echo.Context) error { +func (h Subject) GetImage(c *echo.Context) error { u := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) diff --git a/web/handler/subject/get_test.go b/web/handler/subject/get_test.go index 08ab1e9ec..1c0419e99 100644 --- a/web/handler/subject/get_test.go +++ b/web/handler/subject/get_test.go @@ -19,7 +19,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" @@ -45,7 +45,7 @@ func TestSubject_Get(t *testing.T) { e := echo.New() g := e.Group("", func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { c.Set(ctxkey.User, &accessor.Accessor{Auth: auth.Auth{Login: true, RegTime: time.Time{}, ID: 1}, Login: true}) return next(c) } diff --git a/web/handler/subject/related_characters.go b/web/handler/subject/related_characters.go index 563522028..7d3ac8f8b 100644 --- a/web/handler/subject/related_characters.go +++ b/web/handler/subject/related_characters.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/samber/lo" "github.com/trim21/errgo" @@ -36,7 +36,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Subject) GetRelatedCharacters(c echo.Context) error { +func (h Subject) GetRelatedCharacters(c *echo.Context) error { u := accessor.GetFromCtx(c) subjectID, err := req.ParseID(c.Param("id")) if err != nil { diff --git a/web/handler/subject/related_persons.go b/web/handler/subject/related_persons.go index d8da0a9fc..5ed8212cd 100644 --- a/web/handler/subject/related_persons.go +++ b/web/handler/subject/related_persons.go @@ -19,7 +19,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -31,7 +31,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Subject) GetRelatedPersons(c echo.Context) error { +func (h Subject) GetRelatedPersons(c *echo.Context) error { u := accessor.GetFromCtx(c) id, err := req.ParseID(c.Param("id")) diff --git a/web/handler/subject/related_subjects.go b/web/handler/subject/related_subjects.go index 4cfaf284b..c7d8f462e 100644 --- a/web/handler/subject/related_subjects.go +++ b/web/handler/subject/related_subjects.go @@ -20,7 +20,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain" @@ -35,7 +35,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h Subject) GetRelatedSubjects(c echo.Context) error { +func (h Subject) GetRelatedSubjects(c *echo.Context) error { id, err := req.ParseID(c.Param("id")) if err != nil { return err diff --git a/web/handler/subject/subject.go b/web/handler/subject/subject.go index 523455db3..d3c38eece 100644 --- a/web/handler/subject/subject.go +++ b/web/handler/subject/subject.go @@ -15,7 +15,7 @@ package subject import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/internal/character" "github.com/bangumi/server/internal/episode" diff --git a/web/handler/user/collection_test.go b/web/handler/user/collection_test.go index 8ceb3e5a9..e1a3b581a 100644 --- a/web/handler/user/collection_test.go +++ b/web/handler/user/collection_test.go @@ -20,7 +20,7 @@ import ( "net/http" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/user/get.go b/web/handler/user/get.go index 5c32d9f5d..5f298b6ff 100644 --- a/web/handler/user/get.go +++ b/web/handler/user/get.go @@ -19,14 +19,14 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/web/res" ) -func (h User) Get(c echo.Context) error { +func (h User) Get(c *echo.Context) error { username := c.Param("username") if username == "" { return res.BadRequest("missing require parameters `username`") @@ -49,7 +49,7 @@ func (h User) Get(c echo.Context) error { return c.JSON(http.StatusOK, r) } -func (h User) GetAvatar(c echo.Context) error { +func (h User) GetAvatar(c *echo.Context) error { username := c.Param("username") if username == "" { return res.BadRequest("missing require parameters `username`") diff --git a/web/handler/user/get_character_collection.go b/web/handler/user/get_character_collection.go index 42657e601..c36b70b52 100644 --- a/web/handler/user/get_character_collection.go +++ b/web/handler/user/get_character_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -28,7 +28,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) GetCharacterCollection(c echo.Context) error { +func (h User) GetCharacterCollection(c *echo.Context) error { username := c.Param("username") if username == "" { return res.BadRequest("missing require parameters `username`") @@ -42,7 +42,7 @@ func (h User) GetCharacterCollection(c echo.Context) error { return h.getCharacterCollection(c, username, characterID) } -func (h User) getCharacterCollection(c echo.Context, username string, characterID model.CharacterID) error { +func (h User) getCharacterCollection(c *echo.Context, username string, characterID model.CharacterID) error { const notFoundMessage = "character is not collected by user" character, err := h.character.Get(c.Request().Context(), characterID) diff --git a/web/handler/user/get_episode_collection.go b/web/handler/user/get_episode_collection.go index 533039c3c..c2cc88e6f 100644 --- a/web/handler/user/get_episode_collection.go +++ b/web/handler/user/get_episode_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -37,7 +37,7 @@ type ResUserEpisodeCollection struct { UpdatedAt int64 `json:"updated_at"` } -func (h User) GetEpisodeCollection(c echo.Context) error { +func (h User) GetEpisodeCollection(c *echo.Context) error { v := accessor.GetFromCtx(c) episodeID, err := req.ParseID(c.Param("episode_id")) if err != nil { @@ -67,7 +67,7 @@ func (h User) GetEpisodeCollection(c echo.Context) error { } // GetSubjectEpisodeCollection return episodes with user's collection info. -func (h User) GetSubjectEpisodeCollection(c echo.Context) error { +func (h User) GetSubjectEpisodeCollection(c *echo.Context) error { v := accessor.GetFromCtx(c) subjectID, err := req.ParseID(c.Param("subject_id")) if err != nil { diff --git a/web/handler/user/get_episode_collection_test.go b/web/handler/user/get_episode_collection_test.go index 7439ba27f..1dacb7683 100644 --- a/web/handler/user/get_episode_collection_test.go +++ b/web/handler/user/get_episode_collection_test.go @@ -18,7 +18,7 @@ import ( "net/http" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/handler/user/get_person_collection.go b/web/handler/user/get_person_collection.go index 1240cb8a4..2842cfc09 100644 --- a/web/handler/user/get_person_collection.go +++ b/web/handler/user/get_person_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -28,7 +28,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) GetPersonCollection(c echo.Context) error { +func (h User) GetPersonCollection(c *echo.Context) error { username := c.Param("username") if username == "" { return res.BadRequest("missing require parameters `username`") @@ -42,7 +42,7 @@ func (h User) GetPersonCollection(c echo.Context) error { return h.getPersonCollection(c, username, personID) } -func (h User) getPersonCollection(c echo.Context, username string, personID model.PersonID) error { +func (h User) getPersonCollection(c *echo.Context, username string, personID model.PersonID) error { const notFoundMessage = "person is not collected by user" person, err := h.person.Get(c.Request().Context(), personID) diff --git a/web/handler/user/get_subject_collection.go b/web/handler/user/get_subject_collection.go index 9c104c078..9de611222 100644 --- a/web/handler/user/get_subject_collection.go +++ b/web/handler/user/get_subject_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -30,7 +30,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) GetSubjectCollection(c echo.Context) error { +func (h User) GetSubjectCollection(c *echo.Context) error { username := c.Param("username") if username == "" { return res.BadRequest("missing require parameters `username`") @@ -44,7 +44,7 @@ func (h User) GetSubjectCollection(c echo.Context) error { return h.getSubjectCollection(c, username, subjectID) } -func (h User) getSubjectCollection(c echo.Context, username string, subjectID model.SubjectID) error { +func (h User) getSubjectCollection(c *echo.Context, username string, subjectID model.SubjectID) error { const notFoundMessage = "subject is not collected by user" v := accessor.GetFromCtx(c) diff --git a/web/handler/user/list_character_collections.go b/web/handler/user/list_character_collections.go index 38309bc53..83b5eab1d 100644 --- a/web/handler/user/list_character_collections.go +++ b/web/handler/user/list_character_collections.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -30,7 +30,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) ListCharacterCollection(c echo.Context) error { +func (h User) ListCharacterCollection(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -53,7 +53,7 @@ func (h User) ListCharacterCollection(c echo.Context) error { return h.listCharacterCollection(c, u, page) } -func (h User) listCharacterCollection(c echo.Context, u user.User, page req.PageQuery) error { +func (h User) listCharacterCollection(c *echo.Context, u user.User, page req.PageQuery) error { count, err := h.collect.CountPersonCollections(c.Request().Context(), u.ID, collection.PersonCollectCategoryCharacter) if err != nil { return errgo.Wrap(err, "failed to count user's character collections") diff --git a/web/handler/user/list_person_collections.go b/web/handler/user/list_person_collections.go index b48f1da4d..9aeea15c8 100644 --- a/web/handler/user/list_person_collections.go +++ b/web/handler/user/list_person_collections.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -30,7 +30,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) ListPersonCollection(c echo.Context) error { +func (h User) ListPersonCollection(c *echo.Context) error { page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { return err @@ -53,7 +53,7 @@ func (h User) ListPersonCollection(c echo.Context) error { return h.listPersonCollection(c, u, page) } -func (h User) listPersonCollection(c echo.Context, u user.User, page req.PageQuery) error { +func (h User) listPersonCollection(c *echo.Context, u user.User, page req.PageQuery) error { count, err := h.collect.CountPersonCollections(c.Request().Context(), u.ID, collection.PersonCollectCategoryPerson) if err != nil { return errgo.Wrap(err, "failed to count user's person collections") diff --git a/web/handler/user/list_subject_collections.go b/web/handler/user/list_subject_collections.go index 7273e28a8..d2cc11f7d 100644 --- a/web/handler/user/list_subject_collections.go +++ b/web/handler/user/list_subject_collections.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -32,7 +32,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) ListSubjectCollection(c echo.Context) error { +func (h User) ListSubjectCollection(c *echo.Context) error { v := accessor.GetFromCtx(c) page, err := req.GetPageQuery(c, req.DefaultPageLimit, req.DefaultMaxPageLimit) if err != nil { @@ -69,7 +69,7 @@ func (h User) ListSubjectCollection(c echo.Context) error { } func (h User) listCollection( - c echo.Context, + c *echo.Context, u user.User, subjectType model.SubjectType, collectionType collection.SubjectCollection, diff --git a/web/handler/user/me.go b/web/handler/user/me.go index ca4fecc8e..7883c442f 100644 --- a/web/handler/user/me.go +++ b/web/handler/user/me.go @@ -18,7 +18,7 @@ import ( "net/http" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/internal/model" @@ -39,7 +39,7 @@ type CurrentUser struct { TimeOffset int8 `json:"time_offset"` } -func (h User) GetCurrent(c echo.Context) error { +func (h User) GetCurrent(c *echo.Context) error { u := accessor.GetFromCtx(c) if !u.Login || u.ID == 0 { return res.Unauthorized("need Login") diff --git a/web/handler/user/patch_subject_collection.go b/web/handler/user/patch_subject_collection.go index 72d9ab5de..67a4d8418 100644 --- a/web/handler/user/patch_subject_collection.go +++ b/web/handler/user/patch_subject_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/ctrl" @@ -31,7 +31,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) PatchSubjectCollection(c echo.Context) error { +func (h User) PatchSubjectCollection(c *echo.Context) error { subjectID, err := req.ParseID(c.Param("subject_id")) if err != nil { return err @@ -50,7 +50,7 @@ func (h User) PatchSubjectCollection(c echo.Context) error { } func (h User) patchSubjectCollection( - c echo.Context, + c *echo.Context, subjectID model.SubjectID, r req.SubjectEpisodeCollectionPatch, allowCreate bool, // 如果不存在 record 是否允许创建 @@ -71,7 +71,7 @@ func (h User) patchSubjectCollection( } func (h User) updateOrCreateSubjectCollection( - c echo.Context, + c *echo.Context, subjectID model.SubjectID, r req.SubjectEpisodeCollectionPatch, allowCreate bool, // 如果不存在 record 是否允许创建 diff --git a/web/handler/user/patch_subject_collection_test.go b/web/handler/user/patch_subject_collection_test.go index 1cc40c5cd..44cf7ecb1 100644 --- a/web/handler/user/patch_subject_collection_test.go +++ b/web/handler/user/patch_subject_collection_test.go @@ -22,7 +22,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/samber/lo" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -173,7 +173,7 @@ func TestUser_PatchSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"rate": 11}). + BodyJSON(map[string]any{"rate": 11}). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -185,7 +185,7 @@ func TestUser_PatchSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"type": 0}). + BodyJSON(map[string]any{"type": 0}). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -197,7 +197,7 @@ func TestUser_PatchSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"tags": "vv qq"}). + BodyJSON(map[string]any{"tags": "vv qq"}). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -209,7 +209,7 @@ func TestUser_PatchSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"comment": strings.Repeat("vv qq", 200)}). + BodyJSON(map[string]any{"comment": strings.Repeat("vv qq", 200)}). Patch(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) diff --git a/web/handler/user/post_subject_collection.go b/web/handler/user/post_subject_collection.go index eb77d978b..652addd80 100644 --- a/web/handler/user/post_subject_collection.go +++ b/web/handler/user/post_subject_collection.go @@ -18,7 +18,7 @@ import ( "errors" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" @@ -26,7 +26,7 @@ import ( "github.com/bangumi/server/web/res" ) -func (h User) PostSubjectCollection(c echo.Context) error { +func (h User) PostSubjectCollection(c *echo.Context) error { subjectID, err := req.ParseID(c.Param("subject_id")) if err != nil { return err diff --git a/web/handler/user/post_subject_collection_test.go b/web/handler/user/post_subject_collection_test.go index 2a399c40b..d36a5df65 100644 --- a/web/handler/user/post_subject_collection_test.go +++ b/web/handler/user/post_subject_collection_test.go @@ -22,7 +22,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/samber/lo" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" @@ -208,7 +208,7 @@ func TestUser_PostSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"rate": 11}). + BodyJSON(map[string]any{"rate": 11}). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -220,7 +220,7 @@ func TestUser_PostSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"type": 0}). + BodyJSON(map[string]any{"type": 0}). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -232,7 +232,7 @@ func TestUser_PostSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"tags": "vv qq"}). + BodyJSON(map[string]any{"tags": "vv qq"}). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) @@ -244,7 +244,7 @@ func TestUser_PostSubjectCollection_bad(t *testing.T) { htest.New(t, app). Header(echo.HeaderAuthorization, "Bearer t"). - BodyJSON(echo.Map{"comment": strings.Repeat("vv qq", 200)}). + BodyJSON(map[string]any{"comment": strings.Repeat("vv qq", 200)}). Post(fmt.Sprintf("/v0/users/-/collections/%d", sid)). ExpectCode(http.StatusBadRequest) }) diff --git a/web/handler/user/update_episode_collection.go b/web/handler/user/update_episode_collection.go index 9845d0444..047b795c2 100644 --- a/web/handler/user/update_episode_collection.go +++ b/web/handler/user/update_episode_collection.go @@ -19,7 +19,7 @@ import ( "fmt" "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/trim21/errgo" "github.com/bangumi/server/ctrl" @@ -56,7 +56,7 @@ func (r ReqEpisodeCollectionBatch) Validate() error { // PatchEpisodeCollectionBatch // // /v0/users/-/collections/:subject_id/episodes" -func (h User) PatchEpisodeCollectionBatch(c echo.Context) error { +func (h User) PatchEpisodeCollectionBatch(c *echo.Context) error { var r ReqEpisodeCollectionBatch if err := c.Echo().JSONSerializer.Deserialize(c, &r); err != nil { return res.JSONError(c, err) @@ -92,7 +92,7 @@ func (h User) PatchEpisodeCollectionBatch(c echo.Context) error { // PutEpisodeCollection // // /v0/users/-/collections/-/episodes/:episode_id -func (h User) PutEpisodeCollection(c echo.Context) error { +func (h User) PutEpisodeCollection(c *echo.Context) error { episodeID, err := req.ParseID(c.Param("episode_id")) if err != nil { return err diff --git a/web/handler/user/update_episode_collection_test.go b/web/handler/user/update_episode_collection_test.go index 5c0aaf942..25b0e4038 100644 --- a/web/handler/user/update_episode_collection_test.go +++ b/web/handler/user/update_episode_collection_test.go @@ -21,7 +21,7 @@ import ( "testing" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/trim21/htest" diff --git a/web/index.go b/web/index.go index 060330f16..99c1be5f8 100644 --- a/web/index.go +++ b/web/index.go @@ -18,7 +18,7 @@ import ( _ "embed" //nolint:revive "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/config/env" ) @@ -28,12 +28,12 @@ var indexPageHTML string func indexPage() echo.HandlerFunc { if env.Production { - return func(c echo.Context) error { + return func(c *echo.Context) error { return c.Redirect(http.StatusFound, "https://github.com/bangumi/") } } - return func(c echo.Context) error { + return func(c *echo.Context) error { return c.HTML(http.StatusOK, indexPageHTML) } } diff --git a/web/json.go b/web/json.go index 484f8a8ed..f6a3d1cd7 100644 --- a/web/json.go +++ b/web/json.go @@ -17,7 +17,7 @@ package web import ( "github.com/bytedance/sonic/decoder" "github.com/bytedance/sonic/encoder" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" ) var _ echo.JSONSerializer = jsonSerializer{} @@ -25,7 +25,7 @@ var _ echo.JSONSerializer = jsonSerializer{} type jsonSerializer struct { } -func (j jsonSerializer) Serialize(c echo.Context, i any, indent string) error { +func (j jsonSerializer) Serialize(c *echo.Context, i any, indent string) error { enc := encoder.NewStreamEncoder(c.Response()) if indent != "" { enc.SetIndent("", indent) @@ -33,7 +33,7 @@ func (j jsonSerializer) Serialize(c echo.Context, i any, indent string) error { return enc.Encode(i) } -func (j jsonSerializer) Deserialize(c echo.Context, i any) error { +func (j jsonSerializer) Deserialize(c *echo.Context, i any) error { dec := decoder.NewStreamDecoder(c.Request().Body) dec.DisallowUnknownFields() return dec.Decode(i) diff --git a/web/mw/middleware.go b/web/mw/middleware.go index e29d9f746..3fcb94bba 100644 --- a/web/mw/middleware.go +++ b/web/mw/middleware.go @@ -15,7 +15,7 @@ package mw import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/web/accessor" "github.com/bangumi/server/web/res" @@ -24,7 +24,7 @@ import ( var errNeedLogin = res.Unauthorized("this API need authorization") func NeedLogin(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { if u := accessor.GetFromCtx(c); !u.Login { return errNeedLogin } diff --git a/web/mw/origin/new.go b/web/mw/origin/new.go index 2176c264f..9a07bc3f3 100644 --- a/web/mw/origin/new.go +++ b/web/mw/origin/new.go @@ -17,7 +17,7 @@ package origin import ( "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/config/env" "github.com/bangumi/server/web/res" @@ -28,7 +28,7 @@ func New(allowed string) echo.MiddlewareFunc { return dev(allowed) } return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { if c.Request().Method == http.MethodGet { return next(c) } @@ -48,7 +48,7 @@ func New(allowed string) echo.MiddlewareFunc { func dev(_ string) echo.MiddlewareFunc { return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { return next(c) } } diff --git a/web/mw/rate-limit.go b/web/mw/rate-limit.go index 26ee86fa6..ab33e268c 100644 --- a/web/mw/rate-limit.go +++ b/web/mw/rate-limit.go @@ -23,7 +23,7 @@ import ( "strconv" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/redis/rueidis" "go.uber.org/zap" @@ -46,7 +46,7 @@ func RateLimit(cfg config.AppConfig, r rueidis.Client) echo.MiddlewareFunc { } return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { ip := c.RealIP() u := accessor.GetFromCtx(c) diff --git a/web/mw/recovery/dev.go b/web/mw/recovery/dev.go index c93928320..f708bb820 100644 --- a/web/mw/recovery/dev.go +++ b/web/mw/recovery/dev.go @@ -23,7 +23,7 @@ import ( "strconv" "strings" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "go.uber.org/zap" "github.com/bangumi/server/internal/pkg/logger" @@ -37,11 +37,11 @@ func dev() echo.MiddlewareFunc { log := logger.Copy().WithOptions(zap.AddCallerSkip(2)) // Return new handler return func(next echo.HandlerFunc) echo.HandlerFunc { //nolint:nonamedreturns - return func(c echo.Context) (err error) { + return func(c *echo.Context) (err error) { defer func() { if r := recover(); r != nil { c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTMLCharsetUTF8) - c.Response().Status = http.StatusInternalServerError + c.Response().WriteHeader(http.StatusInternalServerError) _, err = fmt.Fprintf(c.Response(), _debugHTML, r, takeStacktrace(2)) log.Error("panic: " + fmt.Sprintln(r)) diff --git a/web/mw/recovery/middle_test.go b/web/mw/recovery/middle_test.go index 97b8ecd3f..ca6b9d91b 100644 --- a/web/mw/recovery/middle_test.go +++ b/web/mw/recovery/middle_test.go @@ -20,7 +20,7 @@ import ( "net/http/httptest" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/require" "github.com/bangumi/server/web/mw/recovery" @@ -32,7 +32,7 @@ func TestPanicMiddleware(t *testing.T) { app.Use(recovery.New()) - app.GET("/", func(c echo.Context) error { + app.GET("/", func(c *echo.Context) error { panic("errInternal") }) diff --git a/web/mw/recovery/new.go b/web/mw/recovery/new.go index acb3f1202..1dde7a5a9 100644 --- a/web/mw/recovery/new.go +++ b/web/mw/recovery/new.go @@ -18,7 +18,7 @@ import ( "errors" "fmt" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "go.uber.org/zap" "github.com/bangumi/server/config/env" @@ -37,7 +37,7 @@ func New() echo.MiddlewareFunc { log := logger.Named("http.recovery") // Return new handler return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) (err error) { + return func(c *echo.Context) (err error) { defer func() { if r := recover(); r != nil { log.Error("recovery", zap.Any("recovery", r), logger.Ctx(c.Request().Context())) diff --git a/web/mw/referer/new.go b/web/mw/referer/new.go index 703f95c1b..cde70d032 100644 --- a/web/mw/referer/new.go +++ b/web/mw/referer/new.go @@ -17,7 +17,7 @@ package referer import ( "strings" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/config/env" "github.com/bangumi/server/web/res" @@ -28,7 +28,7 @@ const HeaderReferer = "Referer" func New(referer string) echo.MiddlewareFunc { if env.Production { return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { ref := c.Request().Header.Get(HeaderReferer) if ref == "" || strings.HasPrefix(ref, referer) { return next(c) @@ -40,7 +40,7 @@ func New(referer string) echo.MiddlewareFunc { } return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { return next(c) } } diff --git a/web/mw/ua/new.go b/web/mw/ua/new.go index 8a89797f4..948ee2c94 100644 --- a/web/mw/ua/new.go +++ b/web/mw/ua/new.go @@ -19,7 +19,7 @@ import ( "strconv" "strings" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/web/res" ) @@ -31,7 +31,7 @@ const forbiddenMessage = "using HTTP request library's default User-Agent is for "https://github.com/bangumi/api/blob/master/docs-raw/user%20agent.md" func DisableDefaultHTTPLibrary(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { u := c.Request().UserAgent() if u == "" { return res.Forbidden("Please set a 'User-Agent'") @@ -48,7 +48,7 @@ func DisableDefaultHTTPLibrary(next echo.HandlerFunc) echo.HandlerFunc { // DisableBrokenUA disallow known broken app send infinite requests. func DisableBrokenUA(next echo.HandlerFunc) echo.HandlerFunc { aniPattern := regexp.MustCompile(`^open-ani/ani/(\d+\.\d+\.\d+)\b`) - return func(c echo.Context) error { + return func(c *echo.Context) error { u := c.Request().UserAgent() if u == "" { return res.Forbidden("Please set a 'User-Agent'") diff --git a/web/new.go b/web/new.go index 765ba8b24..a02ed4091 100644 --- a/web/new.go +++ b/web/new.go @@ -25,8 +25,8 @@ import ( "time" "github.com/google/uuid" - "github.com/labstack/echo/v4" - "github.com/labstack/echo/v4/middleware" + "github.com/labstack/echo/v5" + "github.com/labstack/echo/v5/middleware" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/trim21/errgo" @@ -47,8 +47,6 @@ const headerServerVersion = "x-server-version" func New() *echo.Echo { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() - app.HideBanner = true - app.HidePort = true app.JSONSerializer = jsonSerializer{} @@ -65,8 +63,8 @@ func New() *echo.Echo { if env.Development { // fasthttp bug, it uses an internal global variable and causing data race here app.Static("/openapi/", "./openapi/") - app.GET("/debug", func(c echo.Context) error { - return c.JSON(http.StatusOK, echo.Map{ + app.GET("/debug", func(c *echo.Context) error { + return c.JSON(http.StatusOK, map[string]any{ "ip": c.RealIP(), }) }) @@ -77,19 +75,17 @@ func New() *echo.Echo { app.Use(recovery.New()) app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { metrics.RequestCount.Inc() start := time.Now() c.Response().Header().Set(headerServerVersion, config.Version) - c.Response().Before(func() { - sub := time.Since(start) - metrics.RequestHistogram.Observe(sub.Seconds()) - c.Response().Header().Set(headerProcessTime, strconv.FormatInt(sub.Milliseconds(), 10)) - }) - err := next(c) + sub := time.Since(start) + metrics.RequestHistogram.Observe(sub.Seconds()) + c.Response().Header().Set(headerProcessTime, strconv.FormatInt(sub.Milliseconds(), 10)) + return err } }) @@ -113,7 +109,7 @@ func New() *echo.Echo { })) app.Use(func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { ctx, cancel := context.WithTimeout(context.WithoutCancel(c.Request().Context()), time.Minute) defer cancel() @@ -133,7 +129,7 @@ func New() *echo.Echo { } }) - app.GET("/openapi", func(c echo.Context) error { + app.GET("/openapi", func(c *echo.Context) error { return c.Redirect(http.StatusFound, "/openapi/") }) @@ -145,8 +141,6 @@ func New() *echo.Echo { func NewTestingApp() *echo.Echo { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() - app.HideBanner = true - app.HidePort = true app.Use(genFakeRequestID) diff --git a/web/new_internal_test.go b/web/new_internal_test.go index 21b2c766f..901966740 100644 --- a/web/new_internal_test.go +++ b/web/new_internal_test.go @@ -22,7 +22,7 @@ import ( "net/http/httptest" "testing" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/stretchr/testify/require" "github.com/bangumi/server/web/res" @@ -34,7 +34,7 @@ func TestDefaultErrorHandler_resError(t *testing.T) { app := echo.New() app.HTTPErrorHandler = getDefaultErrorHandler() - app.GET("/", func(c echo.Context) error { + app.GET("/", func(c *echo.Context) error { return res.BadRequest("mm") }) @@ -59,7 +59,7 @@ func TestDefaultErrorHandler_internal(t *testing.T) { app.HTTPErrorHandler = getDefaultErrorHandler() - app.GET("/", func(c echo.Context) error { + app.GET("/", func(c *echo.Context) error { return errors.New("mm") }) diff --git a/web/req/content_type.go b/web/req/content_type.go index 1bc1aa0b9..284d14b78 100644 --- a/web/req/content_type.go +++ b/web/req/content_type.go @@ -17,13 +17,13 @@ package req import ( "net/http" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/web/res" ) func JSON(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { + return func(c *echo.Context) error { contentType := c.Request().Header.Get(echo.HeaderContentType) //nolint:staticcheck if contentType == echo.MIMEApplicationJSON || contentType == echo.MIMEApplicationJSONCharsetUTF8 { diff --git a/web/req/page.go b/web/req/page.go index 18e719ac1..d74c53986 100644 --- a/web/req/page.go +++ b/web/req/page.go @@ -17,7 +17,7 @@ package req import ( "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/web/res" ) @@ -36,7 +36,7 @@ func (q PageQuery) Check(count int64) error { } // GetPageQuerySoftLimit apply soft limit on query without error. -func GetPageQuerySoftLimit(c echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { +func GetPageQuerySoftLimit(c *echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { q := PageQuery{Limit: defaultLimit} var err error @@ -71,7 +71,7 @@ func GetPageQuerySoftLimit(c echo.Context, defaultLimit int, maxLimit int) (Page return q, nil } -func GetPageQuery(c echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { +func GetPageQuery(c *echo.Context, defaultLimit int, maxLimit int) (PageQuery, error) { q := PageQuery{Limit: defaultLimit} var err error diff --git a/web/res/cache-control.go b/web/res/cache-control.go index c5623f1b3..a5231ceb9 100644 --- a/web/res/cache-control.go +++ b/web/res/cache-control.go @@ -19,7 +19,7 @@ import ( "fmt" "time" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" ) type CacheControlParams struct { @@ -37,6 +37,6 @@ func (c CacheControlParams) String() string { return buf.String() } -func SetCacheControl(c echo.Context, val CacheControlParams) { +func SetCacheControl(c *echo.Context, val CacheControlParams) { c.Response().Header().Set(echo.HeaderCacheControl, val.String()) } diff --git a/web/res/error.go b/web/res/error.go index 94c1e5260..fa9c04062 100644 --- a/web/res/error.go +++ b/web/res/error.go @@ -20,7 +20,7 @@ import ( "net/http" "strconv" - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/bangumi/server/web/req/cf" "github.com/bangumi/server/web/util" @@ -52,7 +52,7 @@ func (e HTTPError) Error() string { } //nolint:errorlint -func JSONError(c echo.Context, err error) error { +func JSONError(c *echo.Context, err error) error { if ute, ok := err.(*json.UnmarshalTypeError); ok { return c.JSON(http.StatusBadRequest, Error{ Title: "JSON Error", @@ -75,7 +75,7 @@ func JSONError(c echo.Context, err error) error { }) } -func InternalError(c echo.Context, err error, message string) error { +func InternalError(c *echo.Context, err error, message string) error { return c.JSON(http.StatusInternalServerError, Error{ Title: "Internal Server Error", Description: message, diff --git a/web/routes.go b/web/routes.go index f1af85e29..0e09d8249 100644 --- a/web/routes.go +++ b/web/routes.go @@ -15,7 +15,7 @@ package web import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" "github.com/redis/rueidis" "github.com/bangumi/server/web/handler" diff --git a/web/util/detail.go b/web/util/detail.go index d684dfdf3..41b978961 100644 --- a/web/util/detail.go +++ b/web/util/detail.go @@ -15,10 +15,10 @@ package util import ( - "github.com/labstack/echo/v4" + "github.com/labstack/echo/v5" ) -func DetailWithErr(c echo.Context, err error) D { +func DetailWithErr(c *echo.Context, err error) D { return D{ Path: c.Request().URL.Path, Error: err.Error(), @@ -27,7 +27,7 @@ func DetailWithErr(c echo.Context, err error) D { } } -func Detail(c echo.Context) D { +func Detail(c *echo.Context) D { return D{ Path: c.Request().URL.Path, Method: c.Request().Method, From 0050017604ca3ee034f18fb6feec3cda06b8f3db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 10:57:22 +0800 Subject: [PATCH 853/888] build(deps): update npm (#1043) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 99f8a9015..0f1959b6a 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,10 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^15.2.2", + "@apidevtools/json-schema-ref-parser": "^15.3.4", "js-yaml": "^4.1.1", "lodash": "^4.17.23", - "yaml": "^2.8.2" + "yaml": "^2.8.3" }, "devDependencies": { "@types/json-schema": "^7.0.15", diff --git a/yarn.lock b/yarn.lock index efb2c5db3..ccd520bb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^15.2.2": - version "15.2.2" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.2.2.tgz#2eb1efe8534c17125901c172e49485c7179835ce" - integrity sha512-54fvjSwWiBTdVviiUItOCeyxtPSBmCrSEjlOl8XFEDuYD3lXY1lOBWKim/WJ3i1EYzdGx6rSOjK5KRDMppLI4Q== +"@apidevtools/json-schema-ref-parser@^15.3.4": + version "15.3.4" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.4.tgz#6d70241a493989cfd325a371c233370525b75d36" + integrity sha512-iR1M4qCw4MzRMcA8DP7Kwy2W65+qKyROL0k/OER326IiFbR5bRmnKGmHZsrX8S3e3ZtnRoPUvr8iBMa1gys/UQ== dependencies: js-yaml "^4.1.1" @@ -256,10 +256,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yaml@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.2.tgz#5694f25eca0ce9c3e7a9d9e00ce0ddabbd9e35c5" - integrity sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A== +yaml@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d" + integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg== yargs-parser@^21.1.1: version "21.1.1" From 015731b83fc45bf47abaa4c10c40d50d9e3916d6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 12:17:02 +0800 Subject: [PATCH 854/888] build(deps): npm lock file maintenance (#1048) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ccd520bb4..de6396740 100644 --- a/yarn.lock +++ b/yarn.lock @@ -252,9 +252,9 @@ y18n@^5.0.5: integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + version "1.10.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.3.tgz#76e407ed95c42684fb8e14641e5de62fe65bbcb3" + integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== yaml@^2.8.3: version "2.8.3" From 7287d9b226c7a36dd9437a72d6595f72bb6f3f37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:56:57 +0000 Subject: [PATCH 855/888] build(deps): update aws-sdk-go-v2 monorepo (#1052) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 18 +++++++++--------- go.sum | 36 ++++++++++++++++++------------------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 9d0692b59..6f3a99fc6 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.41.4 - github.com/aws/aws-sdk-go-v2/credentials v1.19.12 - github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2 + github.com/aws/aws-sdk-go-v2 v1.41.5 + github.com/aws/aws-sdk-go-v2/credentials v1.19.13 + github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -51,13 +51,13 @@ require ( github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 // indirect github.com/aws/smithy-go v1.24.2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.3.1 // indirect diff --git a/go.sum b/go.sum index 674d8abf8..3bd0767ba 100644 --- a/go.sum +++ b/go.sum @@ -8,28 +8,28 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.41.4 h1:10f50G7WyU02T56ox1wWXq+zTX9I1zxG46HYuG1hH/k= -github.com/aws/aws-sdk-go-v2 v1.41.4/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= +github.com/aws/aws-sdk-go-v2 v1.41.5 h1:dj5kopbwUsVUVFgO4Fi5BIT3t4WyqIDjGKCangnV/yY= +github.com/aws/aws-sdk-go-v2 v1.41.5/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.12 h1:oqtA6v+y5fZg//tcTWahyN9PEn5eDU/Wpvc2+kJ4aY8= -github.com/aws/aws-sdk-go-v2/credentials v1.19.12/go.mod h1:U3R1RtSHx6NB0DvEQFGyf/0sbrpJrluENHdPy1j/3TE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20 h1:CNXO7mvgThFGqOFgbNAP2nol2qAWBOGfqR/7tQlvLmc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.20/go.mod h1:oydPDJKcfMhgfcgBUZaG+toBbwy8yPWubJXBVERtI4o= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20 h1:tN6W/hg+pkM+tf9XDkWUbDEjGLb+raoBMFsTodcoYKw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.20/go.mod h1:YJ898MhD067hSHA6xYCx5ts/jEd8BSOLtQDL3iZsvbc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21 h1:SwGMTMLIlvDNyhMteQ6r8IJSBPlRdXX5d4idhIGbkXA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.21/go.mod h1:UUxgWxofmOdAMuqEsSppbDtGKLfR04HGsD0HXzvhI1k= +github.com/aws/aws-sdk-go-v2/credentials v1.19.13 h1:mA59E3fokBvyEGHKFdnpNNrvaR351cqiHgRg+JzOSRI= +github.com/aws/aws-sdk-go-v2/credentials v1.19.13/go.mod h1:yoTXOQKea18nrM69wGF9jBdG4WocSZA1h38A+t/MAsk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 h1:Rgg6wvjjtX8bNHcvi9OnXWwcE0a2vGpbwmtICOsvcf4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21/go.mod h1:A/kJFst/nm//cyqonihbdpQZwiUhhzpqTsdbhDdRF9c= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 h1:PEgGVtPoB6NTpPrBgqSE5hE/o47Ij9qk/SEZFbUOe9A= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21/go.mod h1:p+hz+PRAYlY3zcpJhPwXlLC4C+kqn70WIHwnzAfs6ps= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 h1:rWyie/PxDRIdhNf4DzRk0lvjVOqFJuNnO8WwaIRVxzQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22/go.mod h1:zd/JsJ4P7oGfUhXn1VyLqaRZwPmZwg44Jf2dS84Dm3Y= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12 h1:qtJZ70afD3ISKWnoX3xB0J2otEqu3LqicRcDBqsj0hQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.12/go.mod h1:v2pNpJbRNl4vEUWEh5ytQok0zACAKfdmKS51Hotc3pQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 h1:2HvVAIq+YqgGotK6EkMf+KIEqTISmTYh5zLpYyeTo1Y= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20/go.mod h1:V4X406Y666khGa8ghKmphma/7C0DAtEQYhkq9z4vpbk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20 h1:siU1A6xjUZ2N8zjTHSXFhB9L/2OY8Dqs0xXiLjF30jA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.20/go.mod h1:4TLZCmVJDM3FOu5P5TJP0zOlu9zWgDWU7aUxWbr+rcw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2 h1:MRNiP6nqa20aEl8fQ6PJpEq11b2d40b16sm4WD7QgMU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.97.2/go.mod h1:FrNA56srbsr3WShiaelyWYEo70x80mXnVZ17ZZfbeqg= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 h1:JRaIgADQS/U6uXDqlPiefP32yXTda7Kqfx+LgspooZM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13/go.mod h1:CEuVn5WqOMilYl+tbccq8+N2ieCy0gVn3OtRb0vBNNM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 h1:c31//R3xgIJMSC8S6hEVq+38DcvUlgFY0FM6mSI5oto= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21/go.mod h1:r6+pf23ouCB718FUxaqzZdbpYFyDtehyZcmP5KL9FkA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 h1:ZlvrNcHSFFWURB8avufQq9gFsheUgjVD9536obIknfM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21/go.mod h1:cv3TNhVrssKR0O/xxLJVRfd2oazSnZnkUeTf6ctUwfQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0 h1:foqo/ocQ7WqKwy3FojGtZQJo0FR4vto9qnz9VaumbCo= +github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0/go.mod h1:uoA43SdFwacedBfSgfFSjjCvYe8aYBS7EnU5GZ/YKMM= github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 29bcae8399f3a941312d15f94b7bd3ac3838fe75 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:09:37 +0000 Subject: [PATCH 856/888] build(deps): update module github.com/go-playground/validator/v10 to v10.30.2 (#1053) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 6f3a99fc6..46e37b54c 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 - github.com/go-playground/validator/v10 v10.30.1 + github.com/go-playground/validator/v10 v10.30.2 github.com/go-resty/resty/v2 v2.17.2 github.com/go-sql-driver/mysql v1.9.3 github.com/google/uuid v1.6.0 @@ -68,7 +68,7 @@ require ( github.com/cloudwego/base64x v0.1.6 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.12 // indirect + github.com/gabriel-vasile/mimetype v1.4.13 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect @@ -114,12 +114,12 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.48.0 // indirect + golang.org/x/crypto v0.49.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect golang.org/x/mod v0.33.0 // indirect - golang.org/x/net v0.50.0 // indirect - golang.org/x/sys v0.41.0 // indirect - golang.org/x/term v0.40.0 // indirect + golang.org/x/net v0.51.0 // indirect + golang.org/x/sys v0.42.0 // indirect + golang.org/x/term v0.41.0 // indirect golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.42.0 // indirect google.golang.org/protobuf v1.36.8 // indirect diff --git a/go.sum b/go.sum index 3bd0767ba..cf86b7dd3 100644 --- a/go.sum +++ b/go.sum @@ -62,16 +62,16 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= -github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw= -github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM= +github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w= -github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM= +github.com/go-playground/validator/v10 v10.30.2 h1:JiFIMtSSHb2/XBUbWM4i/MpeQm9ZK2xqPNk8vgvu5JQ= +github.com/go-playground/validator/v10 v10.30.2/go.mod h1:mAf2pIOVXjTEBrwUMGKkCWKKPs9NheYGabeB04txQSc= github.com/go-resty/resty/v2 v2.17.2 h1:FQW5oHYcIlkCNrMD2lloGScxcHJ0gkjshV3qcQAyHQk= github.com/go-resty/resty/v2 v2.17.2/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= @@ -273,23 +273,23 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= -golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= +golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= +golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= -golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= -golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= +golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= -golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= -golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= +golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= +golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= From 84fd4a627e1618ed1655edbfc2ed82ea975b9180 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:31:50 +0000 Subject: [PATCH 857/888] build(deps): update module github.com/labstack/echo/v5 to v5.1.0 (#1056) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 46e37b54c..05610fa50 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v5 v5.0.4 + github.com/labstack/echo/v5 v5.1.0 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.36.1 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index cf86b7dd3..417938663 100644 --- a/go.sum +++ b/go.sum @@ -144,8 +144,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/labstack/echo/v4 v4.15.1 h1:S9keusg26gZpjMmPqB5hOEvNKnmd1lNmcHrbbH2lnFs= github.com/labstack/echo/v4 v4.15.1/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= -github.com/labstack/echo/v5 v5.0.4 h1:ll3I/O8BifjMztj9dD1vx/peZQv8cR2CTUdQK6QxGGc= -github.com/labstack/echo/v5 v5.0.4/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo= +github.com/labstack/echo/v5 v5.1.0 h1:MvIRydoN+p9cx/zq8Lff6YXqUW2ZaEsOMISzEGSMrBI= +github.com/labstack/echo/v5 v5.1.0/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= From f22161c511f1db41d79fd1bc59d545f0f2c14837 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 01:30:30 +0800 Subject: [PATCH 858/888] build(deps): update dependency lodash to v4.18.1 [security] (#1055) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de6396740..92dfc1c31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -105,9 +105,9 @@ js-yaml@^4.1.1: argparse "^2.0.1" lodash@^4.17.23: - version "4.17.23" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" - integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== + version "4.18.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" + integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== node-fetch-h2@^2.3.0: version "2.3.0" From bc48bf22a4e87c53c876fcebfd58b2a610fad9cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 01:30:34 +0800 Subject: [PATCH 859/888] build(deps): update dependency @apidevtools/json-schema-ref-parser to ^15.3.5 (#1054) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0f1959b6a..6b522d783 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "printWidth": 120 }, "dependencies": { - "@apidevtools/json-schema-ref-parser": "^15.3.4", + "@apidevtools/json-schema-ref-parser": "^15.3.5", "js-yaml": "^4.1.1", "lodash": "^4.17.23", "yaml": "^2.8.3" diff --git a/yarn.lock b/yarn.lock index 92dfc1c31..26836c05c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@apidevtools/json-schema-ref-parser@^15.3.4": - version "15.3.4" - resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.4.tgz#6d70241a493989cfd325a371c233370525b75d36" - integrity sha512-iR1M4qCw4MzRMcA8DP7Kwy2W65+qKyROL0k/OER326IiFbR5bRmnKGmHZsrX8S3e3ZtnRoPUvr8iBMa1gys/UQ== +"@apidevtools/json-schema-ref-parser@^15.3.5": + version "15.3.5" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.5.tgz#503726178d8d792eea7b195566272aaee6837e2f" + integrity sha512-orNOYXw3hYXxxisXMldjzjBzqqTLBPbwOtHg7ovBPvfBHDue1qM9YJENZ3W2BQuS+7z4ThogMbEzEsov57Itkg== dependencies: js-yaml "^4.1.1" From 116e00eb3dce8f654338f9786a7630527219af8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 01:30:53 +0800 Subject: [PATCH 860/888] ci: update codecov/codecov-action action to v6 (#1057) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index c6de41676..b15a92ba3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -69,7 +69,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@v5 + - uses: codecov/codecov-action@v6 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required From c53f6ac57f4b213059006306a345505cba33758d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:50:20 +0000 Subject: [PATCH 861/888] build(deps): update aws-sdk-go-v2 monorepo (#1059) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 05610fa50..59fff2ca2 100644 --- a/go.mod +++ b/go.mod @@ -7,8 +7,8 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 github.com/aws/aws-sdk-go-v2 v1.41.5 - github.com/aws/aws-sdk-go-v2/credentials v1.19.13 - github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0 + github.com/aws/aws-sdk-go-v2/credentials v1.19.14 + github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc diff --git a/go.sum b/go.sum index 417938663..cbc6c2774 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,8 @@ github.com/aws/aws-sdk-go-v2 v1.41.5 h1:dj5kopbwUsVUVFgO4Fi5BIT3t4WyqIDjGKCangnV github.com/aws/aws-sdk-go-v2 v1.41.5/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.13 h1:mA59E3fokBvyEGHKFdnpNNrvaR351cqiHgRg+JzOSRI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.13/go.mod h1:yoTXOQKea18nrM69wGF9jBdG4WocSZA1h38A+t/MAsk= +github.com/aws/aws-sdk-go-v2/credentials v1.19.14 h1:n+UcGWAIZHkXzYt87uMFBv/l8THYELoX6gVcUvgl6fI= +github.com/aws/aws-sdk-go-v2/credentials v1.19.14/go.mod h1:cJKuyWB59Mqi0jM3nFYQRmnHVQIcgoxjEMAbLkpr62w= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 h1:Rgg6wvjjtX8bNHcvi9OnXWwcE0a2vGpbwmtICOsvcf4= github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21/go.mod h1:A/kJFst/nm//cyqonihbdpQZwiUhhzpqTsdbhDdRF9c= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 h1:PEgGVtPoB6NTpPrBgqSE5hE/o47Ij9qk/SEZFbUOe9A= @@ -28,8 +28,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 h1:c31//R3x github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21/go.mod h1:r6+pf23ouCB718FUxaqzZdbpYFyDtehyZcmP5KL9FkA= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 h1:ZlvrNcHSFFWURB8avufQq9gFsheUgjVD9536obIknfM= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21/go.mod h1:cv3TNhVrssKR0O/xxLJVRfd2oazSnZnkUeTf6ctUwfQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0 h1:foqo/ocQ7WqKwy3FojGtZQJo0FR4vto9qnz9VaumbCo= -github.com/aws/aws-sdk-go-v2/service/s3 v1.98.0/go.mod h1:uoA43SdFwacedBfSgfFSjjCvYe8aYBS7EnU5GZ/YKMM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 h1:hlSuz394kV0vhv9drL5lhuEFbEOEP1VyQpy15qWh1Pk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0/go.mod h1:uoA43SdFwacedBfSgfFSjjCvYe8aYBS7EnU5GZ/YKMM= github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From 06f3c112e511f165576e77a0495d8adc7bac0835 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:54:07 +0000 Subject: [PATCH 862/888] build(deps): update dependency go to v1.26.2 (#1060) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 59fff2ca2..d43189665 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.26.1 +go 1.26.2 tool github.com/vektra/mockery/v3 From b715568a63f2e80e24bf0d1ff0686ad951e28f08 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 18:18:42 +0800 Subject: [PATCH 863/888] ci: update jaxxstorm/action-install-gh-release action to v3 (#1062) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b15a92ba3..29258610a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -43,7 +43,7 @@ jobs: repo-token: "${{ secrets.GITHUB_TOKEN }}" - name: Install gotestsum - uses: jaxxstorm/action-install-gh-release@v2.1.0 + uses: jaxxstorm/action-install-gh-release@v3.0.0 with: repo: gotestyourself/gotestsum tag: v1.13.0 From d996d04deb829a3e0c40e553b8f5492a369668ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 18:18:50 +0800 Subject: [PATCH 864/888] build(deps): update dependency lodash to ^4.18.1 (#1061) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6b522d783..a48354125 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "dependencies": { "@apidevtools/json-schema-ref-parser": "^15.3.5", "js-yaml": "^4.1.1", - "lodash": "^4.17.23", + "lodash": "^4.18.1", "yaml": "^2.8.3" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 26836c05c..41ffa3885 100644 --- a/yarn.lock +++ b/yarn.lock @@ -104,7 +104,7 @@ js-yaml@^4.1.1: dependencies: argparse "^2.0.1" -lodash@^4.17.23: +lodash@^4.18.1: version "4.18.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== From befc5603225c6e684a3ffcac7747ef68719c3ead Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 18:52:56 +0800 Subject: [PATCH 865/888] ci: pin dependencies (#1064) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 4 ++-- .github/workflows/lint-review.yaml | 8 ++++---- .github/workflows/lint.yaml | 4 ++-- .github/workflows/release-docker.yaml | 10 +++++----- .github/workflows/release-github.yaml | 2 +- .github/workflows/release-openapi.yaml | 8 ++++---- .github/workflows/security.yaml | 4 ++-- .github/workflows/test-openapi.yaml | 4 ++-- .github/workflows/test.yaml | 6 +++--- .github/workflows/update-common.yaml | 6 +++--- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 12ae9593c..514e7d2b4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: true @@ -41,7 +41,7 @@ jobs: cache-namespace: build - name: Install Task - uses: arduino/setup-task@v2 + uses: arduino/setup-task@v2.0.0 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 517127ea5..d03d67c1c 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -16,17 +16,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@v6.0.2 with: submodules: true - name: Install Node LTS - uses: actions/setup-node@v6 + uses: actions/setup-node@v6.3.0 with: cache: yarn - name: Install Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v6.4.0 with: go-version-file: "go.mod" @@ -36,4 +36,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@v1 + - uses: autofix-ci/action@v1.3.3 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 60969bd0b..7ebf56dde 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -26,7 +26,7 @@ jobs: lint: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: true @@ -35,6 +35,6 @@ jobs: cache-namespace: lint - name: Run linters - uses: golangci/golangci-lint-action@v9 + uses: golangci/golangci-lint-action@v9.2.0 with: version: v2.11.4 diff --git a/.github/workflows/release-docker.yaml b/.github/workflows/release-docker.yaml index f08873496..8643f36bc 100644 --- a/.github/workflows/release-docker.yaml +++ b/.github/workflows/release-docker.yaml @@ -19,7 +19,7 @@ jobs: IMAGE: "ghcr.io/${{ github.repository_owner }}/chii" steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: true @@ -38,7 +38,7 @@ jobs: - run: node .github/scripts/write-version.js - name: Install Task - uses: arduino/setup-task@v2 + uses: arduino/setup-task@v2.0.0 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" @@ -47,7 +47,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v6 + uses: docker/metadata-action@v6.0.0 with: images: ${{ env.IMAGE }} tags: | @@ -57,14 +57,14 @@ jobs: type=ref,event=branch type=ref,event=branch,suffix=-${{ env.SHA }} - - uses: docker/login-action@v4 + - uses: docker/login-action@v4.1.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: Build Final Docker Image - uses: docker/build-push-action@v7 + uses: docker/build-push-action@v7.1.0 with: context: ./ provenance: false diff --git a/.github/workflows/release-github.yaml b/.github/workflows/release-github.yaml index ab6c458c3..b0b8e3da6 100644 --- a/.github/workflows/release-github.yaml +++ b/.github/workflows/release-github.yaml @@ -12,7 +12,7 @@ jobs: github: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: fetch-depth: 0 diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index fd98b6782..bfe394fe8 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -13,15 +13,15 @@ jobs: openapi: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 + - uses: actions/checkout@v6.0.2 + - uses: actions/setup-node@v6.3.0 with: node-version: 20 - run: yarn install --frozen-lockfile - run: yarn run build - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: repository: "bangumi/api" path: api @@ -29,7 +29,7 @@ jobs: - run: cp ./dist/v0.yaml ./api/open-api/v0.yaml - name: Create Pull Request - uses: peter-evans/create-pull-request@v8 + uses: peter-evans/create-pull-request@v8.1.1 with: path: api token: ${{ secrets.PAT }} diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index 26b30c701..71eb4559c 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -19,7 +19,7 @@ jobs: permissions: issues: write steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: true @@ -32,7 +32,7 @@ jobs: - run: govulncheck ./... - name: Notify failed build - uses: jayqi/failed-build-issue-action@v1 + uses: jayqi/failed-build-issue-action@v1.2.0 if: failure() with: github-token: ${{ github.token }} diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index b4ab67a63..e66c3d649 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -28,8 +28,8 @@ jobs: matrix: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 + - uses: actions/checkout@v6.0.2 + - uses: actions/setup-node@v6.3.0 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 29258610a..87c5ed1cb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -29,7 +29,7 @@ jobs: - run: git clone https://github.com/bangumi/dev-env $HOME/dev-env --branch=gh-pages - run: cd ~/dev-env && docker compose up -d - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: recursive @@ -38,7 +38,7 @@ jobs: cache-namespace: test - name: Install Task - uses: arduino/setup-task@v2 + uses: arduino/setup-task@v2.0.0 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" @@ -69,7 +69,7 @@ jobs: MYSQL_DB: bangumi REDIS_URI: "redis://:redis-pass@127.0.0.1:6379/0" - - uses: codecov/codecov-action@v6 + - uses: codecov/codecov-action@v6.0.0 with: files: coverage.out token: ${{ secrets.CODECOV_TOKEN }} # required diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index 7f9b7da6e..e7979f3c6 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -15,11 +15,11 @@ jobs: update: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v6.0.2 with: submodules: true - - uses: actions/setup-node@v6 + - uses: actions/setup-node@v6.3.0 with: node-version: 22 @@ -32,7 +32,7 @@ jobs: - run: git add . - name: Create Pull Request - uses: peter-evans/create-pull-request@v8 + uses: peter-evans/create-pull-request@v8.1.1 with: token: ${{ secrets.PAT }} title: "feat: update common" From fad3e375138414f3d884b54aa50bdf21c2d7a476 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 26 Apr 2026 04:28:12 +0800 Subject: [PATCH 866/888] fix: workaound php serialize empty php array as `[]` --- internal/collections/infra/mysql_repo_compat.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index de3e68f1e..1d7b01b46 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -17,6 +17,8 @@ package infra // handle php serialization import ( + "bytes" + "github.com/trim21/errgo" "github.com/bangumi/server/internal/collections/domain/collection" @@ -31,12 +33,18 @@ type mysqlEpCollectionItem struct { UpdatedAt map[collection.EpisodeCollection]int64 `php:"updated_at" json:"updated_at"` } +var emptyJSONArray = []byte("[]") + type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem func deserializeEpStatus(serialized []byte) (mysqlEpCollection, error) { + if bytes.Equal(serialized, emptyJSONArray) { + serialized = []byte("{}") + } + var e map[model.EpisodeID]mysqlEpCollectionItem if err := serialize.Decode(serialized, &e); err != nil { - return nil, errgo.Wrap(err, "php deserialize") + return nil, errgo.Wrap(err, "serialize.Decode:") } return e, nil From f93ea5acbc5bbd1c7afc812d53fb96e7b6a6ce31 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sun, 26 Apr 2026 04:40:19 +0800 Subject: [PATCH 867/888] style: fix lint --- internal/collections/infra/mysql_repo_compat.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/collections/infra/mysql_repo_compat.go b/internal/collections/infra/mysql_repo_compat.go index 1d7b01b46..7de73afd8 100644 --- a/internal/collections/infra/mysql_repo_compat.go +++ b/internal/collections/infra/mysql_repo_compat.go @@ -33,6 +33,7 @@ type mysqlEpCollectionItem struct { UpdatedAt map[collection.EpisodeCollection]int64 `php:"updated_at" json:"updated_at"` } +// nolint: gochecknoglobals var emptyJSONArray = []byte("[]") type mysqlEpCollection map[model.EpisodeID]mysqlEpCollectionItem From dce15da1b21cce297cf36a5dd94d5fa77bae2806 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Sat, 2 May 2026 16:07:40 +0800 Subject: [PATCH 868/888] fix(openapi): add missing 0 to EpisodeCollectionType enum (#1066) --- openapi/components/episode_collection_type.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openapi/components/episode_collection_type.yaml b/openapi/components/episode_collection_type.yaml index 1e0f71ffc..51d0c3358 100644 --- a/openapi/components/episode_collection_type.yaml +++ b/openapi/components/episode_collection_type.yaml @@ -1,6 +1,7 @@ title: EpisodeCollectionType example: 2 enum: + - 0 - 1 - 2 - 3 @@ -14,10 +15,12 @@ x-ms-enum: name: EpisodeCollectionType modelAsString: false values: + - None - Wish - Done - Dropped x-enum-varNames: + - None - Wish - Done - Dropped From 4bf6d00eab95314371aa95e52ddaed6468c7ed82 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:15:00 +0000 Subject: [PATCH 869/888] build(deps): update module github.com/labstack/echo/v5 to v5.1.1 (#1070) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d43189665..52cd1296f 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 github.com/jmoiron/sqlx v1.4.0 - github.com/labstack/echo/v5 v5.1.0 + github.com/labstack/echo/v5 v5.1.1 github.com/mattn/go-colorable v0.1.14 github.com/meilisearch/meilisearch-go v0.36.1 github.com/mitchellh/mapstructure v1.5.0 diff --git a/go.sum b/go.sum index cbc6c2774..b2c62a383 100644 --- a/go.sum +++ b/go.sum @@ -144,8 +144,8 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/labstack/echo/v4 v4.15.1 h1:S9keusg26gZpjMmPqB5hOEvNKnmd1lNmcHrbbH2lnFs= github.com/labstack/echo/v4 v4.15.1/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= -github.com/labstack/echo/v5 v5.1.0 h1:MvIRydoN+p9cx/zq8Lff6YXqUW2ZaEsOMISzEGSMrBI= -github.com/labstack/echo/v5 v5.1.0/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo= +github.com/labstack/echo/v5 v5.1.1 h1:4QkvKoS8ps5ch49t8b72QS9Z581ytgxhTzxuB/CBA2I= +github.com/labstack/echo/v5 v5.1.1/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= From 41f7109cbf75c2d1b1c613a82ebbfa196b91add2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:18:55 +0000 Subject: [PATCH 870/888] build(deps): update module github.com/bytedance/sonic to v1.15.1 (#1069) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 52cd1296f..cc20e13a2 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/credentials v1.19.14 github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 github.com/bangumi/wiki-parser-go v0.0.2 - github.com/bytedance/sonic v1.15.0 + github.com/bytedance/sonic v1.15.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/go-playground/locales v0.14.1 github.com/go-playground/universal-translator v0.18.1 @@ -62,7 +62,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.3.1 // indirect github.com/bytedance/gopkg v0.1.3 // indirect - github.com/bytedance/sonic/loader v0.5.0 // indirect + github.com/bytedance/sonic/loader v0.5.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/clipperhouse/uax29/v2 v2.2.0 // indirect github.com/cloudwego/base64x v0.1.6 // indirect diff --git a/go.sum b/go.sum index b2c62a383..ca34bdf24 100644 --- a/go.sum +++ b/go.sum @@ -42,10 +42,10 @@ github.com/brunoga/deep v1.3.1 h1:bSrL6FhAZa6JlVv4vsi7Hg8SLwroDb1kgDERRVipBCo= github.com/brunoga/deep v1.3.1/go.mod h1:GDV6dnXqn80ezsLSZ5Wlv1PdKAWAO4L5PnKYtv2dgaI= github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= -github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= -github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k= -github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE= -github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= +github.com/bytedance/sonic v1.15.1 h1:nJD5PmM0vY7J8CT6MxoqbVAAMhkSmV2HgRAUrrpLoOw= +github.com/bytedance/sonic v1.15.1/go.mod h1:mT2NbXunuaEbnZ+mRIX/vYqKISmgEuHFDI4UzmKx2SA= +github.com/bytedance/sonic/loader v0.5.1 h1:Ygpfa9zwRCCKSlrp5bBP/b/Xzc3VxsAW+5NIYXrOOpI= +github.com/bytedance/sonic/loader v0.5.1/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= From 1775631848e67bee7011140c14f9f4528943f685 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:22:48 +0000 Subject: [PATCH 871/888] build(deps): update aws-sdk-go-v2 monorepo (#1067) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index cc20e13a2..ac20484a4 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ tool github.com/vektra/mockery/v3 require ( github.com/avast/retry-go/v5 v5.0.0 - github.com/aws/aws-sdk-go-v2 v1.41.5 - github.com/aws/aws-sdk-go-v2/credentials v1.19.14 - github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 + github.com/aws/aws-sdk-go-v2 v1.41.7 + github.com/aws/aws-sdk-go-v2/credentials v1.19.16 + github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -50,15 +50,15 @@ require ( filippo.io/edwards25519 v1.1.1 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 // indirect - github.com/aws/smithy-go v1.24.2 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 // indirect + github.com/aws/smithy-go v1.25.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/brunoga/deep v1.3.1 // indirect github.com/bytedance/gopkg v0.1.3 // indirect diff --git a/go.sum b/go.sum index ca34bdf24..effc367ff 100644 --- a/go.sum +++ b/go.sum @@ -8,30 +8,30 @@ github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7X github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k= github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8= -github.com/aws/aws-sdk-go-v2 v1.41.5 h1:dj5kopbwUsVUVFgO4Fi5BIT3t4WyqIDjGKCangnV/yY= -github.com/aws/aws-sdk-go-v2 v1.41.5/go.mod h1:mwsPRE8ceUUpiTgF7QmQIJ7lgsKUPQOUl3o72QBrE1o= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 h1:eBMB84YGghSocM7PsjmmPffTa+1FBUeNvGvFou6V/4o= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8/go.mod h1:lyw7GFp3qENLh7kwzf7iMzAxDn+NzjXEAGjKS2UOKqI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.14 h1:n+UcGWAIZHkXzYt87uMFBv/l8THYELoX6gVcUvgl6fI= -github.com/aws/aws-sdk-go-v2/credentials v1.19.14/go.mod h1:cJKuyWB59Mqi0jM3nFYQRmnHVQIcgoxjEMAbLkpr62w= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 h1:Rgg6wvjjtX8bNHcvi9OnXWwcE0a2vGpbwmtICOsvcf4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21/go.mod h1:A/kJFst/nm//cyqonihbdpQZwiUhhzpqTsdbhDdRF9c= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 h1:PEgGVtPoB6NTpPrBgqSE5hE/o47Ij9qk/SEZFbUOe9A= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21/go.mod h1:p+hz+PRAYlY3zcpJhPwXlLC4C+kqn70WIHwnzAfs6ps= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 h1:rWyie/PxDRIdhNf4DzRk0lvjVOqFJuNnO8WwaIRVxzQ= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22/go.mod h1:zd/JsJ4P7oGfUhXn1VyLqaRZwPmZwg44Jf2dS84Dm3Y= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 h1:5EniKhLZe4xzL7a+fU3C2tfUN4nWIqlLesfrjkuPFTY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7/go.mod h1:x0nZssQ3qZSnIcePWLvcoFisRXJzcTVvYpAAdYX8+GI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 h1:JRaIgADQS/U6uXDqlPiefP32yXTda7Kqfx+LgspooZM= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13/go.mod h1:CEuVn5WqOMilYl+tbccq8+N2ieCy0gVn3OtRb0vBNNM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 h1:c31//R3xgIJMSC8S6hEVq+38DcvUlgFY0FM6mSI5oto= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21/go.mod h1:r6+pf23ouCB718FUxaqzZdbpYFyDtehyZcmP5KL9FkA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 h1:ZlvrNcHSFFWURB8avufQq9gFsheUgjVD9536obIknfM= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21/go.mod h1:cv3TNhVrssKR0O/xxLJVRfd2oazSnZnkUeTf6ctUwfQ= -github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0 h1:hlSuz394kV0vhv9drL5lhuEFbEOEP1VyQpy15qWh1Pk= -github.com/aws/aws-sdk-go-v2/service/s3 v1.99.0/go.mod h1:uoA43SdFwacedBfSgfFSjjCvYe8aYBS7EnU5GZ/YKMM= -github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= -github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/aws-sdk-go-v2 v1.41.7 h1:DWpAJt66FmnnaRIOT/8ASTucrvuDPZASqhhLey6tLY8= +github.com/aws/aws-sdk-go-v2 v1.41.7/go.mod h1:4LAfZOPHNVNQEckOACQx60Y8pSRjIkNZQz1w92xpMJc= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 h1:gx1AwW1Iyk9Z9dD9F4akX5gnN3QZwUB20GGKH/I+Rho= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10/go.mod h1:qqY157uZoqm5OXq/amuaBJyC9hgBCBQnsaWnPe905GY= +github.com/aws/aws-sdk-go-v2/credentials v1.19.16 h1:r3RJBuU7X9ibt8RHbMjWE6y60QbKBiII6wSrXnapxSU= +github.com/aws/aws-sdk-go-v2/credentials v1.19.16/go.mod h1:6cx7zqDENJDbBIIWX6P8s0h6hqHC8Avbjh9Dseo27ug= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 h1:GpT/TrnBYuE5gan2cZbTtvP+JlHsutdmlV2YfEyNde0= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23/go.mod h1:xYWD6BS9ywC5bS3sz9Xh04whO/hzK2plt2Zkyrp4JuA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 h1:bpd8vxhlQi2r1hiueOw02f/duEPTMK59Q4QMAoTTtTo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23/go.mod h1:15DfR2nw+CRHIk0tqNyifu3G1YdAOy68RftkhMDDwYk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 h1:OQqn11BtaYv1WLUowvcA30MpzIu8Ti4pcLPIIyoKZrA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24/go.mod h1:X5ZJyfwVrWA96GzPmUCWFQaEARPR7gCrpq2E92PJwAE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 h1:FLudkZLt5ci0ozzgkVo8BJGwvqNaZbTWb3UcucAateA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9/go.mod h1:w7wZ/s9qK7c8g4al+UyoF1Sp/Z45UwMGcqIzLWVQHWk= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.15 h1:ieLCO1JxUWuxTZ1cRd0GAaeX7O6cIxnwk7tc1LsQhC4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.15/go.mod h1:e3IzZvQ3kAWNykvE0Tr0RDZCMFInMvhku3qNpcIQXhM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 h1:pbrxO/kuIwgEsOPLkaHu0O+m4fNgLU8B3vxQ+72jTPw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23/go.mod h1:/CMNUqoj46HpS3MNRDEDIwcgEnrtZlKRaHNaHxIFpNA= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 h1:03xatSQO4+AM1lTAbnRg5OK528EUg744nW7F73U8DKw= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23/go.mod h1:M8l3mwgx5ToK7wot2sBBce/ojzgnPzZXUV445gTSyE8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1 h1:mxuT1xE+dI54NW3RkNjP8DUT5HXqbkiAFvfdyDFwE5c= +github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1/go.mod h1:L2dcoOgS2VSgbPLvpak2NyUPsO1TBN7M45Z4H7DlRc4= +github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI= +github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= github.com/bangumi/wiki-parser-go v0.0.2/go.mod h1:ELlLuMFhEUuLnySpJse2B/9RCeYcdogJOjvWZNbfIiA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= From d1fa1e418653b9dddbf0b49ba1cbcdac6de9b2dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:26:35 +0000 Subject: [PATCH 872/888] build(deps): update module github.com/meilisearch/meilisearch-go to v0.36.2 (#1071) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ac20484a4..6b0f9e609 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/labstack/echo/v5 v5.1.1 github.com/mattn/go-colorable v0.1.14 - github.com/meilisearch/meilisearch-go v0.36.1 + github.com/meilisearch/meilisearch-go v0.36.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.73 diff --git a/go.sum b/go.sum index effc367ff..e31015412 100644 --- a/go.sum +++ b/go.sum @@ -168,8 +168,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxatome/go-testdeep v1.14.0 h1:rRlLv1+kI8eOI3OaBXZwb3O7xY3exRzdW5QyX48g9wI= github.com/maxatome/go-testdeep v1.14.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/meilisearch/meilisearch-go v0.36.1 h1:mJTCJE5g7tRvaqKco6DfqOuJEjX+rRltDEnkEC02Y0M= -github.com/meilisearch/meilisearch-go v0.36.1/go.mod h1:hWcR0MuWLSzHfbz9GGzIr3s9rnXLm1jqkmHkJPbUSvM= +github.com/meilisearch/meilisearch-go v0.36.2 h1:MYaMPCpdLh2aYPt+zK+19mLoA4dfBY3S1L7T0FADCjU= +github.com/meilisearch/meilisearch-go v0.36.2/go.mod h1:hWcR0MuWLSzHfbz9GGzIr3s9rnXLm1jqkmHkJPbUSvM= github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= From 4093e056bd37b9b2c07542becca6962bff3af40c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:30:27 +0000 Subject: [PATCH 873/888] build(deps): update module github.com/redis/rueidis to v1.0.74 (#1072) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6b0f9e609..a925f9897 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( github.com/meilisearch/meilisearch-go v0.36.2 github.com/mitchellh/mapstructure v1.5.0 github.com/prometheus/client_golang v1.23.2 - github.com/redis/rueidis v1.0.73 + github.com/redis/rueidis v1.0.74 github.com/samber/lo v1.53.0 github.com/segmentio/kafka-go v0.4.50 github.com/spf13/cobra v1.10.2 diff --git a/go.sum b/go.sum index e31015412..8d8eb652a 100644 --- a/go.sum +++ b/go.sum @@ -196,8 +196,8 @@ github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9Z github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/redis/rueidis v1.0.73 h1:0Enrg0VuMdaYyNDDj0lLIheWY0uybCeQOh+jTp2GG3M= -github.com/redis/rueidis v1.0.73/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= +github.com/redis/rueidis v1.0.74 h1:J5ZNyxMqX+sDQxQztRI928W6TrERpo+pHSwhftnX7NA= +github.com/redis/rueidis v1.0.74/go.mod h1:lfdcZzJ1oKGKL37vh9fO3ymwt+0TdjkkUCJxbgpmcgQ= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= From e727103b1ad0c92d5ff2d4e0617e686d94c9e9c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:34:14 +0000 Subject: [PATCH 874/888] build(deps): update module github.com/segmentio/kafka-go to v0.4.51 (#1073) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a925f9897..526843196 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/prometheus/client_golang v1.23.2 github.com/redis/rueidis v1.0.74 github.com/samber/lo v1.53.0 - github.com/segmentio/kafka-go v0.4.50 + github.com/segmentio/kafka-go v0.4.51 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 diff --git a/go.sum b/go.sum index 8d8eb652a..4d61df9e1 100644 --- a/go.sum +++ b/go.sum @@ -206,8 +206,8 @@ github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samber/lo v1.53.0 h1:t975lj2py4kJPQ6haz1QMgtId2gtmfktACxIXArw3HM= github.com/samber/lo v1.53.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/segmentio/kafka-go v0.4.50 h1:mcyC3tT5WeyWzrFbd6O374t+hmcu1NKt2Pu1L3QaXmc= -github.com/segmentio/kafka-go v0.4.50/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= +github.com/segmentio/kafka-go v0.4.51 h1:JgDPPG75tC1rWIS2Me6MwcvXJ6f49UQ4HjAOef71Hno= +github.com/segmentio/kafka-go v0.4.51/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= From 9099b7e52640359b49721d3e061d3763734a2443 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:37:56 +0000 Subject: [PATCH 875/888] build(deps): update module go.uber.org/zap to v1.28.0 (#1076) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 526843196..6ef264644 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/trim21/go-phpserialize v0.1.2 github.com/trim21/htest v0.0.4 go.uber.org/fx v1.24.0 - go.uber.org/zap v1.27.1 + go.uber.org/zap v1.28.0 golang.org/x/sync v0.20.0 golang.org/x/text v0.35.0 gorm.io/driver/mysql v1.6.0 diff --git a/go.sum b/go.sum index 4d61df9e1..58c22f7d8 100644 --- a/go.sum +++ b/go.sum @@ -263,8 +263,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= -go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= +go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= From 6cc0188b793f60aac33d9a8cd9eda2035b7956b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:41:49 +0000 Subject: [PATCH 876/888] build(deps): update module github.com/go-sql-driver/mysql to v1.10.0 (#1075) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6ef264644..3d2924329 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/go-playground/universal-translator v0.18.1 github.com/go-playground/validator/v10 v10.30.2 github.com/go-resty/resty/v2 v2.17.2 - github.com/go-sql-driver/mysql v1.9.3 + github.com/go-sql-driver/mysql v1.10.0 github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/jarcoal/httpmock v1.4.1 @@ -47,7 +47,7 @@ require ( ) require ( - filippo.io/edwards25519 v1.1.1 // indirect + filippo.io/edwards25519 v1.2.0 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.10 // indirect diff --git a/go.sum b/go.sum index 58c22f7d8..e62a960d3 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,6 @@ filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -filippo.io/edwards25519 v1.1.1 h1:YpjwWWlNmGIDyXOn8zLzqiD+9TyIlPhGFG96P39uBpw= -filippo.io/edwards25519 v1.1.1/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo= +filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= @@ -75,8 +75,8 @@ github.com/go-playground/validator/v10 v10.30.2/go.mod h1:mAf2pIOVXjTEBrwUMGKkCW github.com/go-resty/resty/v2 v2.17.2 h1:FQW5oHYcIlkCNrMD2lloGScxcHJ0gkjshV3qcQAyHQk= github.com/go-resty/resty/v2 v2.17.2/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= -github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/go-sql-driver/mysql v1.10.0 h1:Q+1LV8DkHJvSYAdR83XzuhDaTykuDx0l6fkXxoWCWfw= +github.com/go-sql-driver/mysql v1.10.0/go.mod h1:M+cqaI7+xxXGG9swrdeUIoPG3Y3KCkF0pZej+SK+nWk= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= From ea0befa5a81852b28de591efa8f29e9ed3c41efc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 16:43:09 +0800 Subject: [PATCH 877/888] ci: update autofix-ci/action action to v1.3.4 (#1074) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index d03d67c1c..19eb5070a 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -36,4 +36,4 @@ jobs: - run: gofmt -w -s . - - uses: autofix-ci/action@v1.3.3 + - uses: autofix-ci/action@v1.3.4 From 49f51cdc6ffed2b8b49291bc832ea8d28aa5c776 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 16:45:05 +0800 Subject: [PATCH 878/888] build(deps): update dependency prettier to ^3.8.3 (#1068) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a48354125..c0ea8a333 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@types/json-schema": "^7.0.15", "colors": "^1.4.0", "oas-validator": "^5.0.8", - "prettier": "^3.8.1" + "prettier": "^3.8.3" }, "nodemonConfig": { "restartable": "rs", diff --git a/yarn.lock b/yarn.lock index 41ffa3885..3e5a7686c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -162,10 +162,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -prettier@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" - integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== +prettier@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.3.tgz#560f2de55bf01b4c0503bc629d5df99b9a1d09b0" + integrity sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw== reftools@^1.1.9: version "1.1.9" From 93274147c7e5c8dad782070b9b32cd80b9951e00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 16:45:35 +0800 Subject: [PATCH 879/888] ci: update actions/setup-node action to v6.4.0 (#1078) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/lint-review.yaml | 2 +- .github/workflows/release-openapi.yaml | 2 +- .github/workflows/test-openapi.yaml | 2 +- .github/workflows/update-common.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint-review.yaml b/.github/workflows/lint-review.yaml index 19eb5070a..79a25d37e 100644 --- a/.github/workflows/lint-review.yaml +++ b/.github/workflows/lint-review.yaml @@ -21,7 +21,7 @@ jobs: submodules: true - name: Install Node LTS - uses: actions/setup-node@v6.3.0 + uses: actions/setup-node@v6.4.0 with: cache: yarn diff --git a/.github/workflows/release-openapi.yaml b/.github/workflows/release-openapi.yaml index bfe394fe8..9a3f0a37b 100644 --- a/.github/workflows/release-openapi.yaml +++ b/.github/workflows/release-openapi.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6.0.2 - - uses: actions/setup-node@v6.3.0 + - uses: actions/setup-node@v6.4.0 with: node-version: 20 diff --git a/.github/workflows/test-openapi.yaml b/.github/workflows/test-openapi.yaml index e66c3d649..656142471 100644 --- a/.github/workflows/test-openapi.yaml +++ b/.github/workflows/test-openapi.yaml @@ -29,7 +29,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v6.0.2 - - uses: actions/setup-node@v6.3.0 + - uses: actions/setup-node@v6.4.0 with: node-version: "lts/*" cache: "yarn" diff --git a/.github/workflows/update-common.yaml b/.github/workflows/update-common.yaml index e7979f3c6..d4f9d5a52 100644 --- a/.github/workflows/update-common.yaml +++ b/.github/workflows/update-common.yaml @@ -19,7 +19,7 @@ jobs: with: submodules: true - - uses: actions/setup-node@v6.3.0 + - uses: actions/setup-node@v6.4.0 with: node-version: 22 From 6b785d0d9423dbf0215690fd5181cb01154c8591 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 May 2026 08:46:56 +0000 Subject: [PATCH 880/888] build(deps): update module golang.org/x/text to v0.36.0 (#1077) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 3d2924329..5a0fe1ff2 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.28.0 golang.org/x/sync v0.20.0 - golang.org/x/text v0.35.0 + golang.org/x/text v0.36.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -116,12 +116,12 @@ require ( golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.49.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect - golang.org/x/mod v0.33.0 // indirect - golang.org/x/net v0.51.0 // indirect + golang.org/x/mod v0.34.0 // indirect + golang.org/x/net v0.52.0 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/term v0.41.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.42.0 // indirect + golang.org/x/tools v0.43.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index e62a960d3..7d8d3e15e 100644 --- a/go.sum +++ b/go.sum @@ -277,10 +277,10 @@ golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= -golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= -golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= +golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= +golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= +golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -290,12 +290,12 @@ golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= -golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= -golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= -golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= +golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= +golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 68e344bb2594cccc313cfb04aac5ccdc0a1edbe2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 03:34:05 +0800 Subject: [PATCH 881/888] build(deps): update dependency yaml to ^2.8.4 (#1080) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c0ea8a333..158dcc9d5 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@apidevtools/json-schema-ref-parser": "^15.3.5", "js-yaml": "^4.1.1", "lodash": "^4.18.1", - "yaml": "^2.8.3" + "yaml": "^2.8.4" }, "devDependencies": { "@types/json-schema": "^7.0.15", diff --git a/yarn.lock b/yarn.lock index 3e5a7686c..b571d787f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -256,10 +256,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.3.tgz#76e407ed95c42684fb8e14641e5de62fe65bbcb3" integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== -yaml@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d" - integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg== +yaml@^2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.4.tgz#4b5f411dd25f9544914d8673d4da7f29248e5e2e" + integrity sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog== yargs-parser@^21.1.1: version "21.1.1" From 65fa9205c606b3ecc7e7d20d1515cc95fb53ab17 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 10:03:59 +0000 Subject: [PATCH 882/888] build(deps): update module golang.org/x/net to v0.53.0 [security] (#1081) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 5a0fe1ff2..26a022cb8 100644 --- a/go.mod +++ b/go.mod @@ -114,12 +114,12 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.49.0 // indirect + golang.org/x/crypto v0.50.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect golang.org/x/mod v0.34.0 // indirect - golang.org/x/net v0.52.0 // indirect - golang.org/x/sys v0.42.0 // indirect - golang.org/x/term v0.41.0 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/term v0.42.0 // indirect golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.43.0 // indirect google.golang.org/protobuf v1.36.8 // indirect diff --git a/go.sum b/go.sum index 7d8d3e15e..40ace16a4 100644 --- a/go.sum +++ b/go.sum @@ -273,23 +273,23 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= -golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= +golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= +golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= -golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= -golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= -golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= +golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= From e06e8c5138a17881297cb42ecb9d257eeab95e29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 10:27:00 +0000 Subject: [PATCH 883/888] build(deps): update go module directive to v1.26.3 (#1082) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 26a022cb8..9215662e7 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/bangumi/server -go 1.26.2 +go 1.26.3 tool github.com/vektra/mockery/v3 From e5da1713c6a590bbf9d1e8c7a3c76507e9ae7fb9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 10:32:05 +0000 Subject: [PATCH 884/888] build(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.101.0 (#1084) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9215662e7..164522742 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/avast/retry-go/v5 v5.0.0 github.com/aws/aws-sdk-go-v2 v1.41.7 github.com/aws/aws-sdk-go-v2/credentials v1.19.16 - github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.101.0 github.com/bangumi/wiki-parser-go v0.0.2 github.com/bytedance/sonic v1.15.1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc diff --git a/go.sum b/go.sum index 40ace16a4..b96af732e 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 h1:pbrxO/ku github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23/go.mod h1:/CMNUqoj46HpS3MNRDEDIwcgEnrtZlKRaHNaHxIFpNA= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23 h1:03xatSQO4+AM1lTAbnRg5OK528EUg744nW7F73U8DKw= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.23/go.mod h1:M8l3mwgx5ToK7wot2sBBce/ojzgnPzZXUV445gTSyE8= -github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1 h1:mxuT1xE+dI54NW3RkNjP8DUT5HXqbkiAFvfdyDFwE5c= -github.com/aws/aws-sdk-go-v2/service/s3 v1.100.1/go.mod h1:L2dcoOgS2VSgbPLvpak2NyUPsO1TBN7M45Z4H7DlRc4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.101.0 h1:etqBTKY581iwLL/H/S2sVgk3C9lAsTJFeXWFDsDcWOU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.101.0/go.mod h1:L2dcoOgS2VSgbPLvpak2NyUPsO1TBN7M45Z4H7DlRc4= github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI= github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bangumi/wiki-parser-go v0.0.2 h1:VSzIu/3CpgHBjT0RtE9aM4RGzRORNLM20CL0CuxyRLs= From acacbe1b41bcb537289a30a20dcf4014b58cafca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 10:36:06 +0000 Subject: [PATCH 885/888] build(deps): update module golang.org/x/text to v0.37.0 (#1085) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 164522742..6666389c1 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( go.uber.org/fx v1.24.0 go.uber.org/zap v1.28.0 golang.org/x/sync v0.20.0 - golang.org/x/text v0.36.0 + golang.org/x/text v0.37.0 gorm.io/driver/mysql v1.6.0 gorm.io/gen v0.3.27 gorm.io/gorm v1.31.1 @@ -116,12 +116,12 @@ require ( golang.org/x/arch v0.17.0 // indirect golang.org/x/crypto v0.50.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect - golang.org/x/mod v0.34.0 // indirect + golang.org/x/mod v0.35.0 // indirect golang.org/x/net v0.53.0 // indirect golang.org/x/sys v0.43.0 // indirect golang.org/x/term v0.42.0 // indirect golang.org/x/time v0.14.0 // indirect - golang.org/x/tools v0.43.0 // indirect + golang.org/x/tools v0.44.0 // indirect google.golang.org/protobuf v1.36.8 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/datatypes v1.2.5 // indirect diff --git a/go.sum b/go.sum index b96af732e..4c4111bd7 100644 --- a/go.sum +++ b/go.sum @@ -277,8 +277,8 @@ golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= @@ -290,12 +290,12 @@ golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= -golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= -golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 3b2996cb5ae1feee54f4c5615f42fa46e622d8b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 02:00:57 +0800 Subject: [PATCH 886/888] build(deps): update dependency yaml to ^2.9.0 (#1083) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 158dcc9d5..cec402ffd 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@apidevtools/json-schema-ref-parser": "^15.3.5", "js-yaml": "^4.1.1", "lodash": "^4.18.1", - "yaml": "^2.8.4" + "yaml": "^2.9.0" }, "devDependencies": { "@types/json-schema": "^7.0.15", diff --git a/yarn.lock b/yarn.lock index b571d787f..f487830e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -256,10 +256,10 @@ yaml@^1.10.0: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.3.tgz#76e407ed95c42684fb8e14641e5de62fe65bbcb3" integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA== -yaml@^2.8.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.4.tgz#4b5f411dd25f9544914d8673d4da7f29248e5e2e" - integrity sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog== +yaml@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.9.0.tgz#78274afd93598a1dfdd6130df6a566defcbf9aa4" + integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== yargs-parser@^21.1.1: version "21.1.1" From f9b2e684e6abb59df48c90b6b9eeb51b3d5810d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 18:03:30 +0000 Subject: [PATCH 887/888] build(deps): update module golang.org/x/crypto to v0.52.0 [security] (#1086) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 6666389c1..f6f41bb4a 100644 --- a/go.mod +++ b/go.mod @@ -114,12 +114,12 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 // indirect golang.org/x/arch v0.17.0 // indirect - golang.org/x/crypto v0.50.0 // indirect + golang.org/x/crypto v0.52.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect golang.org/x/mod v0.35.0 // indirect - golang.org/x/net v0.53.0 // indirect - golang.org/x/sys v0.43.0 // indirect - golang.org/x/term v0.42.0 // indirect + golang.org/x/net v0.54.0 // indirect + golang.org/x/sys v0.45.0 // indirect + golang.org/x/term v0.43.0 // indirect golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.44.0 // indirect google.golang.org/protobuf v1.36.8 // indirect diff --git a/go.sum b/go.sum index 4c4111bd7..3b5d9548a 100644 --- a/go.sum +++ b/go.sum @@ -273,23 +273,23 @@ go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 h1:lGdhQUN go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= golang.org/x/arch v0.17.0 h1:4O3dfLzd+lQewptAHqjewQZQDyEdejz3VwgeYwkZneU= golang.org/x/arch v0.17.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= -golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= -golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= -golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= -golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= +golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= -golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= -golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= +golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= From 48f226a3bcfa08fd7ea2eed83060633862090103 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 18:09:27 +0000 Subject: [PATCH 888/888] build(deps): update module golang.org/x/net to v0.55.0 [security] (#1087) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f6f41bb4a..a5c6ba141 100644 --- a/go.mod +++ b/go.mod @@ -117,7 +117,7 @@ require ( golang.org/x/crypto v0.52.0 // indirect golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect golang.org/x/mod v0.35.0 // indirect - golang.org/x/net v0.54.0 // indirect + golang.org/x/net v0.55.0 // indirect golang.org/x/sys v0.45.0 // indirect golang.org/x/term v0.43.0 // indirect golang.org/x/time v0.14.0 // indirect diff --git a/go.sum b/go.sum index 3b5d9548a..d6eb06b08 100644 --- a/go.sum +++ b/go.sum @@ -279,8 +279,8 @@ golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05 golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= -golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w= -golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=