From f667b7c648369efc5739fa7eaa709e5e6c74d4ad Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Mon, 19 Feb 2024 12:22:50 -0700 Subject: [PATCH] deps/go: update all Signed-off-by: Sumner Evans --- cmd/mineshspc/main.go | 2 +- database/admins.go | 2 +- database/student.go | 12 ++++++------ database/teacher.go | 12 ++++++------ database/teams.go | 16 ++++++++-------- database/volunteers.go | 2 +- flake.lock | 6 +++--- flake.nix | 8 ++++---- go.mod | 16 +++++++++------- go.sum | 36 +++++++++++++++++++++++------------- 10 files changed, 62 insertions(+), 50 deletions(-) diff --git a/cmd/mineshspc/main.go b/cmd/mineshspc/main.go index 0a5b4b4..364e8f7 100644 --- a/cmd/mineshspc/main.go +++ b/cmd/mineshspc/main.go @@ -58,7 +58,7 @@ func main() { rawDB.Log = dbutil.ZeroLogger(log) db := database.NewDatabase(rawDB) - if err := db.DB.Upgrade(); err != nil { + if err := db.DB.Upgrade(context.TODO()); err != nil { log.Fatal().Err(err).Msg("failed to upgrade the mineshspc.com database") } diff --git a/database/admins.go b/database/admins.go index c324de1..9d6fc06 100644 --- a/database/admins.go +++ b/database/admins.go @@ -7,7 +7,7 @@ import ( func (d *Database) IsEmailAdmin(ctx context.Context, email string) (bool, error) { var isAdmin bool - err := d.DB.QueryRowContext(ctx, "SELECT true FROM admins WHERE email = $1", email).Scan(&isAdmin) + err := d.DB.QueryRow(ctx, "SELECT true FROM admins WHERE email = $1", email).Scan(&isAdmin) if err == sql.ErrNoRows { return false, nil } else if err != nil { diff --git a/database/student.go b/database/student.go index 842e95b..33e90c1 100644 --- a/database/student.go +++ b/database/student.go @@ -10,7 +10,7 @@ func (d *Database) GetStudentByEmail(ctx context.Context, email string) (*Studen var student Student var parentEmail, signatory, dietaryRestrictions sql.NullString var campusTour sql.NullBool - err := d.DB.QueryRowContext(ctx, ` + err := d.DB.QueryRow(ctx, ` SELECT teamid, email, name, age, parentemail, signatory, previouslyparticipated, emailconfirmed, liabilitywaiver, computerusewaiver, campustour, dietaryrestrictions, qrcodesent, checkedin @@ -44,7 +44,7 @@ func (d *Database) GetStudentByEmail(ctx context.Context, email string) (*Studen } func (d *Database) ConfirmStudent(ctx context.Context, email string, campusTour bool, dietaryRestrictions, parentEmail string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` UPDATE students SET emailconfirmed = true, campustour = $1, dietaryrestrictions = $2, parentemail = $3 WHERE email = $4 @@ -62,12 +62,12 @@ func (d *Database) SignFormsForStudent(ctx context.Context, email, signatory str SET liabilitywaiver = true, %s signatory = $1 WHERE email = $2 `, computerUseQuery) - _, err := d.DB.ExecContext(ctx, q, signatory, email) + _, err := d.DB.Exec(ctx, q, signatory, email) return err } func (d *Database) GetAllDietaryRestrictions(ctx context.Context) ([]string, error) { - rows, err := d.DB.QueryContext(ctx, ` + rows, err := d.DB.Query(ctx, ` SELECT dietaryrestrictions FROM students WHERE dietaryrestrictions != '' AND dietaryrestrictions IS NOT NULL @@ -88,7 +88,7 @@ func (d *Database) GetAllDietaryRestrictions(ctx context.Context) ([]string, err } func (d *Database) MarkQRCodeSent(ctx context.Context, email string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` UPDATE students SET qrcodesent = true WHERE email = $1 @@ -97,7 +97,7 @@ func (d *Database) MarkQRCodeSent(ctx context.Context, email string) error { } func (d *Database) CheckInStudent(ctx context.Context, email string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` UPDATE students SET checkedin = true WHERE email = $1 diff --git a/database/teacher.go b/database/teacher.go index dad930d..1855c6f 100644 --- a/database/teacher.go +++ b/database/teacher.go @@ -19,12 +19,12 @@ type Teacher struct { } func (d *Database) NewTeacher(ctx context.Context, name, email string) error { - _, err := d.DB.ExecContext(ctx, "INSERT INTO teachers (name, email) VALUES (?, ?)", name, email) + _, err := d.DB.Exec(ctx, "INSERT INTO teachers (name, email) VALUES (?, ?)", name, email) return err } func (d *Database) SetEmailConfirmed(ctx context.Context, email string) error { - _, err := d.DB.ExecContext(ctx, "UPDATE teachers SET emailconfirmed = TRUE WHERE email = ?", email) + _, err := d.DB.Exec(ctx, "UPDATE teachers SET emailconfirmed = TRUE WHERE email = ?", email) return err } @@ -49,7 +49,7 @@ func (d *Database) scanTeacher(row dbutil.Scannable) (*Teacher, error) { } func (d *Database) GetTeacherByEmail(ctx context.Context, email string) (*Teacher, error) { - row := d.DB.QueryRowContext(ctx, ` + row := d.DB.QueryRow(ctx, ` SELECT t.name, t.email, t.emailconfirmed, t.emailallowance, t.schoolname, t.schoolcity, t.schoolstate FROM teachers t WHERE t.email = ? @@ -58,7 +58,7 @@ func (d *Database) GetTeacherByEmail(ctx context.Context, email string) (*Teache } func (d *Database) GetTeacherForTeam(ctx context.Context, teamID uuid.UUID) (*Teacher, error) { - row := d.DB.QueryRowContext(ctx, ` + row := d.DB.QueryRow(ctx, ` SELECT t.name, t.email, t.emailconfirmed, t.emailallowance, t.schoolname, t.schoolcity, t.schoolstate FROM teachers t JOIN teams tea ON tea.teacheremail = t.email @@ -68,7 +68,7 @@ func (d *Database) GetTeacherForTeam(ctx context.Context, teamID uuid.UUID) (*Te } func (d *Database) SetTeacherSchoolInfo(ctx context.Context, email, schoolName, schoolCity, schoolState string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` UPDATE teachers SET schoolname = ?, schoolcity = ?, schoolstate = ? WHERE email = ? @@ -77,7 +77,7 @@ func (d *Database) SetTeacherSchoolInfo(ctx context.Context, email, schoolName, } func (d *Database) DecrementEmailAllowance(ctx context.Context, email string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` UPDATE teachers SET emailallowance = emailallowance - 1 WHERE email = ? diff --git a/database/teams.go b/database/teams.go index d76cf58..143e555 100644 --- a/database/teams.go +++ b/database/teams.go @@ -84,7 +84,7 @@ func (d *Database) scanTeamWithTeacherName(row dbutil.Scannable) (*TeamWithTeach } func (d *Database) scanTeamStudents(ctx context.Context, team *Team) error { - studentRows, err := d.DB.QueryContext(ctx, ` + studentRows, err := d.DB.Query(ctx, ` SELECT s.email, s.name, s.age, s.parentemail, s.signatory, s.previouslyparticipated, s.emailconfirmed, s.liabilitywaiver, s.computerusewaiver, s.campustour, s.dietaryrestrictions, s.qrcodesent, s.checkedin FROM students s @@ -151,7 +151,7 @@ func (d *Database) scanTeamWithStudentsAndTeacherName(ctx context.Context, row d } func (d *Database) GetTeacherTeams(ctx context.Context, email string) ([]*Team, error) { - rows, err := d.DB.QueryContext(ctx, ` + rows, err := d.DB.Query(ctx, ` SELECT t.id, t.teacheremail, t.name, t.division, t.inperson, t.divisionexplanation, tt.schoolname, t.registration_ts FROM teams t JOIN teachers tt ON tt.email = t.teacheremail @@ -176,7 +176,7 @@ func (d *Database) GetTeacherTeams(ctx context.Context, email string) ([]*Team, } func (d *Database) GetAdminTeamsWithTeacherName(ctx context.Context) ([]*TeamWithTeacherName, error) { - rows, err := d.DB.QueryContext(ctx, ` + rows, err := d.DB.Query(ctx, ` SELECT t.id, t.teacheremail, t.name, t.division, t.inperson, t.divisionexplanation, tt.schoolname, t.registration_ts, tt.name FROM teams t JOIN teachers tt ON tt.email = t.teacheremail @@ -200,7 +200,7 @@ func (d *Database) GetAdminTeamsWithTeacherName(ctx context.Context) ([]*TeamWit } func (d *Database) GetTeam(ctx context.Context, email string, teamID uuid.UUID) (*Team, error) { - row := d.DB.QueryRowContext(ctx, ` + row := d.DB.QueryRow(ctx, ` SELECT t.id, t.teacheremail, t.name, t.division, t.inperson, t.divisionexplanation, tt.schoolname, t.registration_ts FROM teams t JOIN teachers tt ON tt.email = t.teacheremail @@ -211,7 +211,7 @@ func (d *Database) GetTeam(ctx context.Context, email string, teamID uuid.UUID) } func (d *Database) GetTeamNoMembers(ctx context.Context, teamID uuid.UUID) (*Team, error) { - row := d.DB.QueryRowContext(ctx, ` + row := d.DB.QueryRow(ctx, ` SELECT t.id, t.teacheremail, t.name, t.division, t.inperson, t.divisionexplanation, '', t.registration_ts FROM teams t WHERE t.id = ? @@ -220,7 +220,7 @@ func (d *Database) GetTeamNoMembers(ctx context.Context, teamID uuid.UUID) (*Tea } func (d *Database) UpsertTeam(ctx context.Context, teacherEmail string, teamID uuid.UUID, name string, division Division, inPerson bool, divisionExplanation string) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` INSERT OR REPLACE INTO teams (id, teacheremail, name, division, inperson, divisionexplanation, registration_ts) VALUES (?, ?, ?, ?, ?, ?, ?) `, teamID, teacherEmail, name, division, inPerson, divisionExplanation, time.Now().UnixMilli()) @@ -228,7 +228,7 @@ func (d *Database) UpsertTeam(ctx context.Context, teacherEmail string, teamID u } func (d *Database) AddTeamMember(ctx context.Context, teamID uuid.UUID, name string, studentAge int, studentEmail string, previouslyParticipated bool) error { - _, err := d.DB.ExecContext(ctx, ` + _, err := d.DB.Exec(ctx, ` INSERT INTO students (teamid, name, age, email, previouslyparticipated) VALUES (?, ?, ?, ?, ?) `, teamID, name, studentAge, studentEmail, previouslyParticipated) @@ -236,7 +236,7 @@ func (d *Database) AddTeamMember(ctx context.Context, teamID uuid.UUID, name str } func (d *Database) RemoveTeamMember(ctx context.Context, teamID uuid.UUID, studentEmail string) error { - res, err := d.DB.ExecContext(ctx, ` + res, err := d.DB.Exec(ctx, ` DELETE FROM students WHERE teamid = ? AND email = ? diff --git a/database/volunteers.go b/database/volunteers.go index 2d9278c..a0b5844 100644 --- a/database/volunteers.go +++ b/database/volunteers.go @@ -13,7 +13,7 @@ func (d *Database) IsEmailVolunteer(ctx context.Context, email string) (bool, er } var isVolunteer bool - err := d.DB.QueryRowContext(ctx, "SELECT true FROM volunteers WHERE email = $1", email).Scan(&isVolunteer) + err := d.DB.QueryRow(ctx, "SELECT true FROM volunteers WHERE email = $1", email).Scan(&isVolunteer) if err == sql.ErrNoRows { return false, nil } else if err != nil { diff --git a/flake.lock b/flake.lock index b20ee37..720dd09 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1705496572, - "narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", + "lastModified": 1708296515, + "narHash": "sha256-FyF489fYNAUy7b6dkYV6rGPyzp+4tThhr80KNAaF/yY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19", + "rev": "b98a4e1746acceb92c509bc496ef3d0e5ad8d4aa", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 765fc5a..ca90d8e 100644 --- a/flake.nix +++ b/flake.nix @@ -9,17 +9,17 @@ (flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in rec { - packages.mineshspc = pkgs.buildGoModule { + packages.mineshspc = pkgs.buildGo122Module { pname = "mineshspc.com"; - version = "unstable-2023-05-15"; + version = "unstable-2024-02-19"; src = self; subPackages = [ "cmd/mineshspc" ]; - vendorHash = "sha256-6kIbPQgxqbTuwiE++jmGWNVM02WJP6iFoYAMncrmSgc="; + vendorHash = "sha256-qc7xBcs2P4zLVkoUAntg2oPCTKqGvpL5Hxj3d3bJDo4="; }; packages.default = packages.mineshspc; devShells.default = pkgs.mkShell { - packages = with pkgs; [ go_1_20 gopls gotools pre-commit ]; + packages = with pkgs; [ go_1_22 gopls gotools pre-commit ]; }; })); } diff --git a/go.mod b/go.mod index b8c47e3..5fcd32e 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,18 @@ module github.com/ColoradoSchoolOfMines/mineshspc.com -go 1.19 +go 1.22 + +toolchain go1.22.0 require ( github.com/go-chi/chi/v5 v5.0.12 github.com/golang-jwt/jwt/v4 v4.5.0 - github.com/mattn/go-sqlite3 v1.14.19 - github.com/rs/zerolog v1.31.0 + github.com/mattn/go-sqlite3 v1.14.22 + github.com/rs/zerolog v1.32.0 github.com/sendgrid/sendgrid-go v3.14.0+incompatible github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/spf13/viper v1.18.2 - go.mau.fi/util v0.2.1 + go.mau.fi/util v0.4.0 ) require ( @@ -31,13 +33,13 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20231226003508-02704c960a9b // indirect + golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect golang.org/x/text v0.14.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) require ( - github.com/google/uuid v1.5.0 - golang.org/x/sys v0.15.0 // indirect + github.com/google/uuid v1.6.0 + golang.org/x/sys v0.17.0 // indirect ) diff --git a/go.sum b/go.sum index 255b907..a396962 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,12 @@ -github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/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.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= @@ -12,12 +15,15 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x 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/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +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/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= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= @@ -26,8 +32,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-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI= -github.com/mattn/go-sqlite3 v1.14.19/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/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= @@ -35,11 +41,13 @@ github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdU 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/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A= -github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= @@ -69,22 +77,24 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -go.mau.fi/util v0.2.1 h1:eazulhFE/UmjOFtPrGg6zkF5YfAyiDzQb8ihLMbsPWw= -go.mau.fi/util v0.2.1/go.mod h1:MjlzCQEMzJ+G8RsPawHzpLB8rwTo3aPIjG5FzBvQT/c= +go.mau.fi/util v0.4.0 h1:S2X3qU4pUcb/vxBRfAuZjbrR9xVMAXSjQojNBLPBbhs= +go.mau.fi/util v0.4.0/go.mod h1:leeiHtgVBuN+W9aDii3deAXnfC563iN3WK6BF8/AjNw= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4= -golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= 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/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.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.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/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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/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=