From 907ecf3226ec3d475642b338f3367cf6b7435e06 Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Tue, 17 May 2022 16:16:29 +0300 Subject: [PATCH 001/162] docs: Update documentation and assets (#2860) Co-authored-by: Fernandez Ludovic --- CHANGELOG.md | 10 +++ README.md | 105 ++++++++++++++++--------------- assets/github-action-config.json | 8 +-- docs/template_data.state | 2 +- 4 files changed, 68 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf1880792630..9684faecb840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.46.2 + +1. updated linters: + * `execinquery`: bump from v1.2.0 to v1.2.1 + * `errorlint`: bump to v1.0.0 + * `thelper`: allow to disable one option +2. documentation: + * rename `.golangci.example.yml` to `.golangci.reference.yml` + * add `containedctx` linter to the list of available linters + ### v1.46.1 1. updated linters: diff --git a/README.md b/README.md index 02bb45ac9f76..c10d23ac896c 100644 --- a/README.md +++ b/README.md @@ -74,19 +74,19 @@ The Core Team has the following responsibilities:
@iwankgb
-
Andrew Shannon Brown

Kamil Samigullin
+
Andrew Shannon Brown

Ryan Currah

Pierre Durand

Denis Tingaikin

Sebastien Rosset
-
David Lobe

sivchari
+
David Lobe

Alexey Palazhchenko
-
Duco van Amstel

@golangci-releaser
+
Duco van Amstel

Nishanth Shanmugham

Kensei Nakada
@@ -111,7 +111,7 @@ The Core Team has the following responsibilities:
-And 309 more our team members +And 310 more our team members @@ -152,7 +152,7 @@ The Core Team has the following responsibilities: - + @@ -164,12 +164,12 @@ The Core Team has the following responsibilities: + - - + @@ -280,237 +280,238 @@ The Core Team has the following responsibilities: + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + - + - + - + - - + + - + - + - + - + - +

Eugene Simonov

SystemGlitch

SystemGlitch

Henrik Johansson

Tom Arrell

Christian Mehlmauer

Neha Viswanathan

Oleksandr Redko

David Braley

Chris Bandy

Patrick Kuca

Viacheslav Poturaev

Lukas Malkmus

Chris Bandy

Lukas Malkmus

Nate Finch

Kir Kolyshkin

Zik

@ced42

David Bariod

Stephen Benjamin

Yuki Okushi

Eldar Rakhimberdin

Toon Schoenmakers

Cezar Sá Espinola

Ben Paxton

Ben Paxton

Connor Adams

Draven

David Cuadrado

Martins Irbe

Craig Furman

Rodrigo Brito

@techknowlogick

takaya

@techknowlogick

takaya

Mark Sart

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

Linus Arver

Glen Mailer

Ian Howell

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

subham sarkar

smantic

Ryan Leung

Donal Byrne

Ryan Leung

Donal Byrne

Marko

Chris Lewis

David Gleich

Muhammad Ikhsan

Denis Titusov

Terdunov Vyacheslav

Sean Chittenden

Terdunov Vyacheslav

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

Anton Antonov

@hn8

Kevin Gillette

Milas Bowman

Kevin Gillette

Milas Bowman

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Fisher Xu

Matthew Poer

Cody Ley-Han

@pohang

Cody Ley-Han

@pohang

@darklore

@to6ka

@evalexpr

Collin Kreklow

Marcin Owsiany

C.J. Jameson

Jack

C.J. Jameson

Jack

paul fisher

@ofw

Rafik Draoui

Miles Delahunty

Yuki Okushi

@sg0hsmt

Ryo Sato

Ryo Sato

Eric Zimanyi

Boban Acimovic

Dima

David Hill

Troy Ronda

Jared Allard

Osamu TONOMORI

Bo Liu

Osamu TONOMORI

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Roman Leventov

Eric Jain

Hugo

Mathias Weber

Hugo

Mathias Weber

Naveen

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Daniel Caballero

Carlton Henderson

Shintaro Ikeda

Carlton Henderson

Shintaro Ikeda

Matt Braymer-Hayes

@ttys3

Tomas Dabasinskas

@xuri

Charl Matthee

Sriram Venkatesh

Peter Schuller

Sriram Venkatesh

Peter Schuller

David Golub

Alexander Morozov

@hbandura

Liam White

Alex Dupre

Juanito

Jinming Yue

Juanito

Jinming Yue

Igor Zibarev

@wxdao

Kévin Dunglas

Sijie Yang

Stephen

Thang Minh Vu

Julia Ogris

Thang Minh Vu

Julia Ogris

Greg Curtis

@ac-rappi

Dudás Ádám

Abhishek | अभिषेक

Daniele

Takumasa Sakao

Ben Drucker

Takumasa Sakao

Ben Drucker

Stephen Brown II

Matthew Cobbing

@Darlez

Kirill Danshin

mook

Kyungmin Bae

Dylan Arbour

Kyungmin Bae

Dylan Arbour

@andreykuchin

Irina

Petr Pučil

Aaron Bennett

失眠是真滴难受

Dima

Alexandre Vilain

Alexandre Vilain

Thirukumaran Vaseeharan

Alessio Treglia

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

Matias Lahti

Matias Lahti

Sebastian Crane

Alexander Else

Vlado Pajić

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Eng Zer Jun

Mateus Esdras

Hilário Coelho

Tibo Delor

Francois Parquet

Francois Parquet

Robert Kopaczewski

Marc Tudurí

@opennota

Marc Tudurí

@opennota

Cyrille Meichel

neglect-yp

Felix

Adrien

Joe Bergevin

Guillaume JG

Anirudh Sylendranath

Anirudh Sylendranath

@jumpeiMano

Federico Guerinoni

Alex Rodin

Arjen van der Ende

Oliver Gugger

Devin Gunay

Wei Jian Gan

Wei Jian Gan

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

neo_sli

@srdhoni

@derekhuizhang

le0tk0k

Sean Schneeweiss

@connorszczepaniak-wk

pprzekwas

@madflow

@madflow

Axetroy

Arman Tarkhanian

John Adler

@licraft2019

@mlueckest

Lucas Ramage

Thomas Bonfort

Thomas Bonfort

Matthieu MOREL
diff --git a/assets/github-action-config.json b/assets/github-action-config.json index aba0238cc303..ca5f94c5327b 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.46.1", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.1/golangci-lint-1.46.1-linux-amd64.tar.gz" + "TargetVersion": "v1.46.2", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -151,8 +151,8 @@ "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.45.2/golangci-lint-1.45.2-linux-amd64.tar.gz" }, "v1.46": { - "TargetVersion": "v1.46.1", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.1/golangci-lint-1.46.1-linux-amd64.tar.gz" + "TargetVersion": "v1.46.2", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" diff --git a/docs/template_data.state b/docs/template_data.state index e2817bdbf090..8ae98789ece0 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -d3273f2bb8e834b6d8b6b290ad9703e80d06df1d34f33a3e7f9b24afd83b3b56 \ No newline at end of file +6fa4da42d81d503161d378e42adb1c519c5a4297eae650cf15da61ac96334587 \ No newline at end of file From 86bd842377d348d56cb1e2adfda871b9a05671ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 20 May 2022 03:59:31 +0300 Subject: [PATCH 002/162] chore: spelling and grammar fixes (#2865) --- pkg/fsutils/linecache.go | 2 +- pkg/golinters/gofmt_common.go | 8 ++++---- pkg/golinters/gosimple.go | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/fsutils/linecache.go b/pkg/fsutils/linecache.go index ab408e7d5443..b02751537e15 100644 --- a/pkg/fsutils/linecache.go +++ b/pkg/fsutils/linecache.go @@ -21,7 +21,7 @@ func NewLineCache(fc *FileCache) *LineCache { } } -// GetLine returns a index1-th (1-based index) line from the file on filePath +// GetLine returns the index1-th (1-based index) line from the file on filePath func (lc *LineCache) GetLine(filePath string, index1 int) (string, error) { if index1 == 0 { // some linters, e.g. gosec can do it: it really means first line index1 = 1 diff --git a/pkg/golinters/gofmt_common.go b/pkg/golinters/gofmt_common.go index 4f63e7bed853..618662bebb34 100644 --- a/pkg/golinters/gofmt_common.go +++ b/pkg/golinters/gofmt_common.go @@ -49,12 +49,12 @@ type hunkChangesParser struct { func (p *hunkChangesParser) parseDiffLines(h *diffpkg.Hunk) { lines := bytes.Split(h.Body, []byte{'\n'}) - currentOriginalLineNumer := int(h.OrigStartLine) + currentOriginalLineNumber := int(h.OrigStartLine) var ret []diffLine for i, line := range lines { dl := diffLine{ - originalNumber: currentOriginalLineNumer, + originalNumber: currentOriginalLineNumber, } lineStr := string(line) @@ -62,7 +62,7 @@ func (p *hunkChangesParser) parseDiffLines(h *diffpkg.Hunk) { if strings.HasPrefix(lineStr, "-") { dl.typ = diffLineDeleted dl.data = strings.TrimPrefix(lineStr, "-") - currentOriginalLineNumer++ + currentOriginalLineNumber++ } else if strings.HasPrefix(lineStr, "+") { dl.typ = diffLineAdded dl.data = strings.TrimPrefix(lineStr, "+") @@ -74,7 +74,7 @@ func (p *hunkChangesParser) parseDiffLines(h *diffpkg.Hunk) { dl.typ = diffLineOriginal dl.data = strings.TrimPrefix(lineStr, " ") - currentOriginalLineNumer++ + currentOriginalLineNumber++ } ret = append(ret, dl) diff --git a/pkg/golinters/gosimple.go b/pkg/golinters/gosimple.go index fa14f1a966f8..de60ded73e2d 100644 --- a/pkg/golinters/gosimple.go +++ b/pkg/golinters/gosimple.go @@ -14,7 +14,7 @@ func NewGosimple(settings *config.StaticCheckSettings) *goanalysis.Linter { return goanalysis.NewLinter( "gosimple", - "Linter for Go source code that specializes in simplifying a code", + "Linter for Go source code that specializes in simplifying code", analyzers, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) From c1dfc85af8cc696146431cad95a6e7bc318908f7 Mon Sep 17 00:00:00 2001 From: sg0hsmt Date: Sun, 22 May 2022 08:32:15 +0900 Subject: [PATCH 003/162] docs: fix typo (#2867) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9684faecb840..83806169e465 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,7 +24,7 @@ There is the most valuable changes log: * `execinquery`: https://github.com/lufeee/execinquery * `nonamedreturns`: https://github.com/firefart/nonamedreturns * `nosprintfhostport`: https://github.com/stbenjam/no-sprintf-host-port - * `exhaustruct`: https://github.com/GaijinEntertainment/go-exhaustruc + * `exhaustruct`: https://github.com/GaijinEntertainment/go-exhaustruct 2. updated linters: * `bidichk`: from 0.2.2 to 0.2.3 * `deadcode`: bump to HEAD From db5d58cd194576c440e4169788d09e4e4382e97e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 May 2022 14:55:26 +0200 Subject: [PATCH 004/162] build(deps): bump github.com/hashicorp/go-version from 1.4.0 to 1.5.0 (#2873) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 410fb6ac26c1..92e9fa51d1f5 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/gostaticanalysis/forcetypeassert v0.1.0 github.com/gostaticanalysis/nilerr v0.1.1 github.com/hashicorp/go-multierror v1.1.1 - github.com/hashicorp/go-version v1.4.0 + github.com/hashicorp/go-version v1.5.0 github.com/jgautheron/goconst v1.5.1 github.com/jingyugao/rowserrcheck v1.1.1 github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af diff --git a/go.sum b/go.sum index c0e92b283a69..ad8587464d05 100644 --- a/go.sum +++ b/go.sum @@ -413,8 +413,8 @@ github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdv 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.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.4.0 h1:aAQzgqIrRKRa7w75CKpbBxYsmUoPjzVm1W59ca1L0J4= -github.com/hashicorp/go-version v1.4.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= +github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= From 33f4aeebd9879d9072f2be42e5818e6c285301f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 May 2022 14:55:46 +0200 Subject: [PATCH 005/162] build(deps): bump github.com/kulti/thelper from 0.6.2 to 0.6.3 (#2872) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 92e9fa51d1f5..7bfa863c79f8 100644 --- a/go.mod +++ b/go.mod @@ -48,7 +48,7 @@ require ( github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af github.com/julz/importas v0.1.0 github.com/kisielk/errcheck v1.6.0 - github.com/kulti/thelper v0.6.2 + github.com/kulti/thelper v0.6.3 github.com/kunwardeep/paralleltest v1.0.3 github.com/kyoh86/exportloopref v0.1.8 github.com/ldez/gomoddirectives v0.2.3 diff --git a/go.sum b/go.sum index ad8587464d05..c42e8a5c6b68 100644 --- a/go.sum +++ b/go.sum @@ -485,8 +485,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/kulti/thelper v0.6.2 h1:K4xulKkwOCnT1CDms6Ex3uG1dvSMUUQe9zxgYQgbRXs= -github.com/kulti/thelper v0.6.2/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= +github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= +github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= github.com/kunwardeep/paralleltest v1.0.3 h1:UdKIkImEAXjR1chUWLn+PNXqWUGs//7tzMeWuP7NhmI= github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= From 97d7415b91d40524393a3b105d5f4ecabfdfaa5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 May 2022 14:57:16 +0200 Subject: [PATCH 006/162] build(deps): bump github.com/quasilyte/go-ruleguard/dsl from 0.3.19 to 0.3.21 (#2874) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7bfa863c79f8..5422006fe65b 100644 --- a/go.mod +++ b/go.mod @@ -68,7 +68,7 @@ require ( github.com/nishanths/predeclared v0.2.2 github.com/pkg/errors v0.9.1 github.com/polyfloyd/go-errorlint v1.0.0 - github.com/quasilyte/go-ruleguard/dsl v0.3.19 + github.com/quasilyte/go-ruleguard/dsl v0.3.21 github.com/ryancurrah/gomodguard v1.2.3 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 diff --git a/go.sum b/go.sum index c42e8a5c6b68..4fbec1c649a9 100644 --- a/go.sum +++ b/go.sum @@ -674,8 +674,8 @@ github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a h1:sWFav github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a/go.mod h1:VMX+OnnSw4LicdiEGtRSD/1X8kW7GuEscjYNr4cOIT4= github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/dsl v0.3.16/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.19 h1:5+KTKb2YREUYiqZFEIuifFyBxlcCUPWgNZkWy71XS0Q= -github.com/quasilyte/go-ruleguard/dsl v0.3.19/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.21 h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA= +github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= github.com/quasilyte/go-ruleguard/rules v0.0.0-20211022131956-028d6511ab71/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 h1:PDWGei+Rf2bBiuZIbZmM20J2ftEy9IeUCHA8HbQqed8= From 75be924e98a2dfb7d88b290d650eeb1b2f4e05f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 22 May 2022 17:30:22 +0300 Subject: [PATCH 007/162] build(deps): bump github.com/kisielk/errcheck from 1.6.0 to 1.6.1 (#2871) Bumps [github.com/kisielk/errcheck](https://github.com/kisielk/errcheck) from 1.6.0 to 1.6.1. - [Release notes](https://github.com/kisielk/errcheck/releases) - [Commits](https://github.com/kisielk/errcheck/compare/v1.6.0...v1.6.1) --- updated-dependencies: - dependency-name: github.com/kisielk/errcheck dependency-type: direct:production update-type: version-update:semver-patch ... 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 5422006fe65b..b12066768d83 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( github.com/jingyugao/rowserrcheck v1.1.1 github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af github.com/julz/importas v0.1.0 - github.com/kisielk/errcheck v1.6.0 + github.com/kisielk/errcheck v1.6.1 github.com/kulti/thelper v0.6.3 github.com/kunwardeep/paralleltest v1.0.3 github.com/kyoh86/exportloopref v0.1.8 diff --git a/go.sum b/go.sum index 4fbec1c649a9..19ef03d2987c 100644 --- a/go.sum +++ b/go.sum @@ -467,8 +467,8 @@ github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.0 h1:YTDO4pNy7AUN/021p+JGHycQyYNIyMoenM1YDVK6RlY= -github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/errcheck v1.6.1 h1:cErYo+J4SmEjdXZrVXGwLJCE2sB06s23LpkcyWNrT+s= +github.com/kisielk/errcheck v1.6.1/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= From f9d815115c5ab85c454b0c5029712dd805dfda53 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 23 May 2022 12:39:57 +0200 Subject: [PATCH 008/162] bump golang.org/x/tools to HEAD (#2875) * bump golang.org/x/tools to HEAD * fix: adapt linters to the new validation system. --- go.mod | 5 +- go.sum | 9 +- pkg/golinters/asciicheck.go | 4 +- pkg/golinters/bodyclose.go | 6 +- pkg/golinters/contextcheck.go | 3 +- pkg/golinters/deadcode.go | 17 ++- pkg/golinters/decorder.go | 4 +- pkg/golinters/depguard.go | 14 +- pkg/golinters/dogsled.go | 64 +++++---- pkg/golinters/dupl.go | 108 ++++++++------ pkg/golinters/durationcheck.go | 8 +- pkg/golinters/errcheck.go | 95 ++++++------ pkg/golinters/errname.go | 6 +- pkg/golinters/exhaustive.go | 8 +- pkg/golinters/exhaustruct.go | 9 +- pkg/golinters/forbidigo.go | 90 +++++++----- pkg/golinters/funlen.go | 74 ++++++---- pkg/golinters/gci.go | 1 - pkg/golinters/goanalysis/linter.go | 4 + pkg/golinters/gochecknoinits.go | 1 + pkg/golinters/gocognit.go | 78 +++++----- pkg/golinters/goconst.go | 55 +++---- pkg/golinters/gocritic.go | 194 ++++++++++++++----------- pkg/golinters/gocyclo.go | 71 +++++---- pkg/golinters/godot.go | 111 ++++++++------ pkg/golinters/godox.go | 69 +++++---- pkg/golinters/goerr113.go | 4 +- pkg/golinters/gofmt.go | 64 +++++---- pkg/golinters/gofmt_common.go | 10 +- pkg/golinters/gofumpt.go | 125 +++++++++------- pkg/golinters/goheader.go | 123 +++++++++------- pkg/golinters/goimports.go | 67 +++++---- pkg/golinters/golint.go | 94 ++++++------ pkg/golinters/gomoddirectives.go | 1 + pkg/golinters/gomodguard.go | 56 ++++---- pkg/golinters/gosec.go | 132 +++++++++-------- pkg/golinters/govet.go | 23 +-- pkg/golinters/interfacer.go | 73 ++++++---- pkg/golinters/lll.go | 113 ++++++++------- pkg/golinters/maintidx.go | 4 +- pkg/golinters/makezero.go | 73 ++++++---- pkg/golinters/maligned.go | 74 ++++++---- pkg/golinters/misspell.go | 178 ++++++++++++----------- pkg/golinters/nakedret.go | 99 +++++++------ pkg/golinters/nestif.go | 78 +++++----- pkg/golinters/nilerr.go | 1 + pkg/golinters/noctx.go | 6 +- pkg/golinters/nolintlint.go | 131 +++++++++-------- pkg/golinters/paralleltest.go | 6 +- pkg/golinters/prealloc.go | 56 ++++---- pkg/golinters/promlinter.go | 78 +++++----- pkg/golinters/revive.go | 124 +++++++++------- pkg/golinters/rowserrcheck.go | 18 +-- pkg/golinters/scopelint.go | 61 ++++---- pkg/golinters/sqlclosecheck.go | 8 +- pkg/golinters/structcheck.go | 76 ++++++---- pkg/golinters/tagliatelle.go | 8 +- pkg/golinters/tenv.go | 6 +- pkg/golinters/testpackage.go | 2 + pkg/golinters/tparallel.go | 6 +- pkg/golinters/typecheck.go | 8 +- pkg/golinters/unconvert.go | 68 +++++---- pkg/golinters/unparam.go | 94 ++++++------ pkg/golinters/unused.go | 86 ++++++----- pkg/golinters/varcheck.go | 59 +++++--- pkg/golinters/wastedassign.go | 6 +- pkg/golinters/whitespace.go | 109 ++++++++------ pkg/golinters/wsl.go | 125 ++++++++-------- pkg/lint/linter/config.go | 2 +- pkg/lint/lintersdb/manager.go | 208 ++++++++++++++++++--------- pkg/lint/load.go | 4 +- pkg/result/processors/nolint.go | 8 +- pkg/result/processors/nolint_test.go | 4 +- test/testdata/prealloc.go | 4 +- 74 files changed, 2222 insertions(+), 1649 deletions(-) diff --git a/go.mod b/go.mod index b12066768d83..a7ce24b087ae 100644 --- a/go.mod +++ b/go.mod @@ -99,7 +99,7 @@ require ( github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 gitlab.com/bosi/decorder v0.2.1 - golang.org/x/tools v0.1.11-0.20220316014157-77aa08bb151a + golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b honnef.co/go/tools v0.3.1 mvdan.cc/gofumpt v0.3.1 @@ -165,11 +165,10 @@ require ( github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect - golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 // indirect golang.org/x/text v0.3.7 // indirect - golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 19ef03d2987c..cfb9e0d9e8b7 100644 --- a/go.sum +++ b/go.sum @@ -917,8 +917,9 @@ 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.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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= @@ -1207,10 +1208,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.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= @@ -1220,8 +1219,8 @@ golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11-0.20220316014157-77aa08bb151a h1:ofrrl6c6NG5/IOSx/R1cyiQxxjqlur0h/TvbUhkH0II= -golang.org/x/tools v0.1.11-0.20220316014157-77aa08bb151a/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 h1:/IsvdCr9GrirHTBBfgW/iJ4uDhMPf+OnOLrp4og7MzU= +golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= 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= diff --git a/pkg/golinters/asciicheck.go b/pkg/golinters/asciicheck.go index 1bf8c7b7da19..df301b417bc5 100644 --- a/pkg/golinters/asciicheck.go +++ b/pkg/golinters/asciicheck.go @@ -11,9 +11,7 @@ func NewAsciicheck() *goanalysis.Linter { return goanalysis.NewLinter( "asciicheck", "Simple linter to check that your code does not contain non-ASCII identifiers", - []*analysis.Analyzer{ - asciicheck.NewAnalyzer(), - }, + []*analysis.Analyzer{asciicheck.NewAnalyzer()}, nil, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/bodyclose.go b/pkg/golinters/bodyclose.go index 0e03813d1a77..e56bd83f28cb 100644 --- a/pkg/golinters/bodyclose.go +++ b/pkg/golinters/bodyclose.go @@ -8,14 +8,10 @@ import ( ) func NewBodyclose() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - bodyclose.Analyzer, - } - return goanalysis.NewLinter( "bodyclose", "checks whether HTTP response body is closed successfully", - analyzers, + []*analysis.Analyzer{bodyclose.Analyzer}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/contextcheck.go b/pkg/golinters/contextcheck.go index eb12ed4ef39f..38ede810dec9 100644 --- a/pkg/golinters/contextcheck.go +++ b/pkg/golinters/contextcheck.go @@ -8,11 +8,10 @@ import ( ) func NewContextCheck() *goanalysis.Linter { - analyzer := contextcheck.NewAnalyzer() return goanalysis.NewLinter( "contextcheck", "check the function whether use a non-inherited context", - []*analysis.Analyzer{analyzer}, + []*analysis.Analyzer{contextcheck.NewAnalyzer()}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/deadcode.go b/pkg/golinters/deadcode.go index 6ff38909fba4..408b180b935c 100644 --- a/pkg/golinters/deadcode.go +++ b/pkg/golinters/deadcode.go @@ -12,28 +12,36 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) +const deadcodeName = "deadcode" + func NewDeadcode() *goanalysis.Linter { - const linterName = "deadcode" var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: linterName, + Name: deadcodeName, Doc: goanalysis.TheOnlyanalyzerDoc, Run: func(pass *analysis.Pass) (interface{}, error) { prog := goanalysis.MakeFakeLoaderProgram(pass) + issues, err := deadcodeAPI.Run(prog) if err != nil { return nil, err } + res := make([]goanalysis.Issue, 0, len(issues)) for _, i := range issues { res = append(res, goanalysis.NewIssue(&result.Issue{ Pos: i.Pos, Text: fmt.Sprintf("%s is unused", formatCode(i.UnusedIdentName, nil)), - FromLinter: linterName, + FromLinter: deadcodeName, }, pass)) } + + if len(issues) == 0 { + return nil, nil + } + mu.Lock() resIssues = append(resIssues, res...) mu.Unlock() @@ -41,8 +49,9 @@ func NewDeadcode() *goanalysis.Linter { return nil, nil }, } + return goanalysis.NewLinter( - linterName, + deadcodeName, "Finds unused code", []*analysis.Analyzer{analyzer}, nil, diff --git a/pkg/golinters/decorder.go b/pkg/golinters/decorder.go index 672f206ea35c..1c93acaa2c61 100644 --- a/pkg/golinters/decorder.go +++ b/pkg/golinters/decorder.go @@ -13,8 +13,6 @@ import ( func NewDecorder(settings *config.DecorderSettings) *goanalysis.Linter { a := decorder.Analyzer - analyzers := []*analysis.Analyzer{a} - // disable all rules/checks by default cfg := map[string]interface{}{ "disable-dec-num-check": true, @@ -32,7 +30,7 @@ func NewDecorder(settings *config.DecorderSettings) *goanalysis.Linter { return goanalysis.NewLinter( a.Name, a.Doc, - analyzers, + []*analysis.Analyzer{a}, map[string]map[string]interface{}{a.Name: cfg}, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/depguard.go b/pkg/golinters/depguard.go index 523db79b5a5e..6672330d0b62 100644 --- a/pkg/golinters/depguard.go +++ b/pkg/golinters/depguard.go @@ -15,23 +15,25 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) -const depguardLinterName = "depguard" +const depguardName = "depguard" -func NewDepguard() *goanalysis.Linter { +func NewDepguard(settings *config.DepGuardSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: depguardLinterName, + Name: depguardName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( - depguardLinterName, + depguardName, "Go linter that checks if package imports are in a list of acceptable packages", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - dg, err := newDepGuard(&lintCtx.Settings().Depguard) + dg, err := newDepGuard(settings) analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { if err != nil { @@ -153,7 +155,7 @@ func (g guardian) run(loadConfig *loader.Config, prog *loader.Program, pass *ana goanalysis.NewIssue(&result.Issue{ Pos: issue.Position, Text: g.createMsg(issue.PackageName), - FromLinter: depguardLinterName, + FromLinter: depguardName, }, pass), ) } diff --git a/pkg/golinters/dogsled.go b/pkg/golinters/dogsled.go index 8978ff913dc9..00c32c2dc929 100644 --- a/pkg/golinters/dogsled.go +++ b/pkg/golinters/dogsled.go @@ -8,51 +8,65 @@ import ( "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -const dogsledLinterName = "dogsled" +const dogsledName = "dogsled" -func NewDogsled() *goanalysis.Linter { +//nolint:dupl +func NewDogsled(settings *config.DogsledSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: dogsledLinterName, + Name: dogsledName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - dogsledLinterName, - "Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f())", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var pkgIssues []goanalysis.Issue - for _, f := range pass.Files { - v := returnsVisitor{ - maxBlanks: lintCtx.Settings().Dogsled.MaxBlankIdentifiers, - f: pass.Fset, - } - ast.Walk(&v, f) - for i := range v.issues { - pkgIssues = append(pkgIssues, goanalysis.NewIssue(&v.issues[i], pass)) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runDogsled(pass, settings) + + if len(issues) == 0 { + return nil, nil } mu.Lock() - resIssues = append(resIssues, pkgIssues...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + dogsledName, + "Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f())", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } +func runDogsled(pass *analysis.Pass, settings *config.DogsledSettings) []goanalysis.Issue { + var reports []goanalysis.Issue + for _, f := range pass.Files { + v := &returnsVisitor{ + maxBlanks: settings.MaxBlankIdentifiers, + f: pass.Fset, + } + + ast.Walk(v, f) + + for i := range v.issues { + reports = append(reports, goanalysis.NewIssue(&v.issues[i], pass)) + } + } + + return reports +} + type returnsVisitor struct { f *token.FileSet maxBlanks int @@ -87,7 +101,7 @@ func (v *returnsVisitor) Visit(node ast.Node) ast.Visitor { if numBlank > v.maxBlanks { v.issues = append(v.issues, result.Issue{ - FromLinter: dogsledLinterName, + FromLinter: dogsledName, Text: fmt.Sprintf("declaration has %v blank identifiers", numBlank), Pos: v.f.Position(assgnStmt.Pos()), }) diff --git a/pkg/golinters/dupl.go b/pkg/golinters/dupl.go index ed1c4fcbdc50..8c8d8fe4f310 100644 --- a/pkg/golinters/dupl.go +++ b/pkg/golinters/dupl.go @@ -9,36 +9,25 @@ import ( "github.com/pkg/errors" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/fsutils" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -const duplLinterName = "dupl" +const duplName = "dupl" -func NewDupl() *goanalysis.Linter { +//nolint:dupl +func NewDupl(settings *config.DuplSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: duplLinterName, + Name: duplName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - duplLinterName, - "Tool for code clone detection", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } - - issues, err := duplAPI.Run(fileNames, lintCtx.Settings().Dupl.Threshold) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runDupl(pass, settings) if err != nil { return nil, err } @@ -47,37 +36,66 @@ func NewDupl() *goanalysis.Linter { return nil, nil } - res := make([]goanalysis.Issue, 0, len(issues)) - for _, i := range issues { - toFilename, err := fsutils.ShortestRelPath(i.To.Filename(), "") - if err != nil { - return nil, errors.Wrapf(err, "failed to get shortest rel path for %q", i.To.Filename()) - } - dupl := fmt.Sprintf("%s:%d-%d", toFilename, i.To.LineStart(), i.To.LineEnd()) - text := fmt.Sprintf("%d-%d lines are duplicate of %s", - i.From.LineStart(), i.From.LineEnd(), - formatCode(dupl, lintCtx.Cfg)) - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: token.Position{ - Filename: i.From.Filename(), - Line: i.From.LineStart(), - }, - LineRange: &result.Range{ - From: i.From.LineStart(), - To: i.From.LineEnd(), - }, - Text: text, - FromLinter: duplLinterName, - }, pass)) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + duplName, + "Tool for code clone detection", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runDupl(pass *analysis.Pass, settings *config.DuplSettings) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + issues, err := duplAPI.Run(fileNames, settings.Threshold) + if err != nil { + return nil, err + } + + if len(issues) == 0 { + return nil, nil + } + + res := make([]goanalysis.Issue, 0, len(issues)) + + for _, i := range issues { + toFilename, err := fsutils.ShortestRelPath(i.To.Filename(), "") + if err != nil { + return nil, errors.Wrapf(err, "failed to get shortest rel path for %q", i.To.Filename()) + } + + dupl := fmt.Sprintf("%s:%d-%d", toFilename, i.To.LineStart(), i.To.LineEnd()) + text := fmt.Sprintf("%d-%d lines are duplicate of %s", + i.From.LineStart(), i.From.LineEnd(), + formatCode(dupl, nil)) + + res = append(res, goanalysis.NewIssue(&result.Issue{ + Pos: token.Position{ + Filename: i.From.Filename(), + Line: i.From.LineStart(), + }, + LineRange: &result.Range{ + From: i.From.LineStart(), + To: i.From.LineEnd(), + }, + Text: text, + FromLinter: duplName, + }, pass)) + } + + return res, nil +} diff --git a/pkg/golinters/durationcheck.go b/pkg/golinters/durationcheck.go index 9c452af50ea5..880de5d4200a 100644 --- a/pkg/golinters/durationcheck.go +++ b/pkg/golinters/durationcheck.go @@ -10,6 +10,10 @@ import ( func NewDurationCheck() *goanalysis.Linter { a := durationcheck.Analyzer - return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil). - WithLoadMode(goanalysis.LoadModeTypesInfo) + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/errcheck.go b/pkg/golinters/errcheck.go index faea6bcc246a..53fe22e68c02 100644 --- a/pkg/golinters/errcheck.go +++ b/pkg/golinters/errcheck.go @@ -22,26 +22,27 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) -func NewErrcheck() *goanalysis.Linter { - const linterName = "errcheck" +const errcheckName = "errcheck" +func NewErrcheck(settings *config.ErrcheckSettings) *goanalysis.Linter { var mu sync.Mutex - var res []goanalysis.Issue + var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: linterName, + Name: errcheckName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } return goanalysis.NewLinter( - linterName, + errcheckName, "Errcheck is a program for checking for unchecked errors "+ "in go programs. These unchecked errors can be critical bugs in some cases", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { // copied from errcheck - checker, err := getChecker(&lintCtx.Settings().Errcheck) + checker, err := getChecker(settings) if err != nil { lintCtx.Log.Errorf("failed to get checker: %v", err) return @@ -50,56 +51,66 @@ func NewErrcheck() *goanalysis.Linter { checker.Tags = lintCtx.Cfg.Run.BuildTags analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - pkg := &packages.Package{ - Fset: pass.Fset, - Syntax: pass.Files, - Types: pass.Pkg, - TypesInfo: pass.TypesInfo, + issues := runErrCheck(lintCtx, pass, checker) + if err != nil { + return nil, err } - errcheckIssues := checker.CheckPackage(pkg).Unique() - if len(errcheckIssues.UncheckedErrors) == 0 { + if len(issues) == 0 { return nil, nil } - issues := make([]goanalysis.Issue, len(errcheckIssues.UncheckedErrors)) - for i, err := range errcheckIssues.UncheckedErrors { - var text string - if err.FuncName != "" { - code := err.SelectorName - if err.SelectorName == "" { - code = err.FuncName - } - - text = fmt.Sprintf( - "Error return value of %s is not checked", - formatCode(code, lintCtx.Cfg), - ) - } else { - text = "Error return value is not checked" - } - - issues[i] = goanalysis.NewIssue( - &result.Issue{ - FromLinter: linterName, - Text: text, - Pos: err.Pos, - }, - pass, - ) - } - mu.Lock() - res = append(res, issues...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil } }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return res + return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } +func runErrCheck(lintCtx *linter.Context, pass *analysis.Pass, checker *errcheck.Checker) []goanalysis.Issue { + pkg := &packages.Package{ + Fset: pass.Fset, + Syntax: pass.Files, + Types: pass.Pkg, + TypesInfo: pass.TypesInfo, + } + + lintIssues := checker.CheckPackage(pkg).Unique() + if len(lintIssues.UncheckedErrors) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, len(lintIssues.UncheckedErrors)) + + for i, err := range lintIssues.UncheckedErrors { + text := "Error return value is not checked" + + if err.FuncName != "" { + code := err.SelectorName + if err.SelectorName == "" { + code = err.FuncName + } + + text = fmt.Sprintf("Error return value of %s is not checked", formatCode(code, lintCtx.Cfg)) + } + + issues[i] = goanalysis.NewIssue( + &result.Issue{ + FromLinter: errcheckName, + Text: text, + Pos: err.Pos, + }, + pass, + ) + } + + return issues +} + // parseIgnoreConfig was taken from errcheck in order to keep the API identical. // https://github.com/kisielk/errcheck/blob/1787c4bee836470bf45018cfbc783650db3c6501/main.go#L25-L60 func parseIgnoreConfig(s string) (map[string]*regexp.Regexp, error) { diff --git a/pkg/golinters/errname.go b/pkg/golinters/errname.go index 7ee8113478ba..96564cfa8cbe 100644 --- a/pkg/golinters/errname.go +++ b/pkg/golinters/errname.go @@ -8,14 +8,10 @@ import ( ) func NewErrName() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - analyzer.New(), - } - return goanalysis.NewLinter( "errname", "Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`.", - analyzers, + []*analysis.Analyzer{analyzer.New()}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/exhaustive.go b/pkg/golinters/exhaustive.go index ea264687df38..778dc004b29f 100644 --- a/pkg/golinters/exhaustive.go +++ b/pkg/golinters/exhaustive.go @@ -23,6 +23,10 @@ func NewExhaustive(settings *config.ExhaustiveSettings) *goanalysis.Linter { } } - return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, cfg). - WithLoadMode(goanalysis.LoadModeTypesInfo) + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + cfg, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/exhaustruct.go b/pkg/golinters/exhaustruct.go index 8c843289dd9e..37ea055d3ef7 100644 --- a/pkg/golinters/exhaustruct.go +++ b/pkg/golinters/exhaustruct.go @@ -10,7 +10,6 @@ import ( func NewExhaustruct(settings *config.ExhaustructSettings) *goanalysis.Linter { var include, exclude []string - if settings != nil { include = settings.Include exclude = settings.Exclude @@ -21,6 +20,10 @@ func NewExhaustruct(settings *config.ExhaustructSettings) *goanalysis.Linter { linterLogger.Fatalf("exhaustruct configuration: %v", err) } - return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil). - WithLoadMode(goanalysis.LoadModeTypesInfo) + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/forbidigo.go b/pkg/golinters/forbidigo.go index 2fa9d51833e7..a8c256b9ee5a 100644 --- a/pkg/golinters/forbidigo.go +++ b/pkg/golinters/forbidigo.go @@ -7,64 +7,76 @@ import ( "github.com/pkg/errors" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewForbidigo() *goanalysis.Linter { - const linterName = "forbidigo" +const forbidigoName = "forbidigo" + +//nolint:dupl +func NewForbidigo(settings *config.ForbidigoSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: linterName, + Name: forbidigoName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - linterName, - "Forbids identifiers", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - s := &lintCtx.Settings().Forbidigo - - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var res []goanalysis.Issue - options := []forbidigo.Option{ - forbidigo.OptionExcludeGodocExamples(s.ExcludeGodocExamples), - // disable "//permit" directives so only "//nolint" directives matters within golangci lint - forbidigo.OptionIgnorePermitDirectives(true), - } - forbid, err := forbidigo.NewLinter(s.Forbid, options...) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runForbidigo(pass, settings) if err != nil { - return nil, errors.Wrapf(err, "failed to create linter %q", linterName) - } - - for _, file := range pass.Files { - hints, err := forbid.Run(pass.Fset, file) - if err != nil { - return nil, errors.Wrapf(err, "forbidigo linter failed on file %q", file.Name.String()) - } - for _, hint := range hints { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: hint.Position(), - Text: hint.Details(), - FromLinter: linterName, - }, pass)) - } + return nil, err } - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + forbidigoName, + "Forbids identifiers", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runForbidigo(pass *analysis.Pass, settings *config.ForbidigoSettings) ([]goanalysis.Issue, error) { + options := []forbidigo.Option{ + forbidigo.OptionExcludeGodocExamples(settings.ExcludeGodocExamples), + // disable "//permit" directives so only "//nolint" directives matters within golangci-lint + forbidigo.OptionIgnorePermitDirectives(true), + } + + forbid, err := forbidigo.NewLinter(settings.Forbid, options...) + if err != nil { + return nil, errors.Wrapf(err, "failed to create linter %q", forbidigoName) + } + + var issues []goanalysis.Issue + for _, file := range pass.Files { + hints, err := forbid.Run(pass.Fset, file) + if err != nil { + return nil, errors.Wrapf(err, "forbidigo linter failed on file %q", file.Name.String()) + } + + for _, hint := range hints { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: hint.Position(), + Text: hint.Details(), + FromLinter: forbidigoName, + }, pass)) + } + } + + return issues, nil +} diff --git a/pkg/golinters/funlen.go b/pkg/golinters/funlen.go index 29cb6b7ef700..c562c2aa0455 100644 --- a/pkg/golinters/funlen.go +++ b/pkg/golinters/funlen.go @@ -8,57 +8,69 @@ import ( "github.com/ultraware/funlen" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -const funlenLinterName = "funlen" +const funlenName = "funlen" -func NewFunlen() *goanalysis.Linter { +//nolint:dupl +func NewFunlen(settings *config.FunlenSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: funlenLinterName, + Name: funlenName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - funlenLinterName, - "Tool for detection of long functions", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var issues []funlen.Message - for _, file := range pass.Files { - fileIssues := funlen.Run(file, pass.Fset, lintCtx.Settings().Funlen.Lines, lintCtx.Settings().Funlen.Statements) - issues = append(issues, fileIssues...) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runFunlen(pass, settings) if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, len(issues)) - for k, i := range issues { - res[k] = goanalysis.NewIssue(&result.Issue{ - Pos: token.Position{ - Filename: i.Pos.Filename, - Line: i.Pos.Line, - }, - Text: strings.TrimRight(i.Message, "\n"), - FromLinter: funlenLinterName, - }, pass) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + funlenName, + "Tool for detection of long functions", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runFunlen(pass *analysis.Pass, settings *config.FunlenSettings) []goanalysis.Issue { + var lintIssues []funlen.Message + for _, file := range pass.Files { + fileIssues := funlen.Run(file, pass.Fset, settings.Lines, settings.Statements) + lintIssues = append(lintIssues, fileIssues...) + } + + if len(lintIssues) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, len(lintIssues)) + for k, i := range lintIssues { + issues[k] = goanalysis.NewIssue(&result.Issue{ + Pos: token.Position{ + Filename: i.Pos.Filename, + Line: i.Pos.Line, + }, + Text: strings.TrimRight(i.Message, "\n"), + FromLinter: funlenName, + }, pass) + } + + return issues +} diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index c0c606a7b89d..b7487b8f1e9f 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -16,7 +16,6 @@ const gciName = "gci" func NewGci(settings *config.GciSettings) *goanalysis.Linter { var linterCfg map[string]map[string]interface{} - if settings != nil { cfg := map[string]interface{}{ gci.NoInlineCommentsFlag: settings.NoInlineComments, diff --git a/pkg/golinters/goanalysis/linter.go b/pkg/golinters/goanalysis/linter.go index ef49e4284aa3..eb27130cc9f4 100644 --- a/pkg/golinters/goanalysis/linter.go +++ b/pkg/golinters/goanalysis/linter.go @@ -211,3 +211,7 @@ func valueToString(v interface{}) string { return fmt.Sprint(v) } + +func DummyRun(_ *analysis.Pass) (interface{}, error) { + return nil, nil +} diff --git a/pkg/golinters/gochecknoinits.go b/pkg/golinters/gochecknoinits.go index f9715bda8683..bb0b783c6cab 100644 --- a/pkg/golinters/gochecknoinits.go +++ b/pkg/golinters/gochecknoinits.go @@ -41,6 +41,7 @@ func NewGochecknoinits() *goanalysis.Linter { return nil, nil }, } + return goanalysis.NewLinter( gochecknoinitsName, "Checks that no init functions are present in Go code", diff --git a/pkg/golinters/gocognit.go b/pkg/golinters/gocognit.go index eb42dd149cb5..49146c52c8f5 100644 --- a/pkg/golinters/gocognit.go +++ b/pkg/golinters/gocognit.go @@ -8,6 +8,7 @@ import ( "github.com/uudashr/gocognit" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -15,54 +16,65 @@ import ( const gocognitName = "gocognit" -func NewGocognit() *goanalysis.Linter { +//nolint:dupl +func NewGocognit(settings *config.GocognitSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: goanalysis.TheOnlyAnalyzerName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runGocognit(pass, settings) + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil + }, } + return goanalysis.NewLinter( gocognitName, "Computes and checks the cognitive complexity of functions", []*analysis.Analyzer{analyzer}, nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var stats []gocognit.Stat - for _, f := range pass.Files { - stats = gocognit.ComplexityStats(f, pass.Fset, stats) - } - if len(stats) == 0 { - return nil, nil - } + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeSyntax) +} - sort.SliceStable(stats, func(i, j int) bool { - return stats[i].Complexity > stats[j].Complexity - }) +func runGocognit(pass *analysis.Pass, settings *config.GocognitSettings) []goanalysis.Issue { + var stats []gocognit.Stat + for _, f := range pass.Files { + stats = gocognit.ComplexityStats(f, pass.Fset, stats) + } + if len(stats) == 0 { + return nil + } - res := make([]goanalysis.Issue, 0, len(stats)) - for _, s := range stats { - if s.Complexity <= lintCtx.Settings().Gocognit.MinComplexity { - break // Break as the stats is already sorted from greatest to least - } + sort.SliceStable(stats, func(i, j int) bool { + return stats[i].Complexity > stats[j].Complexity + }) - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: s.Pos, - Text: fmt.Sprintf("cognitive complexity %d of func %s is high (> %d)", - s.Complexity, formatCode(s.FuncName, lintCtx.Cfg), lintCtx.Settings().Gocognit.MinComplexity), - FromLinter: gocognitName, - }, pass)) - } + issues := make([]goanalysis.Issue, 0, len(stats)) + for _, s := range stats { + if s.Complexity <= settings.MinComplexity { + break // Break as the stats is already sorted from greatest to least + } - mu.Lock() - resIssues = append(resIssues, res...) - mu.Unlock() + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: s.Pos, + Text: fmt.Sprintf("cognitive complexity %d of func %s is high (> %d)", + s.Complexity, formatCode(s.FuncName, nil), settings.MinComplexity), + FromLinter: gocognitName, + }, pass)) + } - return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeSyntax) + return issues } diff --git a/pkg/golinters/goconst.go b/pkg/golinters/goconst.go index bdec4e10b079..24d3198b9a0d 100644 --- a/pkg/golinters/goconst.go +++ b/pkg/golinters/goconst.go @@ -7,6 +7,7 @@ import ( goconstAPI "github.com/jgautheron/goconst" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,40 +15,43 @@ import ( const goconstName = "goconst" -func NewGoconst() *goanalysis.Linter { +//nolint:dupl +func NewGoconst(settings *config.GoConstSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: goconstName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - goconstName, - "Finds repeated strings that could be replaced by a constant", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - issues, err := checkConstants(pass, lintCtx) - if err != nil || len(issues) == 0 { + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGoconst(pass, settings) + if err != nil { return nil, err } + if len(issues) == 0 { + return nil, nil + } + mu.Lock() resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + goconstName, + "Finds repeated strings that could be replaced by a constant", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } -func checkConstants(pass *analysis.Pass, lintCtx *linter.Context) ([]goanalysis.Issue, error) { - settings := lintCtx.Settings().Goconst - +func runGoconst(pass *analysis.Pass, settings *config.GoConstSettings) ([]goanalysis.Issue, error) { cfg := goconstAPI.Config{ IgnoreTests: settings.IgnoreTests, MatchWithConstants: settings.MatchWithConstants, @@ -63,27 +67,28 @@ func checkConstants(pass *analysis.Pass, lintCtx *linter.Context) ([]goanalysis. cfg.ExcludeTypes[goconstAPI.Call] = true } - goconstIssues, err := goconstAPI.Run(pass.Files, pass.Fset, &cfg) + lintIssues, err := goconstAPI.Run(pass.Files, pass.Fset, &cfg) if err != nil { return nil, err } - if len(goconstIssues) == 0 { + if len(lintIssues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, 0, len(goconstIssues)) - for _, i := range goconstIssues { - textBegin := fmt.Sprintf("string %s has %d occurrences", formatCode(i.Str, lintCtx.Cfg), i.OccurrencesCount) - var textEnd string + res := make([]goanalysis.Issue, 0, len(lintIssues)) + for _, i := range lintIssues { + text := fmt.Sprintf("string %s has %d occurrences", formatCode(i.Str, nil), i.OccurrencesCount) + if i.MatchingConst == "" { - textEnd = ", make it a constant" + text += ", make it a constant" } else { - textEnd = fmt.Sprintf(", but such constant %s already exists", formatCode(i.MatchingConst, lintCtx.Cfg)) + text += fmt.Sprintf(", but such constant %s already exists", formatCode(i.MatchingConst, nil)) } + res = append(res, goanalysis.NewIssue(&result.Issue{ Pos: i.Pos, - Text: textBegin + textEnd, + Text: text, FromLinter: goconstName, }, pass)) } diff --git a/pkg/golinters/gocritic.go b/pkg/golinters/gocritic.go index ea3a3cbcbe8b..a53d57662461 100644 --- a/pkg/golinters/gocritic.go +++ b/pkg/golinters/gocritic.go @@ -22,130 +22,87 @@ import ( const gocriticName = "gocritic" -func NewGocritic() *goanalysis.Linter { +func NewGocritic(settings *config.GocriticSettings, cfg *config.Config) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue sizes := types.SizesFor("gc", runtime.GOARCH) + wrapper := goCriticWrapper{ + settings: settings, + cfg: cfg, + sizes: sizes, + } + analyzer := &analysis.Analyzer{ Name: gocriticName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - gocriticName, - `Provides diagnostics that check for bugs, performance and style issues. -Extensible without recompilation through dynamic rules. -Dynamic rules are written declaratively with AST patterns, filters, report message and optional suggestion.`, - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - linterCtx := gocriticlinter.NewContext(pass.Fset, sizes) - enabledCheckers, err := buildEnabledCheckers(lintCtx, linterCtx) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := wrapper.run(pass) if err != nil { return nil, err } - linterCtx.SetPackageInfo(pass.TypesInfo, pass.Pkg) - pkgIssues := runGocriticOnPackage(linterCtx, enabledCheckers, pass.Files) - res := make([]goanalysis.Issue, 0, len(pkgIssues)) - - for i := range pkgIssues { - res = append(res, goanalysis.NewIssue(&pkgIssues[i], pass)) - } - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + gocriticName, + `Provides diagnostics that check for bugs, performance and style issues. +Extensible without recompilation through dynamic rules. +Dynamic rules are written declaratively with AST patterns, filters, report message and optional suggestion.`, + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } -func normalizeCheckerInfoParams(info *gocriticlinter.CheckerInfo) gocriticlinter.CheckerParams { - // lowercase info param keys here because golangci-lint's config parser lowercases all strings - ret := gocriticlinter.CheckerParams{} - for k, v := range info.Params { - ret[strings.ToLower(k)] = v - } - - return ret +type goCriticWrapper struct { + settings *config.GocriticSettings + cfg *config.Config + sizes types.Sizes } -func configureCheckerInfo( - lintCtx *linter.Context, - info *gocriticlinter.CheckerInfo, - allParams map[string]config.GocriticCheckSettings) error { - params := allParams[strings.ToLower(info.Name)] - if params == nil { // no config for this checker - return nil +func (w goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { + linterCtx := gocriticlinter.NewContext(pass.Fset, w.sizes) + + enabledCheckers, err := w.buildEnabledCheckers(linterCtx) + if err != nil { + return nil, err } - infoParams := normalizeCheckerInfoParams(info) - for k, p := range params { - v, ok := infoParams[k] - if ok { - v.Value = normalizeCheckerParamsValue(lintCtx, p) - continue - } + linterCtx.SetPackageInfo(pass.TypesInfo, pass.Pkg) - // param `k` isn't supported - if len(info.Params) == 0 { - return fmt.Errorf("checker %s config param %s doesn't exist: checker doesn't have params", - info.Name, k) - } + pkgIssues := runGocriticOnPackage(linterCtx, enabledCheckers, pass.Files) - var supportedKeys []string - for sk := range info.Params { - supportedKeys = append(supportedKeys, sk) - } - sort.Strings(supportedKeys) - - return fmt.Errorf("checker %s config param %s doesn't exist, all existing: %s", - info.Name, k, supportedKeys) + issues := make([]goanalysis.Issue, 0, len(pkgIssues)) + for i := range pkgIssues { + issues = append(issues, goanalysis.NewIssue(&pkgIssues[i], pass)) } - return nil + return issues, nil } -// normalizeCheckerParamsValue normalizes value types. -// go-critic asserts that CheckerParam.Value has some specific types, -// but the file parsers (TOML, YAML, JSON) don't create the same representation for raw type. -// then we have to convert value types into the expected value types. -// Maybe in the future, this kind of conversion will be done in go-critic itself. -func normalizeCheckerParamsValue(lintCtx *linter.Context, p interface{}) interface{} { - rv := reflect.ValueOf(p) - switch rv.Type().Kind() { - case reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8, reflect.Int: - return int(rv.Int()) - case reflect.Bool: - return rv.Bool() - case reflect.String: - // Perform variable substitution. - return strings.ReplaceAll(rv.String(), "${configDir}", lintCtx.Cfg.GetConfigDir()) - default: - return p - } -} - -func buildEnabledCheckers(lintCtx *linter.Context, linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { - s := lintCtx.Settings().Gocritic - allParams := s.GetLowercasedParams() +func (w goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { + allParams := w.settings.GetLowercasedParams() var enabledCheckers []*gocriticlinter.Checker for _, info := range gocriticlinter.GetCheckersInfo() { - if !s.IsCheckEnabled(info.Name) { + if !w.settings.IsCheckEnabled(info.Name) { continue } - if err := configureCheckerInfo(lintCtx, info, allParams); err != nil { + if err := w.configureCheckerInfo(info, allParams); err != nil { return nil, err } @@ -172,14 +129,14 @@ func runGocriticOnPackage(linterCtx *gocriticlinter.Context, checkers []*gocriti return res } -func runGocriticOnFile(ctx *gocriticlinter.Context, f *ast.File, checkers []*gocriticlinter.Checker) []result.Issue { +func runGocriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checkers []*gocriticlinter.Checker) []result.Issue { var res []result.Issue for _, c := range checkers { // All checkers are expected to use *lint.Context // as read-only structure, so no copying is required. for _, warn := range c.Check(f) { - pos := ctx.FileSet.Position(warn.Node.Pos()) + pos := linterCtx.FileSet.Position(warn.Node.Pos()) issue := result.Issue{ Pos: pos, Text: fmt.Sprintf("%s: %s", c.Info.Name, warn.Text), @@ -202,3 +159,66 @@ func runGocriticOnFile(ctx *gocriticlinter.Context, f *ast.File, checkers []*goc return res } + +func (w goCriticWrapper) configureCheckerInfo(info *gocriticlinter.CheckerInfo, allParams map[string]config.GocriticCheckSettings) error { + params := allParams[strings.ToLower(info.Name)] + if params == nil { // no config for this checker + return nil + } + + infoParams := normalizeCheckerInfoParams(info) + for k, p := range params { + v, ok := infoParams[k] + if ok { + v.Value = w.normalizeCheckerParamsValue(p) + continue + } + + // param `k` isn't supported + if len(info.Params) == 0 { + return fmt.Errorf("checker %s config param %s doesn't exist: checker doesn't have params", + info.Name, k) + } + + var supportedKeys []string + for sk := range info.Params { + supportedKeys = append(supportedKeys, sk) + } + sort.Strings(supportedKeys) + + return fmt.Errorf("checker %s config param %s doesn't exist, all existing: %s", + info.Name, k, supportedKeys) + } + + return nil +} + +func normalizeCheckerInfoParams(info *gocriticlinter.CheckerInfo) gocriticlinter.CheckerParams { + // lowercase info param keys here because golangci-lint's config parser lowercases all strings + ret := gocriticlinter.CheckerParams{} + for k, v := range info.Params { + ret[strings.ToLower(k)] = v + } + + return ret +} + +// normalizeCheckerParamsValue normalizes value types. +// go-critic asserts that CheckerParam.Value has some specific types, +// but the file parsers (TOML, YAML, JSON) don't create the same representation for raw type. +// then we have to convert value types into the expected value types. +// Maybe in the future, this kind of conversion will be done in go-critic itself. +func (w goCriticWrapper) normalizeCheckerParamsValue(p interface{}) interface{} { + rv := reflect.ValueOf(p) + switch rv.Type().Kind() { + case reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8, reflect.Int: + return int(rv.Int()) + case reflect.Bool: + return rv.Bool() + case reflect.String: + // Perform variable substitution. + return strings.ReplaceAll(rv.String(), "${configDir}", w.cfg.GetConfigDir()) + default: + return p + } +} diff --git a/pkg/golinters/gocyclo.go b/pkg/golinters/gocyclo.go index 5c61fec72c0b..ea82195711b5 100644 --- a/pkg/golinters/gocyclo.go +++ b/pkg/golinters/gocyclo.go @@ -7,6 +7,7 @@ import ( "github.com/fzipp/gocyclo" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,48 +15,62 @@ import ( const gocycloName = "gocyclo" -func NewGocyclo() *goanalysis.Linter { +//nolint:dupl +func NewGocyclo(settings *config.GoCycloSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: gocycloName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runGoCyclo(pass, settings) + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil + }, } + return goanalysis.NewLinter( gocycloName, "Computes and checks the cyclomatic complexity of functions", []*analysis.Analyzer{analyzer}, nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var stats gocyclo.Stats - for _, f := range pass.Files { - stats = gocyclo.AnalyzeASTFile(f, pass.Fset, stats) - } - if len(stats) == 0 { - return nil, nil - } + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeSyntax) +} - stats = stats.SortAndFilter(-1, lintCtx.Settings().Gocyclo.MinComplexity) +func runGoCyclo(pass *analysis.Pass, settings *config.GoCycloSettings) []goanalysis.Issue { + var stats gocyclo.Stats + for _, f := range pass.Files { + stats = gocyclo.AnalyzeASTFile(f, pass.Fset, stats) + } + if len(stats) == 0 { + return nil + } - res := make([]goanalysis.Issue, 0, len(stats)) - for _, s := range stats { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: s.Pos, - Text: fmt.Sprintf("cyclomatic complexity %d of func %s is high (> %d)", - s.Complexity, formatCode(s.FuncName, lintCtx.Cfg), lintCtx.Settings().Gocyclo.MinComplexity), - FromLinter: gocycloName, - }, pass)) - } + stats = stats.SortAndFilter(-1, settings.MinComplexity) - mu.Lock() - resIssues = append(resIssues, res...) - mu.Unlock() + issues := make([]goanalysis.Issue, 0, len(stats)) - return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeSyntax) + for _, s := range stats { + text := fmt.Sprintf("cyclomatic complexity %d of func %s is high (> %d)", + s.Complexity, formatCode(s.FuncName, nil), settings.MinComplexity) + + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: s.Pos, + Text: text, + FromLinter: gocycloName, + }, pass)) + } + + return issues } diff --git a/pkg/golinters/godot.go b/pkg/golinters/godot.go index 09eb9b5b2e9f..72322fa717a9 100644 --- a/pkg/golinters/godot.go +++ b/pkg/golinters/godot.go @@ -6,6 +6,7 @@ import ( "github.com/tetafro/godot" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -13,73 +14,89 @@ import ( const godotName = "godot" -func NewGodot() *goanalysis.Linter { +func NewGodot(settings *config.GodotSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - analyzer := &analysis.Analyzer{ - Name: godotName, - Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - godotName, - "Check if comments end in a period", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - cfg := lintCtx.Cfg.LintersSettings.Godot - settings := godot.Settings{ - Scope: godot.Scope(cfg.Scope), - Exclude: cfg.Exclude, - Period: cfg.Period, - Capital: cfg.Capital, + var dotSettings godot.Settings + + if settings != nil { + dotSettings = godot.Settings{ + Scope: godot.Scope(settings.Scope), + Exclude: settings.Exclude, + Period: settings.Period, + Capital: settings.Capital, } // Convert deprecated setting // todo(butuzov): remove on v2 release - if cfg.CheckAll { // nolint:staticcheck // Keep for retro-compatibility. - settings.Scope = godot.AllScope + if settings.CheckAll { // nolint:staticcheck // Keep for retro-compatibility. + dotSettings.Scope = godot.AllScope } + } - if settings.Scope == "" { - settings.Scope = godot.DeclScope - } + if dotSettings.Scope == "" { + dotSettings.Scope = godot.DeclScope + } - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var issues []godot.Issue - for _, file := range pass.Files { - iss, err := godot.Run(file, pass.Fset, settings) - if err != nil { - return nil, err - } - issues = append(issues, iss...) + analyzer := &analysis.Analyzer{ + Name: godotName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGodot(pass, dotSettings) + if err != nil { + return nil, err } if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, len(issues)) - for k, i := range issues { - issue := result.Issue{ - Pos: i.Pos, - Text: i.Message, - FromLinter: godotName, - Replacement: &result.Replacement{ - NewLines: []string{i.Replacement}, - }, - } - - res[k] = goanalysis.NewIssue(&issue, pass) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + godotName, + "Check if comments end in a period", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGodot(pass *analysis.Pass, settings godot.Settings) ([]goanalysis.Issue, error) { + var lintIssues []godot.Issue + for _, file := range pass.Files { + iss, err := godot.Run(file, pass.Fset, settings) + if err != nil { + return nil, err + } + lintIssues = append(lintIssues, iss...) + } + + if len(lintIssues) == 0 { + return nil, nil + } + + issues := make([]goanalysis.Issue, len(lintIssues)) + for k, i := range lintIssues { + issue := result.Issue{ + Pos: i.Pos, + Text: i.Message, + FromLinter: godotName, + Replacement: &result.Replacement{ + NewLines: []string{i.Replacement}, + }, + } + + issues[k] = goanalysis.NewIssue(&issue, pass) + } + + return issues, nil +} diff --git a/pkg/golinters/godox.go b/pkg/golinters/godox.go index 2a4dd9fafb6d..4dba9df00307 100644 --- a/pkg/golinters/godox.go +++ b/pkg/golinters/godox.go @@ -8,6 +8,7 @@ import ( "github.com/matoous/godox" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -15,49 +16,61 @@ import ( const godoxName = "godox" -func NewGodox() *goanalysis.Linter { +//nolint:dupl +func NewGodox(settings *config.GodoxSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: godoxName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - godoxName, - "Tool for detection of FIXME, TODO and other comment keywords", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var issues []godox.Message - for _, file := range pass.Files { - issues = append(issues, godox.Run(file, pass.Fset, lintCtx.Settings().Godox.Keywords...)...) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runGodox(pass, settings) if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, len(issues)) - for k, i := range issues { - res[k] = goanalysis.NewIssue(&result.Issue{ - Pos: token.Position{ - Filename: i.Pos.Filename, - Line: i.Pos.Line, - }, - Text: strings.TrimRight(i.Message, "\n"), - FromLinter: godoxName, - }, pass) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + godoxName, + "Tool for detection of FIXME, TODO and other comment keywords", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGodox(pass *analysis.Pass, settings *config.GodoxSettings) []goanalysis.Issue { + var messages []godox.Message + for _, file := range pass.Files { + messages = append(messages, godox.Run(file, pass.Fset, settings.Keywords...)...) + } + + if len(messages) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, len(messages)) + + for k, i := range messages { + issues[k] = goanalysis.NewIssue(&result.Issue{ + Pos: token.Position{ + Filename: i.Pos.Filename, + Line: i.Pos.Line, + }, + Text: strings.TrimRight(i.Message, "\n"), + FromLinter: godoxName, + }, pass) + } + + return issues +} diff --git a/pkg/golinters/goerr113.go b/pkg/golinters/goerr113.go index 0c10005a0891..c97b6d587894 100644 --- a/pkg/golinters/goerr113.go +++ b/pkg/golinters/goerr113.go @@ -11,9 +11,7 @@ func NewGoerr113() *goanalysis.Linter { return goanalysis.NewLinter( "goerr113", "Golang linter to check the errors handling expressions", - []*analysis.Analyzer{ - err113.NewAnalyzer(), - }, + []*analysis.Analyzer{err113.NewAnalyzer()}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/gofmt.go b/pkg/golinters/gofmt.go index aa340dcf3c4e..1d50bfc55be9 100644 --- a/pkg/golinters/gofmt.go +++ b/pkg/golinters/gofmt.go @@ -7,20 +7,23 @@ import ( "github.com/pkg/errors" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" ) const gofmtName = "gofmt" -func NewGofmt() *goanalysis.Linter { +func NewGofmt(settings *config.GoFmtSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: gofmtName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( gofmtName, "Gofmt checks whether code was gofmt-ed. By default "+ @@ -29,31 +32,9 @@ func NewGofmt() *goanalysis.Linter { nil, ).WithContextSetter(func(lintCtx *linter.Context) { analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } - - var issues []goanalysis.Issue - - for _, f := range fileNames { - diff, err := gofmtAPI.Run(f, lintCtx.Settings().Gofmt.Simplify) - if err != nil { // TODO: skip - return nil, err - } - if diff == nil { - continue - } - - is, err := extractIssuesFromPatch(string(diff), lintCtx.Log, lintCtx, gofmtName) - if err != nil { - return nil, errors.Wrapf(err, "can't extract issues from gofmt diff output %q", string(diff)) - } - - for i := range is { - issues = append(issues, goanalysis.NewIssue(&is[i], pass)) - } + issues, err := runGofmt(lintCtx, pass, settings) + if err != nil { + return nil, err } if len(issues) == 0 { @@ -70,3 +51,34 @@ func NewGofmt() *goanalysis.Linter { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGofmt(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoFmtSettings) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + var issues []goanalysis.Issue + + for _, f := range fileNames { + diff, err := gofmtAPI.Run(f, settings.Simplify) + if err != nil { // TODO: skip + return nil, err + } + if diff == nil { + continue + } + + is, err := extractIssuesFromPatch(string(diff), lintCtx, gofmtName) + if err != nil { + return nil, errors.Wrapf(err, "can't extract issues from gofmt diff output %q", string(diff)) + } + + for i := range is { + issues = append(issues, goanalysis.NewIssue(&is[i], pass)) + } + } + + return issues, nil +} diff --git a/pkg/golinters/gofmt_common.go b/pkg/golinters/gofmt_common.go index 618662bebb34..a04cd7f86b67 100644 --- a/pkg/golinters/gofmt_common.go +++ b/pkg/golinters/gofmt_common.go @@ -229,7 +229,7 @@ func getErrorTextForLinter(lintCtx *linter.Context, linterName string) string { return text } -func extractIssuesFromPatch(patch string, log logutils.Log, lintCtx *linter.Context, linterName string) ([]result.Issue, error) { +func extractIssuesFromPatch(patch string, lintCtx *linter.Context, linterName string) ([]result.Issue, error) { diffs, err := diffpkg.ParseMultiFileDiff([]byte(patch)) if err != nil { return nil, errors.Wrap(err, "can't parse patch") @@ -239,18 +239,20 @@ func extractIssuesFromPatch(patch string, log logutils.Log, lintCtx *linter.Cont return nil, fmt.Errorf("got no diffs from patch parser: %v", diffs) } - issues := []result.Issue{} + var issues []result.Issue for _, d := range diffs { if len(d.Hunks) == 0 { - log.Warnf("Got no hunks in diff %+v", d) + lintCtx.Log.Warnf("Got no hunks in diff %+v", d) continue } for _, hunk := range d.Hunks { p := hunkChangesParser{ - log: log, + log: lintCtx.Log, } + changes := p.parse(hunk) + for _, change := range changes { change := change // fix scope i := result.Issue{ diff --git a/pkg/golinters/gofumpt.go b/pkg/golinters/gofumpt.go index f0523459f4cc..60d97b944b08 100644 --- a/pkg/golinters/gofumpt.go +++ b/pkg/golinters/gofumpt.go @@ -3,6 +3,7 @@ package golinters import ( "bytes" "fmt" + "io" "os" "sync" @@ -18,71 +19,42 @@ import ( const gofumptName = "gofumpt" -func NewGofumpt() *goanalysis.Linter { +type differ interface { + Diff(out io.Writer, a io.ReadSeeker, b io.ReadSeeker) error +} + +func NewGofumpt(settings *config.GofumptSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - differ := difflib.New() + + diff := difflib.New() + + var options format.Options + + if settings != nil { + options = format.Options{ + LangVersion: getLangVersion(settings), + ModulePath: settings.ModulePath, + ExtraRules: settings.ExtraRules, + } + } analyzer := &analysis.Analyzer{ Name: gofumptName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( gofumptName, "Gofumpt checks whether code was gofumpt-ed.", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - settings := lintCtx.Settings().Gofumpt - - options := format.Options{ - LangVersion: getLangVersion(settings), - ModulePath: settings.ModulePath, - ExtraRules: settings.ExtraRules, - } - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } - - var issues []goanalysis.Issue - - for _, f := range fileNames { - input, err := os.ReadFile(f) - if err != nil { - return nil, fmt.Errorf("unable to open file %s: %w", f, err) - } - - output, err := format.Source(input, options) - if err != nil { - return nil, fmt.Errorf("error while running gofumpt: %w", err) - } - - if !bytes.Equal(input, output) { - out := bytes.Buffer{} - _, err = out.WriteString(fmt.Sprintf("--- %[1]s\n+++ %[1]s\n", f)) - if err != nil { - return nil, fmt.Errorf("error while running gofumpt: %w", err) - } - - err = differ.Diff(&out, bytes.NewReader(input), bytes.NewReader(output)) - if err != nil { - return nil, fmt.Errorf("error while running gofumpt: %w", err) - } - - diff := out.String() - is, err := extractIssuesFromPatch(diff, lintCtx.Log, lintCtx, gofumptName) - if err != nil { - return nil, errors.Wrapf(err, "can't extract issues from gofumpt diff output %q", diff) - } - - for i := range is { - issues = append(issues, goanalysis.NewIssue(&is[i], pass)) - } - } + issues, err := runGofumpt(lintCtx, pass, diff, options) + if err != nil { + return nil, err } if len(issues) == 0 { @@ -100,8 +72,55 @@ func NewGofumpt() *goanalysis.Linter { }).WithLoadMode(goanalysis.LoadModeSyntax) } -func getLangVersion(settings config.GofumptSettings) string { - if settings.LangVersion == "" { +func runGofumpt(lintCtx *linter.Context, pass *analysis.Pass, diff differ, options format.Options) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + var issues []goanalysis.Issue + + for _, f := range fileNames { + input, err := os.ReadFile(f) + if err != nil { + return nil, fmt.Errorf("unable to open file %s: %w", f, err) + } + + output, err := format.Source(input, options) + if err != nil { + return nil, fmt.Errorf("error while running gofumpt: %w", err) + } + + if !bytes.Equal(input, output) { + out := bytes.Buffer{} + _, err = out.WriteString(fmt.Sprintf("--- %[1]s\n+++ %[1]s\n", f)) + if err != nil { + return nil, fmt.Errorf("error while running gofumpt: %w", err) + } + + err = diff.Diff(&out, bytes.NewReader(input), bytes.NewReader(output)) + if err != nil { + return nil, fmt.Errorf("error while running gofumpt: %w", err) + } + + diff := out.String() + is, err := extractIssuesFromPatch(diff, lintCtx, gofumptName) + if err != nil { + return nil, errors.Wrapf(err, "can't extract issues from gofumpt diff output %q", diff) + } + + for i := range is { + issues = append(issues, goanalysis.NewIssue(&is[i], pass)) + } + } + } + + return issues, nil +} + +func getLangVersion(settings *config.GofumptSettings) string { + if settings == nil || settings.LangVersion == "" { // TODO: defaults to "1.15", in the future (v2) must be set by using build.Default.ReleaseTags like staticcheck. return "1.15" } diff --git a/pkg/golinters/goheader.go b/pkg/golinters/goheader.go index fe83f83c6007..d7d27326ecba 100644 --- a/pkg/golinters/goheader.go +++ b/pkg/golinters/goheader.go @@ -7,6 +7,7 @@ import ( goheader "github.com/denis-tingaikin/go-header" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,72 +15,90 @@ import ( const goHeaderName = "goheader" -func NewGoHeader() *goanalysis.Linter { +func NewGoHeader(settings *config.GoHeaderSettings) *goanalysis.Linter { var mu sync.Mutex - var issues []goanalysis.Issue + var resIssues []goanalysis.Issue + + conf := &goheader.Configuration{} + if settings != nil { + conf = &goheader.Configuration{ + Values: settings.Values, + Template: settings.Template, + TemplatePath: settings.TemplatePath, + } + } analyzer := &analysis.Analyzer{ Name: goHeaderName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - goHeaderName, - "Checks is file header matches to pattern", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - cfg := lintCtx.Cfg.LintersSettings.Goheader - c := &goheader.Configuration{ - Values: cfg.Values, - Template: cfg.Template, - TemplatePath: cfg.TemplatePath, - } - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - if c.TemplatePath == "" && c.Template == "" { - // User did not pass template, so then do not run go-header linter - return nil, nil - } - template, err := c.GetTemplate() - if err != nil { - return nil, err - } - values, err := c.GetValues() + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGoHeader(pass, conf) if err != nil { return nil, err } - a := goheader.New(goheader.WithTemplate(template), goheader.WithValues(values)) - var res []goanalysis.Issue - for _, file := range pass.Files { - path := pass.Fset.Position(file.Pos()).Filename - i := a.Analyze(&goheader.Target{ - File: file, - Path: path, - }) - if i == nil { - continue - } - issue := result.Issue{ - Pos: token.Position{ - Line: i.Location().Line + 1, - Column: i.Location().Position, - Filename: path, - }, - Text: i.Message(), - FromLinter: goHeaderName, - } - res = append(res, goanalysis.NewIssue(&issue, pass)) - } - if len(res) == 0 { + + if len(issues) == 0 { return nil, nil } mu.Lock() - issues = append(issues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return issues + }, + } + + return goanalysis.NewLinter( + goHeaderName, + "Checks is file header matches to pattern", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGoHeader(pass *analysis.Pass, conf *goheader.Configuration) ([]goanalysis.Issue, error) { + if conf.TemplatePath == "" && conf.Template == "" { + // User did not pass template, so then do not run go-header linter + return nil, nil + } + + template, err := conf.GetTemplate() + if err != nil { + return nil, err + } + + values, err := conf.GetValues() + if err != nil { + return nil, err + } + + a := goheader.New(goheader.WithTemplate(template), goheader.WithValues(values)) + + var issues []goanalysis.Issue + for _, file := range pass.Files { + path := pass.Fset.Position(file.Pos()).Filename + + i := a.Analyze(&goheader.Target{File: file, Path: path}) + + if i == nil { + continue + } + + issue := result.Issue{ + Pos: token.Position{ + Line: i.Location().Line + 1, + Column: i.Location().Position, + Filename: path, + }, + Text: i.Message(), + FromLinter: goHeaderName, + } + + issues = append(issues, goanalysis.NewIssue(&issue, pass)) + } + + return issues, nil +} diff --git a/pkg/golinters/goimports.go b/pkg/golinters/goimports.go index b58af1967602..e59ee3dd5bad 100644 --- a/pkg/golinters/goimports.go +++ b/pkg/golinters/goimports.go @@ -8,53 +8,35 @@ import ( "golang.org/x/tools/go/analysis" "golang.org/x/tools/imports" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" ) const goimportsName = "goimports" -func NewGoimports() *goanalysis.Linter { +func NewGoimports(settings *config.GoImportsSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: goimportsName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( goimportsName, "In addition to fixing imports, goimports also formats your code in the same style as gofmt.", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - imports.LocalPrefix = lintCtx.Settings().Goimports.LocalPrefixes - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + imports.LocalPrefix = settings.LocalPrefixes - var issues []goanalysis.Issue - - for _, f := range fileNames { - diff, err := goimportsAPI.Run(f) - if err != nil { // TODO: skip - return nil, err - } - if diff == nil { - continue - } - - is, err := extractIssuesFromPatch(string(diff), lintCtx.Log, lintCtx, goimportsName) - if err != nil { - return nil, errors.Wrapf(err, "can't extract issues from gofmt diff output %q", string(diff)) - } - - for i := range is { - issues = append(issues, goanalysis.NewIssue(&is[i], pass)) - } + analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGoiImports(lintCtx, pass) + if err != nil { + return nil, err } if len(issues) == 0 { @@ -71,3 +53,34 @@ func NewGoimports() *goanalysis.Linter { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGoiImports(lintCtx *linter.Context, pass *analysis.Pass) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + var issues []goanalysis.Issue + + for _, f := range fileNames { + diff, err := goimportsAPI.Run(f) + if err != nil { // TODO: skip + return nil, err + } + if diff == nil { + continue + } + + is, err := extractIssuesFromPatch(string(diff), lintCtx, goimportsName) + if err != nil { + return nil, errors.Wrapf(err, "can't extract issues from gofmt diff output %q", string(diff)) + } + + for i := range is { + issues = append(issues, goanalysis.NewIssue(&is[i], pass)) + } + } + + return issues, nil +} diff --git a/pkg/golinters/golint.go b/pkg/golinters/golint.go index 3b1b1b66f1fc..95c579e34ba8 100644 --- a/pkg/golinters/golint.go +++ b/pkg/golinters/golint.go @@ -2,35 +2,71 @@ package golinters import ( "fmt" - "go/ast" - "go/token" - "go/types" "sync" lintAPI "github.com/golangci/lint-1" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func golintProcessPkg(minConfidence float64, files []*ast.File, fset *token.FileSet, - typesPkg *types.Package, typesInfo *types.Info) ([]result.Issue, error) { +const golintName = "golint" + +//nolint:dupl +func NewGolint(settings *config.GoLintSettings) *goanalysis.Linter { + var mu sync.Mutex + var resIssues []goanalysis.Issue + + analyzer := &analysis.Analyzer{ + Name: golintName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGoLint(pass, settings) + if err != nil { + return nil, err + } + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil + }, + } + + return goanalysis.NewLinter( + golintName, + "Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeTypesInfo) +} + +func runGoLint(pass *analysis.Pass, settings *config.GoLintSettings) ([]goanalysis.Issue, error) { l := new(lintAPI.Linter) - ps, err := l.LintPkg(files, fset, typesPkg, typesInfo) + + ps, err := l.LintPkg(pass.Files, pass.Fset, pass.Pkg, pass.TypesInfo) if err != nil { - return nil, fmt.Errorf("can't lint %d files: %s", len(files), err) + return nil, fmt.Errorf("can't lint %d files: %s", len(pass.Files), err) } if len(ps) == 0 { return nil, nil } - issues := make([]result.Issue, 0, len(ps)) // This is worst case + lintIssues := make([]*result.Issue, 0, len(ps)) // This is worst case for idx := range ps { - if ps[idx].Confidence >= minConfidence { - issues = append(issues, result.Issue{ + if ps[idx].Confidence >= settings.MinConfidence { + lintIssues = append(lintIssues, &result.Issue{ Pos: ps[idx].Position, Text: ps[idx].Text, FromLinter: golintName, @@ -39,40 +75,10 @@ func golintProcessPkg(minConfidence float64, files []*ast.File, fset *token.File } } - return issues, nil -} - -const golintName = "golint" - -func NewGolint() *goanalysis.Linter { - var mu sync.Mutex - var resIssues []goanalysis.Issue - - analyzer := &analysis.Analyzer{ - Name: golintName, - Doc: goanalysis.TheOnlyanalyzerDoc, + issues := make([]goanalysis.Issue, 0, len(lintIssues)) + for _, issue := range lintIssues { + issues = append(issues, goanalysis.NewIssue(issue, pass)) } - return goanalysis.NewLinter( - golintName, - "Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - res, err := golintProcessPkg(lintCtx.Settings().Golint.MinConfidence, pass.Files, pass.Fset, pass.Pkg, pass.TypesInfo) - if err != nil || len(res) == 0 { - return nil, err - } - - mu.Lock() - for i := range res { - resIssues = append(resIssues, goanalysis.NewIssue(&res[i], pass)) - } - mu.Unlock() - return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeTypesInfo) + return issues, nil } diff --git a/pkg/golinters/gomoddirectives.go b/pkg/golinters/gomoddirectives.go index 40d3bf786e09..81831129a235 100644 --- a/pkg/golinters/gomoddirectives.go +++ b/pkg/golinters/gomoddirectives.go @@ -30,6 +30,7 @@ func NewGoModDirectives(settings *config.GoModDirectivesSettings) *goanalysis.Li analyzer := &analysis.Analyzer{ Name: goanalysis.TheOnlyAnalyzerName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } return goanalysis.NewLinter( diff --git a/pkg/golinters/gomodguard.go b/pkg/golinters/gomodguard.go index 30ca6cc3dea3..76dd67012b56 100644 --- a/pkg/golinters/gomodguard.go +++ b/pkg/golinters/gomodguard.go @@ -6,6 +6,7 @@ import ( "github.com/ryancurrah/gomodguard" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -19,31 +20,18 @@ const ( ) // NewGomodguard returns a new Gomodguard linter. -func NewGomodguard() *goanalysis.Linter { - var ( - issues []goanalysis.Issue - mu = sync.Mutex{} - analyzer = &analysis.Analyzer{ - Name: goanalysis.TheOnlyAnalyzerName, - Doc: goanalysis.TheOnlyanalyzerDoc, - } - ) - - return goanalysis.NewLinter( - gomodguardName, - gomodguardDesc, - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - linterCfg := lintCtx.Cfg.LintersSettings.Gomodguard - - processorCfg := &gomodguard.Configuration{} - processorCfg.Allowed.Modules = linterCfg.Allowed.Modules - processorCfg.Allowed.Domains = linterCfg.Allowed.Domains - processorCfg.Blocked.LocalReplaceDirectives = linterCfg.Blocked.LocalReplaceDirectives - - for n := range linterCfg.Blocked.Modules { - for k, v := range linterCfg.Blocked.Modules[n] { +func NewGomodguard(settings *config.GoModGuardSettings) *goanalysis.Linter { + var issues []goanalysis.Issue + var mu sync.Mutex + + processorCfg := &gomodguard.Configuration{} + if settings != nil { + processorCfg.Allowed.Modules = settings.Allowed.Modules + processorCfg.Allowed.Domains = settings.Allowed.Domains + processorCfg.Blocked.LocalReplaceDirectives = settings.Blocked.LocalReplaceDirectives + + for n := range settings.Blocked.Modules { + for k, v := range settings.Blocked.Modules[n] { m := map[string]gomodguard.BlockedModule{k: { Recommendations: v.Recommendations, Reason: v.Reason, @@ -53,8 +41,8 @@ func NewGomodguard() *goanalysis.Linter { } } - for n := range linterCfg.Blocked.Versions { - for k, v := range linterCfg.Blocked.Versions[n] { + for n := range settings.Blocked.Versions { + for k, v := range settings.Blocked.Versions[n] { m := map[string]gomodguard.BlockedVersion{k: { Version: v.Version, Reason: v.Reason, @@ -63,7 +51,20 @@ func NewGomodguard() *goanalysis.Linter { break } } + } + + analyzer := &analysis.Analyzer{ + Name: goanalysis.TheOnlyAnalyzerName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, + } + return goanalysis.NewLinter( + gomodguardName, + gomodguardDesc, + []*analysis.Analyzer{analyzer}, + nil, + ).WithContextSetter(func(lintCtx *linter.Context) { processor, err := gomodguard.NewProcessor(processorCfg) if err != nil { lintCtx.Log.Warnf("running gomodguard failed: %s: if you are not using go modules "+ @@ -73,7 +74,6 @@ func NewGomodguard() *goanalysis.Linter { analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { var files []string - for _, file := range pass.Files { files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) } diff --git a/pkg/golinters/gosec.go b/pkg/golinters/gosec.go index 600a6e0f64fc..e861cc87aab6 100644 --- a/pkg/golinters/gosec.go +++ b/pkg/golinters/gosec.go @@ -27,7 +27,7 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - gasConfig := gosec.NewConfig() + conf := gosec.NewConfig() var filters []rules.RuleFilter if settings != nil { @@ -36,18 +36,20 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter { for k, v := range settings.Config { // Uses ToUpper because the parsing of the map's key change the key to lowercase. // The value is not impacted by that: the case is respected. - gasConfig.Set(strings.ToUpper(k), v) + conf.Set(strings.ToUpper(k), v) } } - ruleDefinitions := rules.Generate(false, filters...) - logger := log.New(io.Discard, "", 0) + ruleDefinitions := rules.Generate(false, filters...) + analyzer := &analysis.Analyzer{ Name: gosecName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( gosecName, "Inspects source code for security problems", @@ -55,64 +57,14 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter { nil, ).WithContextSetter(func(lintCtx *linter.Context) { analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - gosecAnalyzer := gosec.NewAnalyzer(gasConfig, true, settings.ExcludeGenerated, false, settings.Concurrency, logger) + // The `gosecAnalyzer` is here because of concurrency issue. + gosecAnalyzer := gosec.NewAnalyzer(conf, true, settings.ExcludeGenerated, false, settings.Concurrency, logger) gosecAnalyzer.LoadRules(ruleDefinitions.RulesInfo()) - pkg := &packages.Package{ - Fset: pass.Fset, - Syntax: pass.Files, - Types: pass.Pkg, - TypesInfo: pass.TypesInfo, - } - gosecAnalyzer.Check(pkg) - issues, _, _ := gosecAnalyzer.Report() - if len(issues) == 0 { - return nil, nil - } - severity, err := convertToScore(settings.Severity) - if err != nil { - lintCtx.Log.Warnf("The provided severity %v", err) - } - - confidence, err := convertToScore(settings.Confidence) - if err != nil { - lintCtx.Log.Warnf("The provided confidence %v", err) - } - issues = filterIssues(issues, severity, confidence) - res := make([]goanalysis.Issue, 0, len(issues)) - for _, i := range issues { - text := fmt.Sprintf("%s: %s", i.RuleID, i.What) // TODO: use severity and confidence - var r *result.Range - line, err := strconv.Atoi(i.Line) - if err != nil { - r = &result.Range{} - if n, rerr := fmt.Sscanf(i.Line, "%d-%d", &r.From, &r.To); rerr != nil || n != 2 { - lintCtx.Log.Warnf("Can't convert gosec line number %q of %v to int: %s", i.Line, i, err) - continue - } - line = r.From - } - - column, err := strconv.Atoi(i.Col) - if err != nil { - lintCtx.Log.Warnf("Can't convert gosec column number %q of %v to int: %s", i.Col, i, err) - continue - } - - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: token.Position{ - Filename: i.File, - Line: line, - Column: column, - }, - Text: text, - LineRange: r, - FromLinter: gosecName, - }, pass)) - } + issues := runGoSec(lintCtx, pass, settings, gosecAnalyzer) mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil @@ -122,6 +74,70 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter { }).WithLoadMode(goanalysis.LoadModeTypesInfo) } +func runGoSec(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoSecSettings, analyzer *gosec.Analyzer) []goanalysis.Issue { + pkg := &packages.Package{ + Fset: pass.Fset, + Syntax: pass.Files, + Types: pass.Pkg, + TypesInfo: pass.TypesInfo, + } + + analyzer.Check(pkg) + + secIssues, _, _ := analyzer.Report() + if len(secIssues) == 0 { + return nil + } + + severity, err := convertToScore(settings.Severity) + if err != nil { + lintCtx.Log.Warnf("The provided severity %v", err) + } + + confidence, err := convertToScore(settings.Confidence) + if err != nil { + lintCtx.Log.Warnf("The provided confidence %v", err) + } + + secIssues = filterIssues(secIssues, severity, confidence) + + issues := make([]goanalysis.Issue, 0, len(secIssues)) + for _, i := range secIssues { + text := fmt.Sprintf("%s: %s", i.RuleID, i.What) // TODO: use severity and confidence + + var r *result.Range + + line, err := strconv.Atoi(i.Line) + if err != nil { + r = &result.Range{} + if n, rerr := fmt.Sscanf(i.Line, "%d-%d", &r.From, &r.To); rerr != nil || n != 2 { + lintCtx.Log.Warnf("Can't convert gosec line number %q of %v to int: %s", i.Line, i, err) + continue + } + line = r.From + } + + column, err := strconv.Atoi(i.Col) + if err != nil { + lintCtx.Log.Warnf("Can't convert gosec column number %q of %v to int: %s", i.Col, i, err) + continue + } + + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: token.Position{ + Filename: i.File, + Line: line, + Column: column, + }, + Text: text, + LineRange: r, + FromLinter: gosecName, + }, pass)) + } + + return issues +} + // based on https://github.com/securego/gosec/blob/569328eade2ccbad4ce2d0f21ee158ab5356a5cf/cmd/gosec/main.go#L170-L188 func gosecRuleFilters(includes, excludes []string) []rules.RuleFilter { var filters []rules.RuleFilter diff --git a/pkg/golinters/govet.go b/pkg/golinters/govet.go index c7a58af610f8..3f005c1d5cc2 100644 --- a/pkg/golinters/govet.go +++ b/pkg/golinters/govet.go @@ -119,33 +119,34 @@ var ( } ) -func NewGovet(cfg *config.GovetSettings) *goanalysis.Linter { - var settings map[string]map[string]interface{} - if cfg != nil { - settings = cfg.Settings +func NewGovet(settings *config.GovetSettings) *goanalysis.Linter { + var conf map[string]map[string]interface{} + if settings != nil { + conf = settings.Settings } + return goanalysis.NewLinter( "govet", "Vet examines Go source code and reports suspicious constructs, "+ "such as Printf calls whose arguments do not align with the format string", - analyzersFromConfig(cfg), - settings, + analyzersFromConfig(settings), + conf, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } -func analyzersFromConfig(cfg *config.GovetSettings) []*analysis.Analyzer { - if cfg == nil { +func analyzersFromConfig(settings *config.GovetSettings) []*analysis.Analyzer { + if settings == nil { return defaultAnalyzers } - if cfg.CheckShadowing { + if settings.CheckShadowing { // Keeping for backward compatibility. - cfg.Enable = append(cfg.Enable, shadow.Analyzer.Name) + settings.Enable = append(settings.Enable, shadow.Analyzer.Name) } var enabledAnalyzers []*analysis.Analyzer for _, a := range allAnalyzers { - if isAnalyzerEnabled(a.Name, cfg, defaultAnalyzers) { + if isAnalyzerEnabled(a.Name, settings, defaultAnalyzers) { enabledAnalyzers = append(enabledAnalyzers, a) } } diff --git a/pkg/golinters/interfacer.go b/pkg/golinters/interfacer.go index 1edbe894cc6a..59125c5c7b4d 100644 --- a/pkg/golinters/interfacer.go +++ b/pkg/golinters/interfacer.go @@ -22,46 +22,61 @@ func NewInterfacer() *goanalysis.Linter { Name: interfacerName, Doc: goanalysis.TheOnlyanalyzerDoc, Requires: []*analysis.Analyzer{buildssa.Analyzer}, - } - return goanalysis.NewLinter( - interfacerName, - "Linter that suggests narrower interface types", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - ssa := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) - ssaPkg := ssa.Pkg - c := &check.Checker{} - prog := goanalysis.MakeFakeLoaderProgram(pass) - c.Program(prog) - c.ProgramSSA(ssaPkg.Prog) - - issues, err := c.Check() + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runInterfacer(pass) if err != nil { return nil, err } + if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, 0, len(issues)) - for _, i := range issues { - pos := pass.Fset.Position(i.Pos()) - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: pos, - Text: i.Message(), - FromLinter: interfacerName, - }, pass)) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + interfacerName, + "Linter that suggests narrower interface types", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +func runInterfacer(pass *analysis.Pass) ([]goanalysis.Issue, error) { + c := &check.Checker{} + + prog := goanalysis.MakeFakeLoaderProgram(pass) + c.Program(prog) + + ssa := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) + ssaPkg := ssa.Pkg + c.ProgramSSA(ssaPkg.Prog) + + lintIssues, err := c.Check() + if err != nil { + return nil, err + } + if len(lintIssues) == 0 { + return nil, nil + } + + issues := make([]goanalysis.Issue, 0, len(lintIssues)) + for _, i := range lintIssues { + pos := pass.Fset.Position(i.Pos()) + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: pos, + Text: i.Message(), + FromLinter: interfacerName, + }, pass)) + } + + return issues, nil +} diff --git a/pkg/golinters/lll.go b/pkg/golinters/lll.go index e0a9de63c675..65d4c15a3784 100644 --- a/pkg/golinters/lll.go +++ b/pkg/golinters/lll.go @@ -11,11 +11,74 @@ import ( "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) +const lllName = "lll" + +//nolint:dupl +func NewLLL(settings *config.LllSettings) *goanalysis.Linter { + var mu sync.Mutex + var resIssues []goanalysis.Issue + + analyzer := &analysis.Analyzer{ + Name: lllName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runLll(pass, settings) + if err != nil { + return nil, err + } + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil + }, + } + + return goanalysis.NewLinter( + lllName, + "Reports long lines", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeSyntax) +} + +func runLll(pass *analysis.Pass, settings *config.LllSettings) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + spaces := strings.Repeat(" ", settings.TabWidth) + + var issues []goanalysis.Issue + for _, f := range fileNames { + lintIssues, err := getLLLIssuesForFile(f, settings.LineLength, spaces) + if err != nil { + return nil, err + } + + for i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&lintIssues[i], pass)) + } + } + + return issues, nil +} + func getLLLIssuesForFile(filename string, maxLineLen int, tabSpaces string) ([]result.Issue, error) { var res []result.Issue @@ -72,53 +135,3 @@ func getLLLIssuesForFile(filename string, maxLineLen int, tabSpaces string) ([]r return res, nil } - -const lllName = "lll" - -func NewLLL() *goanalysis.Linter { - var mu sync.Mutex - var resIssues []goanalysis.Issue - - analyzer := &analysis.Analyzer{ - Name: lllName, - Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - lllName, - "Reports long lines", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } - - var res []goanalysis.Issue - spaces := strings.Repeat(" ", lintCtx.Settings().Lll.TabWidth) - for _, f := range fileNames { - issues, err := getLLLIssuesForFile(f, lintCtx.Settings().Lll.LineLength, spaces) - if err != nil { - return nil, err - } - for i := range issues { - res = append(res, goanalysis.NewIssue(&issues[i], pass)) - } - } - - if len(res) == 0 { - return nil, nil - } - - mu.Lock() - resIssues = append(resIssues, res...) - mu.Unlock() - - return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeSyntax) -} diff --git a/pkg/golinters/maintidx.go b/pkg/golinters/maintidx.go index 2b02b948f47e..183006b05c5e 100644 --- a/pkg/golinters/maintidx.go +++ b/pkg/golinters/maintidx.go @@ -24,9 +24,7 @@ func NewMaintIdx(cfg *config.MaintIdxSettings) *goanalysis.Linter { return goanalysis.NewLinter( analyzer.Name, analyzer.Doc, - []*analysis.Analyzer{ - analyzer, - }, + []*analysis.Analyzer{analyzer}, cfgMap, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/makezero.go b/pkg/golinters/makezero.go index cdde09291d22..5d55f01e7703 100644 --- a/pkg/golinters/makezero.go +++ b/pkg/golinters/makezero.go @@ -7,6 +7,7 @@ import ( "github.com/pkg/errors" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,47 +15,61 @@ import ( const makezeroName = "makezero" -func NewMakezero() *goanalysis.Linter { +//nolint:dupl +func NewMakezero(settings *config.MakezeroSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: makezeroName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - makezeroName, - "Finds slice declarations with non-zero initial length", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - s := &lintCtx.Settings().Makezero - - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var res []goanalysis.Issue - linter := makezero.NewLinter(s.Always) - for _, file := range pass.Files { - hints, err := linter.Run(pass.Fset, pass.TypesInfo, file) - if err != nil { - return nil, errors.Wrapf(err, "makezero linter failed on file %q", file.Name.String()) - } - for _, hint := range hints { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: hint.Position(), - Text: hint.Details(), - FromLinter: makezeroName, - }, pass)) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runMakeZero(pass, settings) + if err != nil { + return nil, err } - if len(res) == 0 { + + if len(issues) == 0 { return nil, nil } + mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() + return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + makezeroName, + "Finds slice declarations with non-zero initial length", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +func runMakeZero(pass *analysis.Pass, settings *config.MakezeroSettings) ([]goanalysis.Issue, error) { + zero := makezero.NewLinter(settings.Always) + + var issues []goanalysis.Issue + + for _, file := range pass.Files { + hints, err := zero.Run(pass.Fset, pass.TypesInfo, file) + if err != nil { + return nil, errors.Wrapf(err, "makezero linter failed on file %q", file.Name.String()) + } + + for _, hint := range hints { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: hint.Position(), + Text: hint.Details(), + FromLinter: makezeroName, + }, pass)) + } + } + + return issues, nil +} diff --git a/pkg/golinters/maligned.go b/pkg/golinters/maligned.go index 22422b8c6a4a..9c3ca8b5fe6e 100644 --- a/pkg/golinters/maligned.go +++ b/pkg/golinters/maligned.go @@ -7,52 +7,68 @@ import ( malignedAPI "github.com/golangci/maligned" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewMaligned() *goanalysis.Linter { - const linterName = "maligned" +const malignedName = "maligned" + +//nolint:dupl +func NewMaligned(settings *config.MalignedSettings) *goanalysis.Linter { var mu sync.Mutex var res []goanalysis.Issue + analyzer := &analysis.Analyzer{ - Name: linterName, + Name: malignedName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - linterName, - "Tool to detect Go structs that would take less memory if their fields were sorted", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - prog := goanalysis.MakeFakeLoaderProgram(pass) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runMaligned(pass, settings) - malignedIssues := malignedAPI.Run(prog) - if len(malignedIssues) == 0 { + if len(issues) == 0 { return nil, nil } - issues := make([]goanalysis.Issue, 0, len(malignedIssues)) - for _, i := range malignedIssues { - text := fmt.Sprintf("struct of size %d bytes could be of size %d bytes", i.OldSize, i.NewSize) - if lintCtx.Settings().Maligned.SuggestNewOrder { - text += fmt.Sprintf(":\n%s", formatCodeBlock(i.NewStructDef, lintCtx.Cfg)) - } - issues = append(issues, goanalysis.NewIssue(&result.Issue{ - Pos: i.Pos, - Text: text, - FromLinter: linterName, - }, pass)) - } - mu.Lock() res = append(res, issues...) mu.Unlock() + return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + malignedName, + "Tool to detect Go structs that would take less memory if their fields were sorted", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return res }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +func runMaligned(pass *analysis.Pass, settings *config.MalignedSettings) []goanalysis.Issue { + prog := goanalysis.MakeFakeLoaderProgram(pass) + + malignedIssues := malignedAPI.Run(prog) + if len(malignedIssues) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, 0, len(malignedIssues)) + for _, i := range malignedIssues { + text := fmt.Sprintf("struct of size %d bytes could be of size %d bytes", i.OldSize, i.NewSize) + if settings.SuggestNewOrder { + text += fmt.Sprintf(":\n%s", formatCodeBlock(i.NewStructDef, nil)) + } + + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: i.Pos, + Text: text, + FromLinter: malignedName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/misspell.go b/pkg/golinters/misspell.go index 80ecf9bb668a..47eb7a7b924f 100644 --- a/pkg/golinters/misspell.go +++ b/pkg/golinters/misspell.go @@ -9,119 +9,48 @@ import ( "github.com/golangci/misspell" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func runMisspellOnFile(fileName string, r *misspell.Replacer, lintCtx *linter.Context) ([]result.Issue, error) { - var res []result.Issue - fileContent, err := lintCtx.FileCache.GetFileBytes(fileName) - if err != nil { - return nil, fmt.Errorf("can't get file %s contents: %s", fileName, err) - } - - // use r.Replace, not r.ReplaceGo because r.ReplaceGo doesn't find - // issues inside strings: it searches only inside comments. r.Replace - // searches all words: it treats input as a plain text. A standalone misspell - // tool uses r.Replace by default. - _, diffs := r.Replace(string(fileContent)) - for _, diff := range diffs { - text := fmt.Sprintf("`%s` is a misspelling of `%s`", diff.Original, diff.Corrected) - pos := token.Position{ - Filename: fileName, - Line: diff.Line, - Column: diff.Column + 1, - } - replacement := &result.Replacement{ - Inline: &result.InlineFix{ - StartCol: diff.Column, - Length: len(diff.Original), - NewString: diff.Corrected, - }, - } - - res = append(res, result.Issue{ - Pos: pos, - Text: text, - FromLinter: misspellName, - Replacement: replacement, - }) - } - - return res, nil -} - const misspellName = "misspell" -func NewMisspell() *goanalysis.Linter { +func NewMisspell(settings *config.MisspellSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - var ruleErr error analyzer := &analysis.Analyzer{ Name: misspellName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( misspellName, "Finds commonly misspelled English words in comments", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - r := misspell.Replacer{ - Replacements: misspell.DictMain, - } - - // Figure out regional variations - settings := lintCtx.Settings().Misspell - locale := settings.Locale - switch strings.ToUpper(locale) { - case "": - // nothing - case "US": - r.AddRuleList(misspell.DictAmerican) - case "UK", "GB": - r.AddRuleList(misspell.DictBritish) - case "NZ", "AU", "CA": - ruleErr = fmt.Errorf("unknown locale: %q", locale) - } - - if ruleErr == nil { - if len(settings.IgnoreWords) != 0 { - r.RemoveRule(settings.IgnoreWords) - } - - r.Compile() - } + replacer, ruleErr := createMisspellReplacer(settings) analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { if ruleErr != nil { return nil, ruleErr } - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) + issues, err := runMisspell(lintCtx, pass, replacer) + if err != nil { + return nil, err } - var res []goanalysis.Issue - for _, f := range fileNames { - issues, err := runMisspellOnFile(f, &r, lintCtx) - if err != nil { - return nil, err - } - for i := range issues { - res = append(res, goanalysis.NewIssue(&issues[i], pass)) - } - } - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil @@ -130,3 +59,90 @@ func NewMisspell() *goanalysis.Linter { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runMisspell(lintCtx *linter.Context, pass *analysis.Pass, replacer *misspell.Replacer) ([]goanalysis.Issue, error) { + var fileNames []string + + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + var issues []goanalysis.Issue + for _, filename := range fileNames { + lintIssues, err := runMisspellOnFile(lintCtx, filename, replacer) + if err != nil { + return nil, err + } + for i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&lintIssues[i], pass)) + } + } + + return issues, nil +} + +func createMisspellReplacer(settings *config.MisspellSettings) (*misspell.Replacer, error) { + replacer := &misspell.Replacer{ + Replacements: misspell.DictMain, + } + + // Figure out regional variations + switch strings.ToUpper(settings.Locale) { + case "": + // nothing + case "US": + replacer.AddRuleList(misspell.DictAmerican) + case "UK", "GB": + replacer.AddRuleList(misspell.DictBritish) + case "NZ", "AU", "CA": + return nil, fmt.Errorf("unknown locale: %q", settings.Locale) + } + + if len(settings.IgnoreWords) != 0 { + replacer.RemoveRule(settings.IgnoreWords) + } + + // It can panic. + replacer.Compile() + + return replacer, nil +} + +func runMisspellOnFile(lintCtx *linter.Context, filename string, replacer *misspell.Replacer) ([]result.Issue, error) { + var res []result.Issue + fileContent, err := lintCtx.FileCache.GetFileBytes(filename) + if err != nil { + return nil, fmt.Errorf("can't get file %s contents: %s", filename, err) + } + + // use r.Replace, not r.ReplaceGo because r.ReplaceGo doesn't find + // issues inside strings: it searches only inside comments. r.Replace + // searches all words: it treats input as a plain text. A standalone misspell + // tool uses r.Replace by default. + _, diffs := replacer.Replace(string(fileContent)) + for _, diff := range diffs { + text := fmt.Sprintf("`%s` is a misspelling of `%s`", diff.Original, diff.Corrected) + pos := token.Position{ + Filename: filename, + Line: diff.Line, + Column: diff.Column + 1, + } + replacement := &result.Replacement{ + Inline: &result.InlineFix{ + StartCol: diff.Column, + Length: len(diff.Original), + NewString: diff.Corrected, + }, + } + + res = append(res, result.Issue{ + Pos: pos, + Text: text, + FromLinter: misspellName, + Replacement: replacement, + }) + } + + return res, nil +} diff --git a/pkg/golinters/nakedret.go b/pkg/golinters/nakedret.go index 86735a51ada5..dc2de0345a7a 100644 --- a/pkg/golinters/nakedret.go +++ b/pkg/golinters/nakedret.go @@ -8,11 +8,66 @@ import ( "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) +const nakedretName = "nakedret" + +//nolint:dupl +func NewNakedret(settings *config.NakedretSettings) *goanalysis.Linter { + var mu sync.Mutex + var resIssues []goanalysis.Issue + + analyzer := &analysis.Analyzer{ + Name: nakedretName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runNakedRet(pass, settings) + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil + }, + } + + return goanalysis.NewLinter( + nakedretName, + "Finds naked returns in functions greater than a specified function length", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeSyntax) +} + +func runNakedRet(pass *analysis.Pass, settings *config.NakedretSettings) []goanalysis.Issue { + var issues []goanalysis.Issue + + for _, file := range pass.Files { + v := nakedretVisitor{ + maxLength: settings.MaxFuncLines, + f: pass.Fset, + } + + ast.Walk(&v, file) + + for i := range v.issues { + issues = append(issues, goanalysis.NewIssue(&v.issues[i], pass)) + } + } + + return issues +} + type nakedretVisitor struct { maxLength int f *token.FileSet @@ -77,47 +132,3 @@ func (v *nakedretVisitor) Visit(node ast.Node) ast.Visitor { v.processFuncDecl(funcDecl) return v } - -const nakedretName = "nakedret" - -func NewNakedret() *goanalysis.Linter { - var mu sync.Mutex - var resIssues []goanalysis.Issue - - analyzer := &analysis.Analyzer{ - Name: nakedretName, - Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - nakedretName, - "Finds naked returns in functions greater than a specified function length", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var res []goanalysis.Issue - for _, file := range pass.Files { - v := nakedretVisitor{ - maxLength: lintCtx.Settings().Nakedret.MaxFuncLines, - f: pass.Fset, - } - ast.Walk(&v, file) - for i := range v.issues { - res = append(res, goanalysis.NewIssue(&v.issues[i], pass)) - } - } - - if len(res) == 0 { - return nil, nil - } - - mu.Lock() - resIssues = append(resIssues, res...) - mu.Unlock() - - return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeSyntax) -} diff --git a/pkg/golinters/nestif.go b/pkg/golinters/nestif.go index 0998a8ce2f6c..78a516f9d1ec 100644 --- a/pkg/golinters/nestif.go +++ b/pkg/golinters/nestif.go @@ -7,6 +7,7 @@ import ( "github.com/nakabonne/nestif" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,52 +15,65 @@ import ( const nestifName = "nestif" -func NewNestif() *goanalysis.Linter { +//nolint:dupl +func NewNestif(settings *config.NestifSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: goanalysis.TheOnlyAnalyzerName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - nestifName, - "Reports deeply nested if statements", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - checker := &nestif.Checker{ - MinComplexity: lintCtx.Settings().Nestif.MinComplexity, - } - var issues []nestif.Issue - for _, f := range pass.Files { - issues = append(issues, checker.Check(f, pass.Fset)...) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runNestIf(pass, settings) + if len(issues) == 0 { return nil, nil } - sort.SliceStable(issues, func(i, j int) bool { - return issues[i].Complexity > issues[j].Complexity - }) - - res := make([]goanalysis.Issue, 0, len(issues)) - for _, i := range issues { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: i.Pos, - Text: i.Message, - FromLinter: nestifName, - }, pass)) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + nestifName, + "Reports deeply nested if statements", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runNestIf(pass *analysis.Pass, settings *config.NestifSettings) []goanalysis.Issue { + checker := &nestif.Checker{ + MinComplexity: settings.MinComplexity, + } + + var lintIssues []nestif.Issue + for _, f := range pass.Files { + lintIssues = append(lintIssues, checker.Check(f, pass.Fset)...) + } + + if len(lintIssues) == 0 { + return nil + } + + sort.SliceStable(lintIssues, func(i, j int) bool { + return lintIssues[i].Complexity > lintIssues[j].Complexity + }) + + issues := make([]goanalysis.Issue, 0, len(lintIssues)) + for _, i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: i.Pos, + Text: i.Message, + FromLinter: nestifName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/nilerr.go b/pkg/golinters/nilerr.go index d8a9a613eff4..2ea16f2f3958 100644 --- a/pkg/golinters/nilerr.go +++ b/pkg/golinters/nilerr.go @@ -9,6 +9,7 @@ import ( func NewNilErr() *goanalysis.Linter { a := nilerr.Analyzer + return goanalysis.NewLinter( a.Name, "Finds the code that returns nil even if it checks that the error is not nil.", diff --git a/pkg/golinters/noctx.go b/pkg/golinters/noctx.go index b5c4a4be240b..b7fcd2a737af 100644 --- a/pkg/golinters/noctx.go +++ b/pkg/golinters/noctx.go @@ -8,14 +8,10 @@ import ( ) func NewNoctx() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - noctx.Analyzer, - } - return goanalysis.NewLinter( "noctx", "noctx finds sending http request without context.Context", - analyzers, + []*analysis.Analyzer{noctx.Analyzer}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/nolintlint.go b/pkg/golinters/nolintlint.go index 889cff864c89..62b8064ba2ae 100644 --- a/pkg/golinters/nolintlint.go +++ b/pkg/golinters/nolintlint.go @@ -7,87 +7,102 @@ import ( "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/golinters/nolintlint" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -const NolintlintName = "nolintlint" +const NoLintLintName = "nolintlint" -func NewNoLintLint() *goanalysis.Linter { +//nolint:dupl +func NewNoLintLint(settings *config.NoLintLintSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: NolintlintName, + Name: NoLintLintName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - NolintlintName, - "Reports ill-formed or insufficient nolint directives", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var needs nolintlint.Needs - settings := lintCtx.Settings().NoLintLint - if settings.RequireExplanation { - needs |= nolintlint.NeedsExplanation - } - if !settings.AllowLeadingSpace { - needs |= nolintlint.NeedsMachineOnly - } - if settings.RequireSpecific { - needs |= nolintlint.NeedsSpecific - } - if !settings.AllowUnused { - needs |= nolintlint.NeedsUnused - } - - lnt, err := nolintlint.NewLinter(needs, settings.AllowNoExplanation) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runNoLintLint(pass, settings) if err != nil { return nil, err } - nodes := make([]ast.Node, 0, len(pass.Files)) - for _, n := range pass.Files { - nodes = append(nodes, n) - } - issues, err := lnt.Run(pass.Fset, nodes...) - if err != nil { - return nil, fmt.Errorf("linter failed to run: %s", err) - } - var res []goanalysis.Issue - for _, i := range issues { - expectNoLint := false - var expectedNolintLinter string - if ii, ok := i.(nolintlint.UnusedCandidate); ok { - expectedNolintLinter = ii.ExpectedLinter - expectNoLint = true - } - issue := &result.Issue{ - FromLinter: NolintlintName, - Text: i.Details(), - Pos: i.Position(), - ExpectNoLint: expectNoLint, - ExpectedNoLintLinter: expectedNolintLinter, - Replacement: i.Replacement(), - } - res = append(res, goanalysis.NewIssue(issue, pass)) - } - - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + NoLintLintName, + "Reports ill-formed or insufficient nolint directives", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runNoLintLint(pass *analysis.Pass, settings *config.NoLintLintSettings) ([]goanalysis.Issue, error) { + var needs nolintlint.Needs + if settings.RequireExplanation { + needs |= nolintlint.NeedsExplanation + } + if !settings.AllowLeadingSpace { + needs |= nolintlint.NeedsMachineOnly + } + if settings.RequireSpecific { + needs |= nolintlint.NeedsSpecific + } + if !settings.AllowUnused { + needs |= nolintlint.NeedsUnused + } + + lnt, err := nolintlint.NewLinter(needs, settings.AllowNoExplanation) + if err != nil { + return nil, err + } + + nodes := make([]ast.Node, 0, len(pass.Files)) + for _, n := range pass.Files { + nodes = append(nodes, n) + } + + lintIssues, err := lnt.Run(pass.Fset, nodes...) + if err != nil { + return nil, fmt.Errorf("linter failed to run: %s", err) + } + + var issues []goanalysis.Issue + + for _, i := range lintIssues { + expectNoLint := false + var expectedNolintLinter string + if ii, ok := i.(nolintlint.UnusedCandidate); ok { + expectedNolintLinter = ii.ExpectedLinter + expectNoLint = true + } + + issue := &result.Issue{ + FromLinter: NoLintLintName, + Text: i.Details(), + Pos: i.Position(), + ExpectNoLint: expectNoLint, + ExpectedNoLintLinter: expectedNolintLinter, + Replacement: i.Replacement(), + } + + issues = append(issues, goanalysis.NewIssue(issue, pass)) + } + + return issues, nil +} diff --git a/pkg/golinters/paralleltest.go b/pkg/golinters/paralleltest.go index 3b784baf5a21..68627961822d 100644 --- a/pkg/golinters/paralleltest.go +++ b/pkg/golinters/paralleltest.go @@ -8,14 +8,10 @@ import ( ) func NewParallelTest() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - paralleltest.NewAnalyzer(), - } - return goanalysis.NewLinter( "paralleltest", "paralleltest detects missing usage of t.Parallel() method in your Go test", - analyzers, + []*analysis.Analyzer{paralleltest.NewAnalyzer()}, nil, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/prealloc.go b/pkg/golinters/prealloc.go index 3d06cf14724f..75a9b4ec2f44 100644 --- a/pkg/golinters/prealloc.go +++ b/pkg/golinters/prealloc.go @@ -7,6 +7,7 @@ import ( "github.com/alexkohler/prealloc/pkg" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" @@ -14,44 +15,51 @@ import ( const preallocName = "prealloc" -func NewPrealloc() *goanalysis.Linter { +//nolint:dupl +func NewPreAlloc(settings *config.PreallocSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: preallocName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - preallocName, - "Finds slice declarations that could potentially be preallocated", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - s := &lintCtx.Settings().Prealloc - - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var res []goanalysis.Issue - hints := pkg.Check(pass.Files, s.Simple, s.RangeLoops, s.ForLoops) - for _, hint := range hints { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: pass.Fset.Position(hint.Pos), - Text: fmt.Sprintf("Consider preallocating %s", formatCode(hint.DeclaredSliceName, lintCtx.Cfg)), - FromLinter: preallocName, - }, pass)) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runPreAlloc(pass, settings) - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + preallocName, + "Finds slice declarations that could potentially be pre-allocated", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runPreAlloc(pass *analysis.Pass, settings *config.PreallocSettings) []goanalysis.Issue { + var issues []goanalysis.Issue + + hints := pkg.Check(pass.Files, settings.Simple, settings.RangeLoops, settings.ForLoops) + + for _, hint := range hints { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: pass.Fset.Position(hint.Pos), + Text: fmt.Sprintf("Consider pre-allocating %s", formatCode(hint.DeclaredSliceName, nil)), + FromLinter: preallocName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/promlinter.go b/pkg/golinters/promlinter.go index 4fba3d274790..f77847a49aa4 100644 --- a/pkg/golinters/promlinter.go +++ b/pkg/golinters/promlinter.go @@ -7,57 +7,71 @@ import ( "github.com/yeya24/promlinter" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewPromlinter() *goanalysis.Linter { +const promlinterName = "promlinter" + +func NewPromlinter(settings *config.PromlinterSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - const linterName = "promlinter" - analyzer := &analysis.Analyzer{ - Name: linterName, - Doc: goanalysis.TheOnlyanalyzerDoc, + var promSettings promlinter.Setting + if settings != nil { + promSettings = promlinter.Setting{ + Strict: settings.Strict, + DisabledLintFuncs: settings.DisabledLinters, + } } - return goanalysis.NewLinter( - linterName, - "Check Prometheus metrics naming via promlint", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - strict := lintCtx.Cfg.LintersSettings.Promlinter.Strict - disabledLinters := lintCtx.Cfg.LintersSettings.Promlinter.DisabledLinters - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - issues := promlinter.RunLint(pass.Fset, pass.Files, promlinter.Setting{ - Strict: strict, - DisabledLintFuncs: disabledLinters, - }) + analyzer := &analysis.Analyzer{ + Name: promlinterName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runPromLinter(pass, promSettings) if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, len(issues)) - for k, i := range issues { - issue := result.Issue{ - Pos: i.Pos, - Text: fmt.Sprintf("Metric: %s Error: %s", i.Metric, i.Text), - FromLinter: linterName, - } - - res[k] = goanalysis.NewIssue(&issue, pass) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + promlinterName, + "Check Prometheus metrics naming via promlint", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runPromLinter(pass *analysis.Pass, promSettings promlinter.Setting) []goanalysis.Issue { + lintIssues := promlinter.RunLint(pass.Fset, pass.Files, promSettings) + + if len(lintIssues) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, len(lintIssues)) + for k, i := range lintIssues { + issue := result.Issue{ + Pos: i.Pos, + Text: fmt.Sprintf("Metric: %s Error: %s", i.Metric, i.Text), + FromLinter: promlinterName, + } + + issues[k] = goanalysis.NewIssue(&issue, pass) + } + + return issues +} diff --git a/pkg/golinters/revive.go b/pkg/golinters/revive.go index 8fd5e9802900..30306b8ac197 100644 --- a/pkg/golinters/revive.go +++ b/pkg/golinters/revive.go @@ -7,6 +7,7 @@ import ( "go/token" "os" "reflect" + "sync" "github.com/BurntSushi/toml" reviveConfig "github.com/mgechev/revive/config" @@ -33,12 +34,15 @@ type jsonObject struct { } // NewRevive returns a new Revive linter. -func NewRevive(cfg *config.ReviveSettings) *goanalysis.Linter { - var issues []goanalysis.Issue +//nolint:dupl +func NewRevive(settings *config.ReviveSettings) *goanalysis.Linter { + var mu sync.Mutex + var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ Name: goanalysis.TheOnlyAnalyzerName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } return goanalysis.NewLinter( @@ -48,72 +52,90 @@ func NewRevive(cfg *config.ReviveSettings) *goanalysis.Linter { nil, ).WithContextSetter(func(lintCtx *linter.Context) { analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var files []string - for _, file := range pass.Files { - files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) - } - packages := [][]string{files} - - conf, err := getReviveConfig(cfg) + issues, err := runRevive(lintCtx, pass, settings) if err != nil { return nil, err } - formatter, err := reviveConfig.GetFormatter("json") - if err != nil { - return nil, err + if len(issues) == 0 { + return nil, nil } - revive := lint.New(os.ReadFile, cfg.MaxOpenFiles) + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() - lintingRules, err := reviveConfig.GetLintingRules(conf, []lint.Rule{}) - if err != nil { - return nil, err - } + return nil, nil + } + }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeSyntax) +} - failures, err := revive.Lint(packages, lintingRules, *conf) - if err != nil { - return nil, err - } +func runRevive(lintCtx *linter.Context, pass *analysis.Pass, settings *config.ReviveSettings) ([]goanalysis.Issue, error) { + var files []string + for _, file := range pass.Files { + files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) + } + packages := [][]string{files} - formatChan := make(chan lint.Failure) - exitChan := make(chan bool) + conf, err := getReviveConfig(settings) + if err != nil { + return nil, err + } - var output string - go func() { - output, err = formatter.Format(formatChan, *conf) - if err != nil { - lintCtx.Log.Errorf("Format error: %v", err) - } - exitChan <- true - }() + formatter, err := reviveConfig.GetFormatter("json") + if err != nil { + return nil, err + } - for f := range failures { - if f.Confidence < conf.Confidence { - continue - } + revive := lint.New(os.ReadFile, settings.MaxOpenFiles) - formatChan <- f - } + lintingRules, err := reviveConfig.GetLintingRules(conf, []lint.Rule{}) + if err != nil { + return nil, err + } - close(formatChan) - <-exitChan + failures, err := revive.Lint(packages, lintingRules, *conf) + if err != nil { + return nil, err + } - var results []jsonObject - err = json.Unmarshal([]byte(output), &results) - if err != nil { - return nil, err - } + formatChan := make(chan lint.Failure) + exitChan := make(chan bool) - for i := range results { - issues = append(issues, reviveToIssue(pass, &results[i])) - } + var output string + go func() { + output, err = formatter.Format(formatChan, *conf) + if err != nil { + lintCtx.Log.Errorf("Format error: %v", err) + } + exitChan <- true + }() - return nil, nil + for f := range failures { + if f.Confidence < conf.Confidence { + continue } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return issues - }).WithLoadMode(goanalysis.LoadModeSyntax) + + formatChan <- f + } + + close(formatChan) + <-exitChan + + var results []jsonObject + err = json.Unmarshal([]byte(output), &results) + if err != nil { + return nil, err + } + + var issues []goanalysis.Issue + for i := range results { + issues = append(issues, reviveToIssue(pass, &results[i])) + } + + return issues, nil } func reviveToIssue(pass *analysis.Pass, object *jsonObject) goanalysis.Issue { diff --git a/pkg/golinters/rowserrcheck.go b/pkg/golinters/rowserrcheck.go index d4c89d382931..5a66d62e7dd8 100644 --- a/pkg/golinters/rowserrcheck.go +++ b/pkg/golinters/rowserrcheck.go @@ -4,20 +4,22 @@ import ( "github.com/jingyugao/rowserrcheck/passes/rowserr" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" - "github.com/golangci/golangci-lint/pkg/lint/linter" ) -func NewRowsErrCheck() *goanalysis.Linter { - analyzer := rowserr.NewAnalyzer() +func NewRowsErrCheck(settings *config.RowsErrCheckSettings) *goanalysis.Linter { + var pkgs []string + if settings != nil { + pkgs = settings.Packages + } + + analyzer := rowserr.NewAnalyzer(pkgs...) + return goanalysis.NewLinter( "rowserrcheck", "checks whether Err of rows is checked successfully", []*analysis.Analyzer{analyzer}, nil, - ).WithLoadMode(goanalysis.LoadModeTypesInfo). - WithContextSetter(func(lintCtx *linter.Context) { - pkgs := lintCtx.Settings().RowsErrCheck.Packages - analyzer.Run = rowserr.NewRun(pkgs...) - }) + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/scopelint.go b/pkg/golinters/scopelint.go index ba3921e1964e..4a2b1bf45ac1 100644 --- a/pkg/golinters/scopelint.go +++ b/pkg/golinters/scopelint.go @@ -15,6 +15,7 @@ import ( const scopelintName = "scopelint" +//nolint:dupl func NewScopelint() *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue @@ -22,43 +23,53 @@ func NewScopelint() *goanalysis.Linter { analyzer := &analysis.Analyzer{ Name: scopelintName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - scopelintName, - "Scopelint checks for unpinned variables in go programs", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var res []result.Issue - for _, file := range pass.Files { - n := Node{ - fset: pass.Fset, - DangerObjects: map[*ast.Object]int{}, - UnsafeObjects: map[*ast.Object]int{}, - SkipFuncs: map[*ast.FuncLit]int{}, - issues: &res, - } - ast.Walk(&n, file) - } + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runScopeLint(pass) - if len(res) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - for i := range res { - resIssues = append(resIssues, goanalysis.NewIssue(&res[i], pass)) - } + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + }, + } + + return goanalysis.NewLinter( + scopelintName, + "Scopelint checks for unpinned variables in go programs", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } +func runScopeLint(pass *analysis.Pass) []goanalysis.Issue { + var lintIssues []result.Issue + + for _, file := range pass.Files { + n := Node{ + fset: pass.Fset, + DangerObjects: map[*ast.Object]int{}, + UnsafeObjects: map[*ast.Object]int{}, + SkipFuncs: map[*ast.FuncLit]int{}, + issues: &lintIssues, + } + ast.Walk(&n, file) + } + + var issues []goanalysis.Issue + for i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&lintIssues[i], pass)) + } + + return issues +} + // The code below is copy-pasted from https://github.com/kyoh86/scopelint 92cbe2cc9276abda0e309f52cc9e309d407f174e // Node represents a Node being linted. diff --git a/pkg/golinters/sqlclosecheck.go b/pkg/golinters/sqlclosecheck.go index 48ca246e70a2..ff2c0c08ff86 100644 --- a/pkg/golinters/sqlclosecheck.go +++ b/pkg/golinters/sqlclosecheck.go @@ -8,14 +8,12 @@ import ( ) func NewSQLCloseCheck() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - analyzer.NewAnalyzer(), - } - return goanalysis.NewLinter( "sqlclosecheck", "Checks that sql.Rows and sql.Stmt are closed.", - analyzers, + []*analysis.Analyzer{ + analyzer.NewAnalyzer(), + }, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/structcheck.go b/pkg/golinters/structcheck.go index 7c16f8ec366f..fe49b1be20f9 100644 --- a/pkg/golinters/structcheck.go +++ b/pkg/golinters/structcheck.go @@ -1,4 +1,4 @@ -package golinters // nolint:dupl +package golinters import ( "fmt" @@ -7,49 +7,65 @@ import ( structcheckAPI "github.com/golangci/check/cmd/structcheck" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewStructcheck() *goanalysis.Linter { - const linterName = "structcheck" +const structcheckName = "structcheck" + +//nolint:dupl +func NewStructcheck(settings *config.StructCheckSettings) *goanalysis.Linter { var mu sync.Mutex - var res []goanalysis.Issue + var resIssues []goanalysis.Issue + analyzer := &analysis.Analyzer{ - Name: linterName, + Name: structcheckName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - linterName, - "Finds unused struct fields", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - checkExported := lintCtx.Settings().Structcheck.CheckExportedFields - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - prog := goanalysis.MakeFakeLoaderProgram(pass) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runStructCheck(pass, settings) - structcheckIssues := structcheckAPI.Run(prog, checkExported) - if len(structcheckIssues) == 0 { + if len(issues) == 0 { return nil, nil } - issues := make([]goanalysis.Issue, 0, len(structcheckIssues)) - for _, i := range structcheckIssues { - issues = append(issues, goanalysis.NewIssue(&result.Issue{ - Pos: i.Pos, - Text: fmt.Sprintf("%s is unused", formatCode(i.FieldName, lintCtx.Cfg)), - FromLinter: linterName, - }, pass)) - } - mu.Lock() - res = append(res, issues...) + resIssues = append(resIssues, issues...) mu.Unlock() + return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return res + }, + } + + return goanalysis.NewLinter( + structcheckName, + "Finds unused struct fields", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +//nolint:dupl +func runStructCheck(pass *analysis.Pass, settings *config.StructCheckSettings) []goanalysis.Issue { + prog := goanalysis.MakeFakeLoaderProgram(pass) + + lintIssues := structcheckAPI.Run(prog, settings.CheckExportedFields) + if len(lintIssues) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, 0, len(lintIssues)) + + for _, i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: i.Pos, + Text: fmt.Sprintf("%s is unused", formatCode(i.FieldName, nil)), + FromLinter: structcheckName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/tagliatelle.go b/pkg/golinters/tagliatelle.go index 5f58fc1d3ba9..275670e10da0 100644 --- a/pkg/golinters/tagliatelle.go +++ b/pkg/golinters/tagliatelle.go @@ -25,6 +25,10 @@ func NewTagliatelle(settings *config.TagliatelleSettings) *goanalysis.Linter { a := tagliatelle.New(cfg) - return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, nil). - WithLoadMode(goanalysis.LoadModeSyntax) + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/tenv.go b/pkg/golinters/tenv.go index 8e3e9c61f601..174b0dd61565 100644 --- a/pkg/golinters/tenv.go +++ b/pkg/golinters/tenv.go @@ -11,10 +11,6 @@ import ( func NewTenv(settings *config.TenvSettings) *goanalysis.Linter { a := tenv.Analyzer - analyzers := []*analysis.Analyzer{ - a, - } - var cfg map[string]map[string]interface{} if settings != nil { cfg = map[string]map[string]interface{}{ @@ -27,7 +23,7 @@ func NewTenv(settings *config.TenvSettings) *goanalysis.Linter { return goanalysis.NewLinter( a.Name, a.Doc, - analyzers, + []*analysis.Analyzer{a}, cfg, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/testpackage.go b/pkg/golinters/testpackage.go index 1248e78fdac4..836403826c14 100644 --- a/pkg/golinters/testpackage.go +++ b/pkg/golinters/testpackage.go @@ -10,6 +10,7 @@ import ( func NewTestpackage(cfg *config.TestpackageSettings) *goanalysis.Linter { var a = testpackage.NewAnalyzer() + var settings map[string]map[string]interface{} if cfg != nil { settings = map[string]map[string]interface{}{ @@ -18,6 +19,7 @@ func NewTestpackage(cfg *config.TestpackageSettings) *goanalysis.Linter { }, } } + return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, settings). WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/golinters/tparallel.go b/pkg/golinters/tparallel.go index a4b96eb73538..cbe97516c49f 100644 --- a/pkg/golinters/tparallel.go +++ b/pkg/golinters/tparallel.go @@ -8,14 +8,10 @@ import ( ) func NewTparallel() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - tparallel.Analyzer, - } - return goanalysis.NewLinter( "tparallel", "tparallel detects inappropriate usage of t.Parallel() method in your Go test codes", - analyzers, + []*analysis.Analyzer{tparallel.Analyzer}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/typecheck.go b/pkg/golinters/typecheck.go index 24f4339fbd3f..e9b26ef485e1 100644 --- a/pkg/golinters/typecheck.go +++ b/pkg/golinters/typecheck.go @@ -12,17 +12,13 @@ func NewTypecheck() *goanalysis.Linter { analyzer := &analysis.Analyzer{ Name: linterName, Doc: goanalysis.TheOnlyanalyzerDoc, - Run: func(pass *analysis.Pass) (interface{}, error) { - return nil, nil - }, + Run: goanalysis.DummyRun, } - linter := goanalysis.NewLinter( + return goanalysis.NewLinter( linterName, "Like the front-end of a Go compiler, parses and type-checks Go code", []*analysis.Analyzer{analyzer}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) - - return linter } diff --git a/pkg/golinters/unconvert.go b/pkg/golinters/unconvert.go index 456f6836cc1d..def9f156578c 100644 --- a/pkg/golinters/unconvert.go +++ b/pkg/golinters/unconvert.go @@ -11,43 +11,57 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) +const unconvertName = "unconvert" + +//nolint:dupl func NewUnconvert() *goanalysis.Linter { - const linterName = "unconvert" var mu sync.Mutex - var res []goanalysis.Issue + var resIssues []goanalysis.Issue + analyzer := &analysis.Analyzer{ - Name: linterName, + Name: unconvertName, Doc: goanalysis.TheOnlyanalyzerDoc, - } - return goanalysis.NewLinter( - linterName, - "Remove unnecessary type conversions", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - prog := goanalysis.MakeFakeLoaderProgram(pass) + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runUnconvert(pass) - positions := unconvertAPI.Run(prog) - if len(positions) == 0 { + if len(issues) == 0 { return nil, nil } - issues := make([]goanalysis.Issue, 0, len(positions)) - for _, pos := range positions { - issues = append(issues, goanalysis.NewIssue(&result.Issue{ - Pos: pos, - Text: "unnecessary conversion", - FromLinter: linterName, - }, pass)) - } - mu.Lock() - res = append(res, issues...) + resIssues = append(resIssues, issues...) mu.Unlock() + return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return res + }, + } + + return goanalysis.NewLinter( + unconvertName, + "Remove unnecessary type conversions", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +func runUnconvert(pass *analysis.Pass) []goanalysis.Issue { + prog := goanalysis.MakeFakeLoaderProgram(pass) + + positions := unconvertAPI.Run(prog) + if len(positions) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, 0, len(positions)) + for _, pos := range positions { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: pos, + Text: "unnecessary conversion", + FromLinter: unconvertName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/unparam.go b/pkg/golinters/unparam.go index 33dd55c9b284..7accf29566cc 100644 --- a/pkg/golinters/unparam.go +++ b/pkg/golinters/unparam.go @@ -8,69 +8,83 @@ import ( "golang.org/x/tools/go/packages" "mvdan.cc/unparam/check" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewUnparam() *goanalysis.Linter { - const linterName = "unparam" +const unparamName = "unparam" + +func NewUnparam(settings *config.UnparamSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: linterName, + Name: unparamName, Doc: goanalysis.TheOnlyanalyzerDoc, Requires: []*analysis.Analyzer{buildssa.Analyzer}, - } - return goanalysis.NewLinter( - linterName, - "Reports unused function parameters", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - us := &lintCtx.Settings().Unparam - if us.Algo != "cha" { - lintCtx.Log.Warnf("`linters-settings.unparam.algo` isn't supported by the newest `unparam`") - } - - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - ssa := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) - ssaPkg := ssa.Pkg - - pkg := &packages.Package{ - Fset: pass.Fset, - Syntax: pass.Files, - Types: pass.Pkg, - TypesInfo: pass.TypesInfo, - } - - c := &check.Checker{} - c.CheckExportedFuncs(us.CheckExported) - c.Packages([]*packages.Package{pkg}) - c.ProgramSSA(ssaPkg.Prog) - - unparamIssues, err := c.Check() + Run: func(pass *analysis.Pass) (interface{}, error) { + issues, err := runUnparam(pass, settings) if err != nil { return nil, err } - var res []goanalysis.Issue - for _, i := range unparamIssues { - res = append(res, goanalysis.NewIssue(&result.Issue{ - Pos: pass.Fset.Position(i.Pos()), - Text: i.Message(), - FromLinter: linterName, - }, pass)) + if len(issues) == 0 { + return nil, nil } mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil + }, + } + + return goanalysis.NewLinter( + unparamName, + "Reports unused function parameters", + []*analysis.Analyzer{analyzer}, + nil, + ).WithContextSetter(func(lintCtx *linter.Context) { + if settings.Algo != "cha" { + lintCtx.Log.Warnf("`linters-settings.unparam.algo` isn't supported by the newest `unparam`") } }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +func runUnparam(pass *analysis.Pass, settings *config.UnparamSettings) ([]goanalysis.Issue, error) { + ssa := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) + ssaPkg := ssa.Pkg + + pkg := &packages.Package{ + Fset: pass.Fset, + Syntax: pass.Files, + Types: pass.Pkg, + TypesInfo: pass.TypesInfo, + } + + c := &check.Checker{} + c.CheckExportedFuncs(settings.CheckExported) + c.Packages([]*packages.Package{pkg}) + c.ProgramSSA(ssaPkg.Prog) + + unparamIssues, err := c.Check() + if err != nil { + return nil, err + } + + var issues []goanalysis.Issue + for _, i := range unparamIssues { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: pass.Fset.Position(i.Pos()), + Text: i.Message(), + FromLinter: unparamName, + }, pass)) + } + + return issues, nil +} diff --git a/pkg/golinters/unused.go b/pkg/golinters/unused.go index 13e05a5085ba..35b4360119ca 100644 --- a/pkg/golinters/unused.go +++ b/pkg/golinters/unused.go @@ -13,56 +13,28 @@ import ( "github.com/golangci/golangci-lint/pkg/result" ) +const unusedName = "unused" + type UnusedSettings struct { GoVersion string } func NewUnused(settings *config.StaticCheckSettings) *goanalysis.Linter { - const name = "unused" - var mu sync.Mutex var resIssues []goanalysis.Issue analyzer := &analysis.Analyzer{ - Name: name, + Name: unusedName, Doc: unused.Analyzer.Analyzer.Doc, Requires: unused.Analyzer.Analyzer.Requires, Run: func(pass *analysis.Pass) (interface{}, error) { - res, err := unused.Analyzer.Analyzer.Run(pass) + issues, err := runUnused(pass) if err != nil { return nil, err } - sr := unused.Serialize(pass, res.(unused.Result), pass.Fset) - - used := make(map[string]bool) - for _, obj := range sr.Used { - used[fmt.Sprintf("%s %d %s", obj.Position.Filename, obj.Position.Line, obj.Name)] = true - } - - var issues []goanalysis.Issue - // Inspired by https://github.com/dominikh/go-tools/blob/d694aadcb1f50c2d8ac0a1dd06217ebb9f654764/lintcmd/lint.go#L177-L197 - for _, object := range sr.Unused { - if object.Kind == "type param" { - continue - } - - if object.InGenerated { - continue - } - - key := fmt.Sprintf("%s %d %s", object.Position.Filename, object.Position.Line, object.Name) - if used[key] { - continue - } - - issue := goanalysis.NewIssue(&result.Issue{ - FromLinter: name, - Text: fmt.Sprintf("%s %s is unused", object.Kind, object.Name), - Pos: object.Position, - }, pass) - - issues = append(issues, issue) + if len(issues) == 0 { + return nil, nil } mu.Lock() @@ -75,14 +47,54 @@ func NewUnused(settings *config.StaticCheckSettings) *goanalysis.Linter { setAnalyzerGoVersion(analyzer, getGoVersion(settings)) - lnt := goanalysis.NewLinter( - name, + return goanalysis.NewLinter( + unusedName, "Checks Go code for unused constants, variables, functions and types", []*analysis.Analyzer{analyzer}, nil, ).WithIssuesReporter(func(lintCtx *linter.Context) []goanalysis.Issue { return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) +} + +func runUnused(pass *analysis.Pass) ([]goanalysis.Issue, error) { + res, err := unused.Analyzer.Analyzer.Run(pass) + if err != nil { + return nil, err + } + + sr := unused.Serialize(pass, res.(unused.Result), pass.Fset) + + used := make(map[string]bool) + for _, obj := range sr.Used { + used[fmt.Sprintf("%s %d %s", obj.Position.Filename, obj.Position.Line, obj.Name)] = true + } + + var issues []goanalysis.Issue + + // Inspired by https://github.com/dominikh/go-tools/blob/d694aadcb1f50c2d8ac0a1dd06217ebb9f654764/lintcmd/lint.go#L177-L197 + for _, object := range sr.Unused { + if object.Kind == "type param" { + continue + } + + if object.InGenerated { + continue + } + + key := fmt.Sprintf("%s %d %s", object.Position.Filename, object.Position.Line, object.Name) + if used[key] { + continue + } + + issue := goanalysis.NewIssue(&result.Issue{ + FromLinter: unusedName, + Text: fmt.Sprintf("%s %s is unused", object.Kind, object.Name), + Pos: object.Position, + }, pass) + + issues = append(issues, issue) + } - return lnt + return issues, nil } diff --git a/pkg/golinters/varcheck.go b/pkg/golinters/varcheck.go index dcf2e7de8e6a..c2c5b7aa9c35 100644 --- a/pkg/golinters/varcheck.go +++ b/pkg/golinters/varcheck.go @@ -1,4 +1,4 @@ -package golinters // nolint:dupl +package golinters import ( "fmt" @@ -7,49 +7,66 @@ import ( varcheckAPI "github.com/golangci/check/cmd/varcheck" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewVarcheck() *goanalysis.Linter { - const linterName = "varcheck" +const varcheckName = "varcheck" + +func NewVarcheck(settings *config.VarCheckSettings) *goanalysis.Linter { var mu sync.Mutex - var res []goanalysis.Issue + var resIssues []goanalysis.Issue + analyzer := &analysis.Analyzer{ - Name: linterName, + Name: varcheckName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( - linterName, + varcheckName, "Finds unused global variables and constants", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - checkExported := lintCtx.Settings().Varcheck.CheckExportedFields analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - prog := goanalysis.MakeFakeLoaderProgram(pass) + issues := runVarCheck(pass, settings) - varcheckIssues := varcheckAPI.Run(prog, checkExported) - if len(varcheckIssues) == 0 { + if len(issues) == 0 { return nil, nil } - issues := make([]goanalysis.Issue, 0, len(varcheckIssues)) - for _, i := range varcheckIssues { - issues = append(issues, goanalysis.NewIssue(&result.Issue{ - Pos: i.Pos, - Text: fmt.Sprintf("%s is unused", formatCode(i.VarName, lintCtx.Cfg)), - FromLinter: linterName, - }, pass)) - } - mu.Lock() - res = append(res, issues...) + resIssues = append(resIssues, issues...) mu.Unlock() + return nil, nil } }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return res + return resIssues }).WithLoadMode(goanalysis.LoadModeTypesInfo) } + +//nolint:dupl +func runVarCheck(pass *analysis.Pass, settings *config.VarCheckSettings) []goanalysis.Issue { + prog := goanalysis.MakeFakeLoaderProgram(pass) + + lintIssues := varcheckAPI.Run(prog, settings.CheckExportedFields) + if len(lintIssues) == 0 { + return nil + } + + issues := make([]goanalysis.Issue, 0, len(lintIssues)) + + for _, i := range lintIssues { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + Pos: i.Pos, + Text: fmt.Sprintf("%s is unused", formatCode(i.VarName, nil)), + FromLinter: varcheckName, + }, pass)) + } + + return issues +} diff --git a/pkg/golinters/wastedassign.go b/pkg/golinters/wastedassign.go index d359fb019534..92798d4f7353 100644 --- a/pkg/golinters/wastedassign.go +++ b/pkg/golinters/wastedassign.go @@ -8,14 +8,10 @@ import ( ) func NewWastedAssign() *goanalysis.Linter { - analyzers := []*analysis.Analyzer{ - wastedassign.Analyzer, - } - return goanalysis.NewLinter( "wastedassign", "wastedassign finds wasted assignment statements.", - analyzers, + []*analysis.Analyzer{wastedassign.Analyzer}, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/golinters/whitespace.go b/pkg/golinters/whitespace.go index d475465a2118..1b32a7ad63ac 100644 --- a/pkg/golinters/whitespace.go +++ b/pkg/golinters/whitespace.go @@ -8,73 +8,51 @@ import ( "github.com/ultraware/whitespace" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -func NewWhitespace() *goanalysis.Linter { - const linterName = "whitespace" +const whitespaceName = "whitespace" + +//nolint:dupl +func NewWhitespace(settings *config.WhitespaceSettings) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue + var wsSettings whitespace.Settings + if settings != nil { + wsSettings = whitespace.Settings{ + MultiIf: settings.MultiIf, + MultiFunc: settings.MultiFunc, + } + } + analyzer := &analysis.Analyzer{ - Name: linterName, + Name: whitespaceName, Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, } + return goanalysis.NewLinter( - linterName, + whitespaceName, "Tool for detection of leading and trailing whitespace", []*analysis.Analyzer{analyzer}, nil, ).WithContextSetter(func(lintCtx *linter.Context) { - cfg := lintCtx.Cfg.LintersSettings.Whitespace - settings := whitespace.Settings{MultiIf: cfg.MultiIf, MultiFunc: cfg.MultiFunc} - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var issues []whitespace.Message - for _, file := range pass.Files { - issues = append(issues, whitespace.Run(file, pass.Fset, settings)...) + issues, err := runWhitespace(lintCtx, pass, wsSettings) + if err != nil { + return nil, err } if len(issues) == 0 { return nil, nil } - res := make([]goanalysis.Issue, len(issues)) - for k, i := range issues { - issue := result.Issue{ - Pos: token.Position{ - Filename: i.Pos.Filename, - Line: i.Pos.Line, - }, - LineRange: &result.Range{From: i.Pos.Line, To: i.Pos.Line}, - Text: i.Message, - FromLinter: linterName, - Replacement: &result.Replacement{}, - } - - bracketLine, err := lintCtx.LineCache.GetLine(issue.Pos.Filename, issue.Pos.Line) - if err != nil { - return nil, errors.Wrapf(err, "failed to get line %s:%d", issue.Pos.Filename, issue.Pos.Line) - } - - switch i.Type { - case whitespace.MessageTypeLeading: - issue.LineRange.To++ // cover two lines by the issue: opening bracket "{" (issue.Pos.Line) and following empty line - case whitespace.MessageTypeTrailing: - issue.LineRange.From-- // cover two lines by the issue: closing bracket "}" (issue.Pos.Line) and preceding empty line - issue.Pos.Line-- // set in sync with LineRange.From to not break fixer and other code features - case whitespace.MessageTypeAddAfter: - bracketLine += "\n" - } - issue.Replacement.NewLines = []string{bracketLine} - - res[k] = goanalysis.NewIssue(&issue, pass) - } - mu.Lock() - resIssues = append(resIssues, res...) + resIssues = append(resIssues, issues...) mu.Unlock() return nil, nil @@ -83,3 +61,48 @@ func NewWhitespace() *goanalysis.Linter { return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runWhitespace(lintCtx *linter.Context, pass *analysis.Pass, wsSettings whitespace.Settings) ([]goanalysis.Issue, error) { + var messages []whitespace.Message + for _, file := range pass.Files { + messages = append(messages, whitespace.Run(file, pass.Fset, wsSettings)...) + } + + if len(messages) == 0 { + return nil, nil + } + + issues := make([]goanalysis.Issue, len(messages)) + for k, i := range messages { + issue := result.Issue{ + Pos: token.Position{ + Filename: i.Pos.Filename, + Line: i.Pos.Line, + }, + LineRange: &result.Range{From: i.Pos.Line, To: i.Pos.Line}, + Text: i.Message, + FromLinter: whitespaceName, + Replacement: &result.Replacement{}, + } + + bracketLine, err := lintCtx.LineCache.GetLine(issue.Pos.Filename, issue.Pos.Line) + if err != nil { + return nil, errors.Wrapf(err, "failed to get line %s:%d", issue.Pos.Filename, issue.Pos.Line) + } + + switch i.Type { + case whitespace.MessageTypeLeading: + issue.LineRange.To++ // cover two lines by the issue: opening bracket "{" (issue.Pos.Line) and following empty line + case whitespace.MessageTypeTrailing: + issue.LineRange.From-- // cover two lines by the issue: closing bracket "}" (issue.Pos.Line) and preceding empty line + issue.Pos.Line-- // set in sync with LineRange.From to not break fixer and other code features + case whitespace.MessageTypeAddAfter: + bracketLine += "\n" + } + issue.Replacement.NewLines = []string{bracketLine} + + issues[k] = goanalysis.NewIssue(&issue, pass) + } + + return issues, nil +} diff --git a/pkg/golinters/wsl.go b/pkg/golinters/wsl.go index b5961cc1f2f8..0b10798eb629 100644 --- a/pkg/golinters/wsl.go +++ b/pkg/golinters/wsl.go @@ -6,78 +6,89 @@ import ( "github.com/bombsimon/wsl/v3" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/result" ) -const ( - name = "wsl" -) +const wslName = "wsl" // NewWSL returns a new WSL linter. -func NewWSL() *goanalysis.Linter { - var ( - issues []goanalysis.Issue - mu = sync.Mutex{} - analyzer = &analysis.Analyzer{ - Name: goanalysis.TheOnlyAnalyzerName, - Doc: goanalysis.TheOnlyanalyzerDoc, - } - ) +func NewWSL(settings *config.WSLSettings) *goanalysis.Linter { + var mu sync.Mutex + var resIssues []goanalysis.Issue - return goanalysis.NewLinter( - name, - "Whitespace Linter - Forces you to use empty lines!", - []*analysis.Analyzer{analyzer}, - nil, - ).WithContextSetter(func(lintCtx *linter.Context) { - analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var ( - files = make([]string, 0, len(pass.Files)) - linterCfg = lintCtx.Cfg.LintersSettings.WSL - processorCfg = wsl.Configuration{ - StrictAppend: linterCfg.StrictAppend, - AllowAssignAndCallCuddle: linterCfg.AllowAssignAndCallCuddle, - AllowAssignAndAnythingCuddle: linterCfg.AllowAssignAndAnythingCuddle, - AllowMultiLineAssignCuddle: linterCfg.AllowMultiLineAssignCuddle, - AllowCuddleDeclaration: linterCfg.AllowCuddleDeclaration, - AllowTrailingComment: linterCfg.AllowTrailingComment, - AllowSeparatedLeadingComment: linterCfg.AllowSeparatedLeadingComment, - ForceCuddleErrCheckAndAssign: linterCfg.ForceCuddleErrCheckAndAssign, - ForceCaseTrailingWhitespaceLimit: linterCfg.ForceCaseTrailingWhitespaceLimit, - ForceExclusiveShortDeclarations: linterCfg.ForceExclusiveShortDeclarations, - AllowCuddleWithCalls: []string{"Lock", "RLock"}, - AllowCuddleWithRHS: []string{"Unlock", "RUnlock"}, - ErrorVariableNames: []string{"err"}, - } - ) - - for _, file := range pass.Files { - files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) - } + conf := &wsl.Configuration{ + AllowCuddleWithCalls: []string{"Lock", "RLock"}, + AllowCuddleWithRHS: []string{"Unlock", "RUnlock"}, + ErrorVariableNames: []string{"err"}, + } + + if settings != nil { + conf.StrictAppend = settings.StrictAppend + conf.AllowAssignAndCallCuddle = settings.AllowAssignAndCallCuddle + conf.AllowAssignAndAnythingCuddle = settings.AllowAssignAndAnythingCuddle + conf.AllowMultiLineAssignCuddle = settings.AllowMultiLineAssignCuddle + conf.AllowCuddleDeclaration = settings.AllowCuddleDeclaration + conf.AllowTrailingComment = settings.AllowTrailingComment + conf.AllowSeparatedLeadingComment = settings.AllowSeparatedLeadingComment + conf.ForceCuddleErrCheckAndAssign = settings.ForceCuddleErrCheckAndAssign + conf.ForceCaseTrailingWhitespaceLimit = settings.ForceCaseTrailingWhitespaceLimit + conf.ForceExclusiveShortDeclarations = settings.ForceExclusiveShortDeclarations + } - wslErrors, _ := wsl.NewProcessorWithConfig(processorCfg). - ProcessFiles(files) + analyzer := &analysis.Analyzer{ + Name: goanalysis.TheOnlyAnalyzerName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: func(pass *analysis.Pass) (interface{}, error) { + issues := runWSL(pass, conf) - if len(wslErrors) == 0 { + if len(issues) == 0 { return nil, nil } mu.Lock() - defer mu.Unlock() - - for _, err := range wslErrors { - issues = append(issues, goanalysis.NewIssue(&result.Issue{ - FromLinter: name, - Pos: err.Position, - Text: err.Reason, - }, pass)) - } + resIssues = append(resIssues, issues...) + mu.Unlock() return nil, nil - } - }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return issues + }, + } + + return goanalysis.NewLinter( + wslName, + "Whitespace Linter - Forces you to use empty lines!", + []*analysis.Analyzer{analyzer}, + nil, + ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runWSL(pass *analysis.Pass, conf *wsl.Configuration) []goanalysis.Issue { + var files = make([]string, 0, len(pass.Files)) + for _, file := range pass.Files { + files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) + } + + if conf == nil { + return nil + } + + wslErrors, _ := wsl.NewProcessorWithConfig(*conf).ProcessFiles(files) + if len(wslErrors) == 0 { + return nil + } + + var issues []goanalysis.Issue + for _, err := range wslErrors { + issues = append(issues, goanalysis.NewIssue(&result.Issue{ + FromLinter: wslName, + Pos: err.Position, + Text: err.Reason, + }, pass)) + } + + return issues +} diff --git a/pkg/lint/linter/config.go b/pkg/lint/linter/config.go index c8e065542e2a..167ac462594c 100644 --- a/pkg/lint/linter/config.go +++ b/pkg/lint/linter/config.go @@ -66,7 +66,7 @@ func (lc *Config) WithLoadFiles() *Config { func (lc *Config) WithLoadForGoAnalysis() *Config { lc = lc.WithLoadFiles() - lc.LoadMode |= packages.NeedImports | packages.NeedDeps | packages.NeedExportsFile | packages.NeedTypesSizes + lc.LoadMode |= packages.NeedImports | packages.NeedDeps | packages.NeedExportFile | packages.NeedTypesSizes lc.IsSlow = true return lc } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 9f72e6379d4e..3eaae9debda8 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -100,51 +100,104 @@ func enableLinterConfigs(lcs []*linter.Config, isEnabled func(lc *linter.Config) //nolint:funlen func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { - var bidichkCfg *config.BiDiChkSettings - var cyclopCfg *config.Cyclop - var decorderCfg *config.DecorderSettings - var errchkjsonCfg *config.ErrChkJSONSettings - var errorlintCfg *config.ErrorLintSettings - var exhaustiveCfg *config.ExhaustiveSettings - var exhaustiveStructCfg *config.ExhaustiveStructSettings - var exhaustructCfg *config.ExhaustructSettings - var gciCfg *config.GciSettings - var goModDirectivesCfg *config.GoModDirectivesSettings - var goMndCfg *config.GoMndSettings - var gosecCfg *config.GoSecSettings - var gosimpleCfg *config.StaticCheckSettings - var govetCfg *config.GovetSettings - var grouperCfg *config.GrouperSettings - var ifshortCfg *config.IfshortSettings - var importAsCfg *config.ImportAsSettings - var ireturnCfg *config.IreturnSettings - var maintIdxCfg *config.MaintIdxSettings - var nilNilCfg *config.NilNilSettings - var nlreturnCfg *config.NlreturnSettings - var predeclaredCfg *config.PredeclaredSettings - var reviveCfg *config.ReviveSettings - var staticcheckCfg *config.StaticCheckSettings - var stylecheckCfg *config.StaticCheckSettings - var tagliatelleCfg *config.TagliatelleSettings - var tenvCfg *config.TenvSettings - var testpackageCfg *config.TestpackageSettings - var thelperCfg *config.ThelperSettings - var unusedCfg *config.StaticCheckSettings - var varnamelenCfg *config.VarnamelenSettings - var wrapcheckCfg *config.WrapcheckSettings + var ( + bidichkCfg *config.BiDiChkSettings + cyclopCfg *config.Cyclop + decorderCfg *config.DecorderSettings + depGuardCfg *config.DepGuardSettings + dogsledCfg *config.DogsledSettings + duplCfg *config.DuplSettings + errcheckCfg *config.ErrcheckSettings + errchkjsonCfg *config.ErrChkJSONSettings + errorlintCfg *config.ErrorLintSettings + exhaustiveCfg *config.ExhaustiveSettings + exhaustiveStructCfg *config.ExhaustiveStructSettings + exhaustructCfg *config.ExhaustructSettings + forbidigoCfg *config.ForbidigoSettings + funlenCfg *config.FunlenSettings + gciCfg *config.GciSettings + gocognitCfg *config.GocognitSettings + goconstCfg *config.GoConstSettings + gocriticCfg *config.GocriticSettings + gocycloCfg *config.GoCycloSettings + godotCfg *config.GodotSettings + godoxCfg *config.GodoxSettings + gofmtCfg *config.GoFmtSettings + gofumptCfg *config.GofumptSettings + goheaderCfg *config.GoHeaderSettings + goimportsCfg *config.GoImportsSettings + golintCfg *config.GoLintSettings + goMndCfg *config.GoMndSettings + goModDirectivesCfg *config.GoModDirectivesSettings + gomodguardCfg *config.GoModGuardSettings + gosecCfg *config.GoSecSettings + gosimpleCfg *config.StaticCheckSettings + govetCfg *config.GovetSettings + grouperCfg *config.GrouperSettings + ifshortCfg *config.IfshortSettings + importAsCfg *config.ImportAsSettings + ireturnCfg *config.IreturnSettings + lllCfg *config.LllSettings + maintIdxCfg *config.MaintIdxSettings + makezeroCfg *config.MakezeroSettings + malignedCfg *config.MalignedSettings + misspellCfg *config.MisspellSettings + nakedretCfg *config.NakedretSettings + nestifCfg *config.NestifSettings + nilNilCfg *config.NilNilSettings + nlreturnCfg *config.NlreturnSettings + noLintLintCfg *config.NoLintLintSettings + preallocCfg *config.PreallocSettings + predeclaredCfg *config.PredeclaredSettings + promlinterCfg *config.PromlinterSettings + reviveCfg *config.ReviveSettings + rowserrcheckCfg *config.RowsErrCheckSettings + staticcheckCfg *config.StaticCheckSettings + structcheckCfg *config.StructCheckSettings + stylecheckCfg *config.StaticCheckSettings + tagliatelleCfg *config.TagliatelleSettings + tenvCfg *config.TenvSettings + testpackageCfg *config.TestpackageSettings + thelperCfg *config.ThelperSettings + unparamCfg *config.UnparamSettings + unusedCfg *config.StaticCheckSettings + varcheckCfg *config.VarCheckSettings + varnamelenCfg *config.VarnamelenSettings + whitespaceCfg *config.WhitespaceSettings + wrapcheckCfg *config.WrapcheckSettings + wslCfg *config.WSLSettings + ) if m.cfg != nil { bidichkCfg = &m.cfg.LintersSettings.BiDiChk cyclopCfg = &m.cfg.LintersSettings.Cyclop - errchkjsonCfg = &m.cfg.LintersSettings.ErrChkJSON decorderCfg = &m.cfg.LintersSettings.Decorder + depGuardCfg = &m.cfg.LintersSettings.Depguard + dogsledCfg = &m.cfg.LintersSettings.Dogsled + duplCfg = &m.cfg.LintersSettings.Dupl + errcheckCfg = &m.cfg.LintersSettings.Errcheck + errchkjsonCfg = &m.cfg.LintersSettings.ErrChkJSON errorlintCfg = &m.cfg.LintersSettings.ErrorLint exhaustiveCfg = &m.cfg.LintersSettings.Exhaustive exhaustiveStructCfg = &m.cfg.LintersSettings.ExhaustiveStruct exhaustructCfg = &m.cfg.LintersSettings.Exhaustruct + forbidigoCfg = &m.cfg.LintersSettings.Forbidigo + funlenCfg = &m.cfg.LintersSettings.Funlen gciCfg = &m.cfg.LintersSettings.Gci - goModDirectivesCfg = &m.cfg.LintersSettings.GoModDirectives + gocognitCfg = &m.cfg.LintersSettings.Gocognit + goconstCfg = &m.cfg.LintersSettings.Goconst + gocriticCfg = &m.cfg.LintersSettings.Gocritic + gocycloCfg = &m.cfg.LintersSettings.Gocyclo + godotCfg = &m.cfg.LintersSettings.Godot + godoxCfg = &m.cfg.LintersSettings.Godox + gofmtCfg = &m.cfg.LintersSettings.Gofmt + gofumptCfg = &m.cfg.LintersSettings.Gofumpt + goheaderCfg = &m.cfg.LintersSettings.Goheader + goimportsCfg = &m.cfg.LintersSettings.Goimports + golintCfg = &m.cfg.LintersSettings.Golint goMndCfg = &m.cfg.LintersSettings.Gomnd + goModDirectivesCfg = &m.cfg.LintersSettings.GoModDirectives + gomodguardCfg = &m.cfg.LintersSettings.Gomodguard gosecCfg = &m.cfg.LintersSettings.Gosec gosimpleCfg = &m.cfg.LintersSettings.Gosimple govetCfg = &m.cfg.LintersSettings.Govet @@ -152,20 +205,35 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { ifshortCfg = &m.cfg.LintersSettings.Ifshort importAsCfg = &m.cfg.LintersSettings.ImportAs ireturnCfg = &m.cfg.LintersSettings.Ireturn + lllCfg = &m.cfg.LintersSettings.Lll maintIdxCfg = &m.cfg.LintersSettings.MaintIdx + makezeroCfg = &m.cfg.LintersSettings.Makezero + malignedCfg = &m.cfg.LintersSettings.Maligned + misspellCfg = &m.cfg.LintersSettings.Misspell + nakedretCfg = &m.cfg.LintersSettings.Nakedret + nestifCfg = &m.cfg.LintersSettings.Nestif nilNilCfg = &m.cfg.LintersSettings.NilNil nlreturnCfg = &m.cfg.LintersSettings.Nlreturn + noLintLintCfg = &m.cfg.LintersSettings.NoLintLint + preallocCfg = &m.cfg.LintersSettings.Prealloc predeclaredCfg = &m.cfg.LintersSettings.Predeclared + promlinterCfg = &m.cfg.LintersSettings.Promlinter reviveCfg = &m.cfg.LintersSettings.Revive + rowserrcheckCfg = &m.cfg.LintersSettings.RowsErrCheck staticcheckCfg = &m.cfg.LintersSettings.Staticcheck + structcheckCfg = &m.cfg.LintersSettings.Structcheck stylecheckCfg = &m.cfg.LintersSettings.Stylecheck tagliatelleCfg = &m.cfg.LintersSettings.Tagliatelle tenvCfg = &m.cfg.LintersSettings.Tenv testpackageCfg = &m.cfg.LintersSettings.Testpackage thelperCfg = &m.cfg.LintersSettings.Thelper + unparamCfg = &m.cfg.LintersSettings.Unparam unusedCfg = &m.cfg.LintersSettings.Unused + varcheckCfg = &m.cfg.LintersSettings.Varcheck varnamelenCfg = &m.cfg.LintersSettings.Varnamelen + whitespaceCfg = &m.cfg.LintersSettings.Whitespace wrapcheckCfg = &m.cfg.LintersSettings.Wrapcheck + wslCfg = &m.cfg.LintersSettings.WSL if govetCfg != nil { govetCfg.Go = m.cfg.Run.Go @@ -223,17 +291,17 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetUnused). WithURL("https://github.com/remyoudompheng/go-misc/tree/master/deadcode"), - linter.NewConfig(golinters.NewDepguard()). + linter.NewConfig(golinters.NewDepguard(depGuardCfg)). WithSince("v1.4.0"). WithPresets(linter.PresetStyle, linter.PresetImport, linter.PresetModule). WithURL("https://github.com/OpenPeeDeeP/depguard"), - linter.NewConfig(golinters.NewDogsled()). + linter.NewConfig(golinters.NewDogsled(dogsledCfg)). WithSince("v1.19.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/alexkohler/dogsled"), - linter.NewConfig(golinters.NewDupl()). + linter.NewConfig(golinters.NewDupl(duplCfg)). WithSince("v1.0.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/mibk/dupl"), @@ -244,7 +312,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/charithe/durationcheck"), - linter.NewConfig(golinters.NewErrcheck()). + linter.NewConfig(golinters.NewErrcheck(errcheckCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs, linter.PresetError). @@ -299,7 +367,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/kyoh86/exportloopref"), - linter.NewConfig(golinters.NewForbidigo()). + linter.NewConfig(golinters.NewForbidigo(forbidigoCfg)). WithSince("v1.34.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/ashanbrown/forbidigo"), @@ -309,7 +377,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/gostaticanalysis/forcetypeassert"), - linter.NewConfig(golinters.NewFunlen()). + linter.NewConfig(golinters.NewFunlen(funlenCfg)). WithSince("v1.18.0"). WithPresets(linter.PresetComplexity). WithURL("https://github.com/ultraware/funlen"), @@ -329,34 +397,34 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/leighmcculloch/gochecknoinits"), - linter.NewConfig(golinters.NewGocognit()). + linter.NewConfig(golinters.NewGocognit(gocognitCfg)). WithSince("v1.20.0"). WithPresets(linter.PresetComplexity). WithURL("https://github.com/uudashr/gocognit"), - linter.NewConfig(golinters.NewGoconst()). + linter.NewConfig(golinters.NewGoconst(goconstCfg)). WithSince("v1.0.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/jgautheron/goconst"), - linter.NewConfig(golinters.NewGocritic()). + linter.NewConfig(golinters.NewGocritic(gocriticCfg, m.cfg)). WithSince("v1.12.0"). WithPresets(linter.PresetStyle, linter.PresetMetaLinter). WithLoadForGoAnalysis(). WithURL("https://github.com/go-critic/go-critic"), - linter.NewConfig(golinters.NewGocyclo()). + linter.NewConfig(golinters.NewGocyclo(gocycloCfg)). WithSince("v1.0.0"). WithPresets(linter.PresetComplexity). WithURL("https://github.com/fzipp/gocyclo"), - linter.NewConfig(golinters.NewGodot()). + linter.NewConfig(golinters.NewGodot(godotCfg)). WithSince("v1.25.0"). WithPresets(linter.PresetStyle, linter.PresetComment). WithAutoFix(). WithURL("https://github.com/tetafro/godot"), - linter.NewConfig(golinters.NewGodox()). + linter.NewConfig(golinters.NewGodox(godoxCfg)). WithSince("v1.19.0"). WithPresets(linter.PresetStyle, linter.PresetComment). WithURL("https://github.com/matoous/godox"), @@ -367,30 +435,30 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/Djarvur/go-err113"), - linter.NewConfig(golinters.NewGofmt()). + linter.NewConfig(golinters.NewGofmt(gofmtCfg)). WithSince("v1.0.0"). WithPresets(linter.PresetFormatting). WithAutoFix(). WithURL("https://golang.org/cmd/gofmt/"), - linter.NewConfig(golinters.NewGofumpt()). + linter.NewConfig(golinters.NewGofumpt(gofumptCfg)). WithSince("v1.28.0"). WithPresets(linter.PresetFormatting). WithAutoFix(). WithURL("https://github.com/mvdan/gofumpt"), - linter.NewConfig(golinters.NewGoHeader()). + linter.NewConfig(golinters.NewGoHeader(goheaderCfg)). WithSince("v1.28.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/denis-tingaikin/go-header"), - linter.NewConfig(golinters.NewGoimports()). + linter.NewConfig(golinters.NewGoimports(goimportsCfg)). WithSince("v1.20.0"). WithPresets(linter.PresetFormatting, linter.PresetImport). WithAutoFix(). WithURL("https://godoc.org/golang.org/x/tools/cmd/goimports"), - linter.NewConfig(golinters.NewGolint()). + linter.NewConfig(golinters.NewGolint(golintCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). @@ -407,7 +475,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle, linter.PresetModule). WithURL("https://github.com/ldez/gomoddirectives"), - linter.NewConfig(golinters.NewGomodguard()). + linter.NewConfig(golinters.NewGomodguard(gomodguardCfg)). WithSince("v1.25.0"). WithPresets(linter.PresetStyle, linter.PresetImport, linter.PresetModule). WithURL("https://github.com/ryancurrah/gomodguard"), @@ -473,7 +541,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/butuzov/ireturn"), - linter.NewConfig(golinters.NewLLL()). + linter.NewConfig(golinters.NewLLL(lllCfg)). WithSince("v1.8.0"). WithPresets(linter.PresetStyle), @@ -482,31 +550,31 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetComplexity). WithURL("https://github.com/yagipy/maintidx"), - linter.NewConfig(golinters.NewMakezero()). + linter.NewConfig(golinters.NewMakezero(makezeroCfg)). WithSince("v1.34.0"). WithPresets(linter.PresetStyle, linter.PresetBugs). WithLoadForGoAnalysis(). WithURL("https://github.com/ashanbrown/makezero"), - linter.NewConfig(golinters.NewMaligned()). + linter.NewConfig(golinters.NewMaligned(malignedCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance). WithURL("https://github.com/mdempsky/maligned"). Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", "govet 'fieldalignment'"), - linter.NewConfig(golinters.NewMisspell()). + linter.NewConfig(golinters.NewMisspell(misspellCfg)). WithSince("v1.8.0"). WithPresets(linter.PresetStyle, linter.PresetComment). WithAutoFix(). WithURL("https://github.com/client9/misspell"), - linter.NewConfig(golinters.NewNakedret()). + linter.NewConfig(golinters.NewNakedret(nakedretCfg)). WithSince("v1.19.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/alexkohler/nakedret"), - linter.NewConfig(golinters.NewNestif()). + linter.NewConfig(golinters.NewNestif(nestifCfg)). WithSince("v1.25.0"). WithPresets(linter.PresetComplexity). WithURL("https://github.com/nakabonne/nestif"), @@ -551,7 +619,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle, linter.PresetTest). WithURL("https://github.com/kunwardeep/paralleltest"), - linter.NewConfig(golinters.NewPrealloc()). + linter.NewConfig(golinters.NewPreAlloc(preallocCfg)). WithSince("v1.19.0"). WithPresets(linter.PresetPerformance). WithURL("https://github.com/alexkohler/prealloc"), @@ -561,7 +629,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/nishanths/predeclared"), - linter.NewConfig(golinters.NewPromlinter()). + linter.NewConfig(golinters.NewPromlinter(promlinterCfg)). WithSince("v1.40.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/yeya24/promlinter"), @@ -572,7 +640,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { ConsiderSlow(). WithURL("https://github.com/mgechev/revive"), - linter.NewConfig(golinters.NewRowsErrCheck()). + linter.NewConfig(golinters.NewRowsErrCheck(rowserrcheckCfg)). WithSince("v1.23.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs, linter.PresetSQL). @@ -599,7 +667,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithAlternativeNames(megacheckName). WithURL("https://staticcheck.io/"), - linter.NewConfig(golinters.NewStructcheck()). + linter.NewConfig(golinters.NewStructcheck(structcheckCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). @@ -653,7 +721,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/mdempsky/unconvert"), - linter.NewConfig(golinters.NewUnparam()). + linter.NewConfig(golinters.NewUnparam(unparamCfg)). WithSince("v1.9.0"). WithPresets(linter.PresetUnused). WithLoadForGoAnalysis(). @@ -669,7 +737,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithChangeTypes(). WithURL("https://github.com/dominikh/go-tools/tree/master/unused"), - linter.NewConfig(golinters.NewVarcheck()). + linter.NewConfig(golinters.NewVarcheck(varcheckCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). @@ -688,7 +756,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithURL("https://github.com/sanposhiho/wastedassign"). WithNoopFallback(m.cfg), - linter.NewConfig(golinters.NewWhitespace()). + linter.NewConfig(golinters.NewWhitespace(whitespaceCfg)). WithSince("v1.19.0"). WithPresets(linter.PresetStyle). WithAutoFix(). @@ -700,13 +768,13 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithURL("https://github.com/tomarrell/wrapcheck"), - linter.NewConfig(golinters.NewWSL()). + linter.NewConfig(golinters.NewWSL(wslCfg)). WithSince("v1.20.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/bombsimon/wsl"), // nolintlint must be last because it looks at the results of all the previous linters for unused nolint directives - linter.NewConfig(golinters.NewNoLintLint()). + linter.NewConfig(golinters.NewNoLintLint(noLintLintCfg)). WithSince("v1.26.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/golangci/golangci-lint/blob/master/pkg/golinters/nolintlint/README.md"), @@ -714,12 +782,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { enabledByDefault := map[string]bool{ golinters.NewGovet(nil).Name(): true, - golinters.NewErrcheck().Name(): true, + golinters.NewErrcheck(errcheckCfg).Name(): true, golinters.NewStaticcheck(staticcheckCfg).Name(): true, golinters.NewUnused(unusedCfg).Name(): true, golinters.NewGosimple(gosimpleCfg).Name(): true, - golinters.NewStructcheck().Name(): true, - golinters.NewVarcheck().Name(): true, + golinters.NewStructcheck(structcheckCfg).Name(): true, + golinters.NewVarcheck(varcheckCfg).Name(): true, golinters.NewIneffassign().Name(): true, golinters.NewDeadcode().Name(): true, golinters.NewTypecheck().Name(): true, diff --git a/pkg/lint/load.go b/pkg/lint/load.go index a393a1d081eb..8935134e1fda 100644 --- a/pkg/lint/load.go +++ b/pkg/lint/load.go @@ -126,7 +126,7 @@ func stringifyLoadMode(mode packages.LoadMode) string { m := map[packages.LoadMode]string{ packages.NeedCompiledGoFiles: "compiled_files", packages.NeedDeps: "deps", - packages.NeedExportsFile: "exports_file", + packages.NeedExportFile: "exports_file", packages.NeedFiles: "files", packages.NeedImports: "imports", packages.NeedName: "name", @@ -192,7 +192,7 @@ func (cl *ContextLoader) loadPackages(ctx context.Context, loadMode packages.Loa Context: ctx, BuildFlags: buildFlags, Logf: cl.debugf, - //TODO: use fset, parsefile, overlay + // TODO: use fset, parsefile, overlay } args := cl.buildArgs() diff --git a/pkg/result/processors/nolint.go b/pkg/result/processors/nolint.go index 12ae0fc2d546..01f597e94d5b 100644 --- a/pkg/result/processors/nolint.go +++ b/pkg/result/processors/nolint.go @@ -33,7 +33,7 @@ func (i *ignoredRange) doesMatch(issue *result.Issue) bool { } // only allow selective nolinting of nolintlint - nolintFoundForLinter := len(i.linters) == 0 && issue.FromLinter != golinters.NolintlintName + nolintFoundForLinter := len(i.linters) == 0 && issue.FromLinter != golinters.NoLintLintName for _, linterName := range i.linters { if linterName == issue.FromLinter { @@ -48,7 +48,7 @@ func (i *ignoredRange) doesMatch(issue *result.Issue) bool { // handle possible unused nolint directives // nolintlint generates potential issues for every nolint directive, and they are filtered out here - if issue.FromLinter == golinters.NolintlintName && issue.ExpectNoLint { + if issue.FromLinter == golinters.NoLintLintName && issue.ExpectNoLint { if issue.ExpectedNoLintLinter != "" { return i.matchedIssueFromLinter[issue.ExpectedNoLintLinter] } @@ -148,7 +148,7 @@ func (p *Nolint) buildIgnoredRangesForFile(f *ast.File, fset *token.FileSet, fil func (p *Nolint) shouldPassIssue(i *result.Issue) (bool, error) { nolintDebugf("got issue: %v", *i) - if i.FromLinter == golinters.NolintlintName && i.ExpectNoLint && i.ExpectedNoLintLinter != "" { + if i.FromLinter == golinters.NoLintLintName && i.ExpectNoLint && i.ExpectedNoLintLinter != "" { // don't expect disabled linters to cover their nolint statements nolintDebugf("enabled linters: %v", p.enabledLinters) if p.enabledLinters[i.ExpectedNoLintLinter] == nil { @@ -302,7 +302,7 @@ func (issues sortWithNolintlintLast) Len() int { } func (issues sortWithNolintlintLast) Less(i, j int) bool { - return issues[i].FromLinter != golinters.NolintlintName && issues[j].FromLinter == golinters.NolintlintName + return issues[i].FromLinter != golinters.NoLintLintName && issues[j].FromLinter == golinters.NoLintLintName } func (issues sortWithNolintlintLast) Swap(i, j int) { diff --git a/pkg/result/processors/nolint_test.go b/pkg/result/processors/nolint_test.go index c54909f2643c..97ab34e51379 100644 --- a/pkg/result/processors/nolint_test.go +++ b/pkg/result/processors/nolint_test.go @@ -286,7 +286,7 @@ func TestNolintUnused(t *testing.T) { Filename: fileName, Line: 3, }, - FromLinter: golinters.NolintlintName, + FromLinter: golinters.NoLintLintName, ExpectNoLint: true, ExpectedNoLintLinter: "varcheck", } @@ -297,7 +297,7 @@ func TestNolintUnused(t *testing.T) { Filename: fileName, Line: 5, }, - FromLinter: golinters.NolintlintName, + FromLinter: golinters.NoLintLintName, ExpectNoLint: true, ExpectedNoLintLinter: "varcheck", } diff --git a/test/testdata/prealloc.go b/test/testdata/prealloc.go index 85f43eb6e297..17900b773e41 100644 --- a/test/testdata/prealloc.go +++ b/test/testdata/prealloc.go @@ -1,8 +1,8 @@ -//args: -Eprealloc +// args: -Eprealloc package testdata func Prealloc(source []int) []int { - var dest []int // ERROR "Consider preallocating `dest`" + var dest []int // ERROR "Consider pre-allocating `dest`" for _, v := range source { dest = append(dest, v) } From ddee31ae118a6a9d2716921bac396563dc47cfcc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 May 2022 13:05:08 +0200 Subject: [PATCH 009/162] build(deps): bump honnef.co/go/tools from 0.3.1 to 0.3.2 (#2870) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a7ce24b087ae..9a5290417e7c 100644 --- a/go.mod +++ b/go.mod @@ -101,7 +101,7 @@ require ( gitlab.com/bosi/decorder v0.2.1 golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b - honnef.co/go/tools v0.3.1 + honnef.co/go/tools v0.3.2 mvdan.cc/gofumpt v0.3.1 mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5 diff --git a/go.sum b/go.sum index cfb9e0d9e8b7..5714ac1dc46b 100644 --- a/go.sum +++ b/go.sum @@ -1435,8 +1435,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -honnef.co/go/tools v0.3.1 h1:1kJlrWJLkaGXgcaeosRXViwviqjI7nkBvU2+sZW0AYc= -honnef.co/go/tools v0.3.1/go.mod h1:vlRD9XErLMGT+mDuofSr0mMMquscM/1nQqtRSsh6m70= +honnef.co/go/tools v0.3.2 h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34= +honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= mvdan.cc/gofumpt v0.3.1 h1:avhhrOmv0IuvQVK7fvwV91oFSGAk5/6Po8GXTzICeu8= mvdan.cc/gofumpt v0.3.1/go.mod h1:w3ymliuxvzVx8DAutBnVyDqYb1Niy/yCJt/lk821YCE= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= From d92f144dffd4007253b4bbce4483da6178dd39db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 17:40:05 +0200 Subject: [PATCH 010/162] build(deps): bump goreleaser/goreleaser-action from 2 to 3 (#2876) --- .github/workflows/tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index c0532aaf8664..2575bf925ae4 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -20,7 +20,7 @@ jobs: run: git fetch --prune --unshallow - name: Create release - uses: goreleaser/goreleaser-action@v2 + uses: goreleaser/goreleaser-action@v3 with: version: latest args: release --rm-dist From f2634d40fa2d2e0d9a5a873ed2a65c0d50b01a04 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 29 May 2022 14:27:59 +0200 Subject: [PATCH 011/162] fix: codeQL scanning (#2882) --- .nancy-ignore | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.nancy-ignore b/.nancy-ignore index 08b33ca2192f..b0046f8dea36 100644 --- a/.nancy-ignore +++ b/.nancy-ignore @@ -8,3 +8,12 @@ CVE-2021-3121 # Skip for indirect dependency github.com/dgrijalva/jwt-go@3.2.0 CVE-2020-26160 + +# Skip for indirect dependencies: +# golang/github.com/hashicorp/consul/api@v1.12.0 +# golang/github.com/hashicorp/consul/sdk@v0.8.0 +CVE-2022-29153 +CVE-2022-24687 + +# Skip for indirect dependencies golang/github.com/valyala/fasthttp@v1.30.0 +CVE-2022-21221 From 2a1edcef058ceb735d1cf5dae7b36b23bdc151bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 May 2022 14:39:26 +0200 Subject: [PATCH 012/162] build(deps): bump github.com/Antonboom/errname from 0.1.6 to 0.1.7 (#2888) --- go.mod | 4 ++-- go.sum | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9a5290417e7c..a94e12c9e80a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( 4d63.com/gochecknoglobals v0.1.0 - github.com/Antonboom/errname v0.1.6 + github.com/Antonboom/errname v0.1.7 github.com/Antonboom/nilnil v0.1.1 github.com/BurntSushi/toml v1.1.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 @@ -167,7 +167,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 // indirect + golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.4 // indirect diff --git a/go.sum b/go.sum index 5714ac1dc46b..65afb3d79bd7 100644 --- a/go.sum +++ b/go.sum @@ -59,8 +59,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Antonboom/errname v0.1.6 h1:LzIJZlyLOCSu51o3/t2n9Ck7PcoP9wdbrdaW6J8fX24= -github.com/Antonboom/errname v0.1.6/go.mod h1:7lz79JAnuoMNDAWE9MeeIr1/c/VpSUWatBv2FH9NYpI= +github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= +github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -1102,8 +1102,9 @@ golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/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= @@ -1225,8 +1226,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f h1:GGU+dLjvlC3qDwqYgL6UgRmHXhOOgns0bZu2Ty5mm6U= golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= 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= From 153b4072adb104cc688fd87a9e6f5fa720dd8a46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 May 2022 14:57:35 +0200 Subject: [PATCH 013/162] build(deps): bump github.com/spf13/viper from 1.11.0 to 1.12.0 (#2889) Co-authored-by: Fernandez Ludovic --- go.mod | 12 ++++++------ go.sum | 23 ++++++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index a94e12c9e80a..a04278bd388e 100644 --- a/go.mod +++ b/go.mod @@ -82,7 +82,7 @@ require ( github.com/sourcegraph/go-diff v0.6.1 github.com/spf13/cobra v1.4.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.11.0 + github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 github.com/stretchr/testify v1.7.1 @@ -100,7 +100,7 @@ require ( github.com/yeya24/promlinter v0.2.0 gitlab.com/bosi/decorder v0.2.1 golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b + gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 mvdan.cc/gofumpt v0.3.1 mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed @@ -126,7 +126,7 @@ require ( github.com/go-toolsmith/typep v1.0.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/google/go-cmp v0.5.7 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect @@ -143,7 +143,7 @@ require ( github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.0.1 // indirect github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect @@ -156,10 +156,10 @@ require ( github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect github.com/spf13/afero v1.8.2 // indirect - github.com/spf13/cast v1.4.1 // indirect + github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/stretchr/objx v0.1.1 // indirect - github.com/subosito/gotenv v1.2.0 // indirect + github.com/subosito/gotenv v1.3.0 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect github.com/tklauser/numcpus v0.4.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect diff --git a/go.sum b/go.sum index 65afb3d79bd7..f7b7f03ec772 100644 --- a/go.sum +++ b/go.sum @@ -196,7 +196,7 @@ github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/firefart/nonamedreturns v1.0.1 h1:fSvcq6ZpK/uBAgJEGMvzErlzyM4NELLqqdTofVjVNag= github.com/firefart/nonamedreturns v1.0.1/go.mod h1:D3dpIBojGGNh5UfElmwPu73SwDCm+VKhHYqwlNOk2uQ= -github.com/frankban/quicktest v1.14.2 h1:SPb1KFFmM+ybpEjPUhCCkZOM5xlovT5UbrMvWnXyBns= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= @@ -322,8 +322,9 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ 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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 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= @@ -622,8 +623,9 @@ github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.0 h1:P7Bq0SaI8nsexyay5UAyDo+ICWy5MQPgEZ5+l8JQTKo= github.com/pelletier/go-toml/v2 v2.0.0/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= @@ -732,8 +734,9 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +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 v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= @@ -746,8 +749,9 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn 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.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.11.0 h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44= github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk= +github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= +github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= @@ -765,8 +769,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI= +github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= @@ -975,8 +980,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-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5 h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4= golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= 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= @@ -1227,7 +1232,6 @@ 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= golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618= 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= @@ -1427,8 +1431,9 @@ 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 h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= 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= 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= From d43e480ab52d85abf42fddd589fc541ab3abcec4 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Sun, 29 May 2022 15:58:21 +0300 Subject: [PATCH 014/162] docs(linters): add defaults (#2891) --- .golangci.reference.yml | 61 +++++++++++++++++++++++++++++++++++------ 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 131458efa9f9..cda9499b3c61 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -122,6 +122,7 @@ linters-settings: cyclop: # The maximal code complexity to report. + # Default: 10 max-complexity: 10 # The maximal average package complexity. # If it's higher than 0.0 (float) the check is enabled @@ -284,6 +285,7 @@ linters-settings: # The struct packages have the form `example.com/package.ExampleStruct`. # The matching patterns can use matching syntax from https://pkg.go.dev/path#Match. # If this list is empty, all structs are tested. + # Default: [] struct-patterns: - '*.Test' - 'example.com/package.ExampleStruct' @@ -291,19 +293,22 @@ linters-settings: exhaustruct: # List of regular expressions to match struct packages and names. # If this list is empty, all structs are tested. + # Default: [] include: - '.*\.Test' - 'example\.com/package\.ExampleStruct[\d]{1,2}' # List of regular expressions to exclude struct packages and names from check. + # Default: [] exclude: - 'cobra\.Command$' forbidigo: # Forbid the following identifiers (list of regexp). + # Default: ["^(fmt\\.Print(|f|ln)|print|println)$"] forbid: - ^print.*$ - 'fmt\.Print.*' - # Optionally put comments at the end of the regex, surrounded by `(# )?` + # Optionally put comments at the end of the regex, surrounded by `(# )?` # Escape any special characters. - 'fmt\.Print.*(# Do not commit print statements\.)?' # Exclude godoc examples from forbidigo checks. @@ -487,6 +492,7 @@ linters-settings: skipRecvDeref: false unnamedResult: # Whether to check exported functions. + # Default: false checkExported: true gocyclo: @@ -499,6 +505,7 @@ linters-settings: # Default: declarations scope: toplevel # List of regexps for excluding particular comment lines from check. + # Default: [] exclude: # Exclude todo and fixme comments. - "^fixme:" @@ -513,7 +520,7 @@ linters-settings: godox: # Report any comments starting with keywords, this is useful for TODO or FIXME comments that # might be left in the code accidentally and should be resolved before merging. - # Default: TODO, BUG, and FIXME. + # Default: ["TODO", "BUG", "FIXME"] keywords: - NOTE - OPTIMIZE # marks code that should be optimized before merging @@ -526,11 +533,11 @@ linters-settings: gofumpt: # Select the Go version to target. - # Default: 1.15 + # Default: "1.15" lang-version: "1.17" # Module path which contains the source code being formatted. - # Default: empty string + # Default: "" module-path: github.com/org/project # Choose whether to use the extra rules. @@ -540,6 +547,7 @@ linters-settings: goheader: # Supports two types 'const` and `regexp`. # Values can be used recursively. + # Default: {} values: const: # Define here const type values in format k:v. @@ -550,6 +558,7 @@ linters-settings: # for example: AUTHOR: .*@mycompany\.com # The template use for checking. + # Default: "" template: |- # Put here copyright header template for source code files # For example: @@ -571,11 +580,13 @@ linters-settings: # limitations under the License. # As alternative of directive 'template', you may put the path to file with the template source. # Useful if you need to load the template from a specific file. + # Default: "" template-path: /path/to/my/template.tmpl goimports: # Put imports beginning with prefix after 3rd-party packages. # It's a comma-separated list of prefixes. + # Default: "" local-prefixes: github.com/org/project golint: @@ -585,6 +596,7 @@ linters-settings: gomnd: # List of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. + # Default: ["argument", "case", "condition", "operation", "return", "assign"] checks: - argument - case @@ -595,22 +607,26 @@ linters-settings: # List of numbers to exclude from analysis. # The numbers should be written as string. # Values always ignored: "1", "1.0", "0" and "0.0" + # Default: [] ignored-numbers: - '0666' - '0755' - '42' # List of file patterns to exclude from analysis. # Values always ignored: `.+_test.go` + # Default: [] ignored-files: - 'magic1_.*.go' # List of function patterns to exclude from analysis. # Values always ignored: `time.Time` + # Default: [] ignored-functions: - 'math.*' - 'http.StatusText' gomoddirectives: # Allow local `replace` directives. + # Default: false replace-local: false # List of allowed `replace` directives. # Default: [] @@ -626,13 +642,16 @@ linters-settings: gomodguard: allowed: # List of allowed modules. + # Default: [] modules: - gopkg.in/yaml.v2 # List of allowed module domains. + # Default: [] domains: - golang.org blocked: # List of blocked modules. + # Default: [] modules: # Blocked module. - github.com/uudashr/go-module: @@ -642,6 +661,7 @@ linters-settings: # Reason why the recommended module should be used. (Optional) reason: "`mod` is the official go.mod parser library." # List of blocked module version constraints. + # Default: [] versions: # Blocked module with version constraint. - github.com/mitchellh/go-homedir: @@ -650,6 +670,7 @@ linters-settings: # Reason why the version constraint exists. (Optional) reason: "testing if blocked version constraint works." # Set to true to raise lint issues for packages that are loaded from a local path via replace directive. + # Default: false local_replace_directives: false gosimple: @@ -657,6 +678,7 @@ linters-settings: # Default: 1.13 go: "1.15" # https://staticcheck.io/docs/options#checks + # Default: ["*"] checks: [ "all" ] gosec: @@ -909,6 +931,7 @@ linters-settings: # Default: false no-extra-aliases: true # List of aliases + # Default: [] alias: # Using `servingv1` alias for `knative.dev/serving/pkg/apis/serving/v1` package. - pkg: knative.dev/serving/pkg/apis/serving/v1 @@ -975,6 +998,7 @@ linters-settings: # Setting locale to US will correct the British spelling of 'colour' to 'color'. # Default is to use a neutral variety of English. locale: US + # Default: [] ignore-words: - someword @@ -990,7 +1014,7 @@ linters-settings: nilnil: # Checks that there is no simultaneous return of `nil` error and an invalid value. - # Default: ptr, func, iface, map, chan + # Default: ["ptr", "func", "iface", "map", "chan"] checked-types: - ptr - func @@ -1049,6 +1073,7 @@ linters-settings: # Default: false strict: true # Please refer to https://github.com/yeya24/promlinter#usage for detailed usage. + # Default: [] disabled-linters: - Help - MetricUnits @@ -1398,14 +1423,17 @@ linters-settings: disabled: false rowserrcheck: + # database/sql is always checked + # Default: [] packages: - github.com/jmoiron/sqlx staticcheck: # Select the Go version to target. - # Default: 1.13 + # Default: "1.13" go: "1.15" # https://staticcheck.io/docs/options#checks + # Default: ["*"] checks: [ "all" ] stylecheck: @@ -1413,13 +1441,17 @@ linters-settings: # Default: 1.13 go: "1.15" # https://staticcheck.io/docs/options#checks + # Default: ["*"] checks: [ "all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022" ] # https://staticcheck.io/docs/options#dot_import_whitelist + # Default: ["github.com/mmcloughlin/avo/build", "github.com/mmcloughlin/avo/operand", "github.com/mmcloughlin/avo/reg"] dot-import-whitelist: - fmt # https://staticcheck.io/docs/options#initialisms - initialisms: [ "ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS" ] + # Default: ["ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS"] + initialisms: [ "ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS" ] # https://staticcheck.io/docs/options#http_status_code_whitelist + # Default: ["200", "400", "404", "500"] http-status-code-whitelist: [ "200", "400", "404", "500" ] tagliatelle: @@ -1428,6 +1460,8 @@ linters-settings: # Use the struct field name to check the name of the struct tag. # Default: false use-field-name: true + # `camel` is used for `json` and `yaml` (can be overridden) + # Default: {} rules: # Any struct tag type can be used. # Support string case: `camel`, `pascal`, `kebab`, `snake`, `goCamel`, `goPascal`, `goKebab`, `goSnake`, `upper`, `lower` @@ -1440,11 +1474,13 @@ linters-settings: tenv: # The option `all` will run against whole test files (`_test.go`) regardless of method/function signatures. - # By default, only methods that take `*testing.T`, `*testing.B`, and `testing.TB` as arguments are checked. + # Otherwise, only methods that take `*testing.T`, `*testing.B`, and `testing.TB` as arguments are checked. + # Default: false all: false testpackage: - # regexp pattern to skip files + # Regexp pattern to skip files. + # Default: "(export|internal)_test\\.go" skip-regexp: (export|internal)_test\.go thelper: @@ -1539,6 +1575,7 @@ linters-settings: # An array of strings that specify substrings of signatures to ignore. # If this set, it will override the default set of ignored signatures. # See https://github.com/tomarrell/wrapcheck#configuration for more information. + # Default: [".Errorf(", "errors.New(", "errors.Unwrap(", ".Wrap(", ".Wrapf(", ".WithMessage(", ".WithMessagef(", ".WithStack("] ignoreSigs: - .Errorf( - errors.New( @@ -1548,11 +1585,17 @@ linters-settings: - .WithMessage( - .WithMessagef( - .WithStack( + # An array of strings that specify regular expressions of signatures to ignore. + # Default: [] ignoreSigRegexps: - \.New.*Error\( + # An array of strings that specify globs of packages to ignore. + # Default: [] ignorePackageGlobs: - encoding/* - github.com/pkg/* + # An array of strings that specify regular expressions of interfaces to ignore. + # Default: [] ignoreInterfaceRegexps: - ^(?i)c(?-i)ach(ing|e) From dfb01c8aaf91b28f86aeac971cfe866c784f1ad8 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 30 May 2022 10:30:24 +0300 Subject: [PATCH 015/162] docs(govet): add settings for `shadow` and `unusedresult` (#2890) docs(govet): add missing settings for `shadow` and `unusedresult` --- .golangci.reference.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index cda9499b3c61..077d39ea3b13 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -792,18 +792,36 @@ linters-settings: settings: # Analyzer name, run `go tool vet help` to see all analyzers. printf: - # Run `go tool vet help printf` to see available settings for `printf` analyzer. + # Comma-separated list of print function names to check (in addition to default, see `go tool vet help printf`). + # Default: [] funcs: - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf + shadow: + # Whether to be strict about shadowing; can be noisy. + # Default: false + strict: true + unusedresult: + # Comma-separated list of functions whose results must be used + # (in addition to defaults context.WithCancel,context.WithDeadline,context.WithTimeout,context.WithValue, + # errors.New,fmt.Errorf,fmt.Sprint,fmt.Sprintf,sort.Reverse) + # Default [] + funcs: + - pkg.MyFunc + # Comma-separated list of names of methods of type func() string whose results must be used + # (in addition to default Error,String) + # Default [] + stringmethods: + - MyMethod # Disable all analyzers. # Default: false disable-all: true - # Enable analyzers by name. + # Enable analyzers by name (in addition to default). # Run `go tool vet help` to see all analyzers. + # Default: [] enable: - asmdecl - assign @@ -847,6 +865,7 @@ linters-settings: enable-all: true # Disable analyzers by name. # Run `go tool vet help` to see all analyzers. + # Default: [] disable: - asmdecl - assign From d704754acfe94fd4f46056c0c6e24f48a41c3ae4 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 30 May 2022 10:31:04 +0300 Subject: [PATCH 016/162] docs(thelper): add `fuzz` config and description (#2887) docs(thelper): add missing `fuzz` config and description --- .golangci.reference.yml | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 077d39ea3b13..1cc041bbb483 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1503,19 +1503,45 @@ linters-settings: skip-regexp: (export|internal)_test\.go thelper: - # The following configurations enable all checks. - # All checks are enabled by default. test: + # Check *testing.T is first param (or after context.Context) of helper function. + # Default: true first: false + # Check *testing.T param has name t. + # Default: true name: false + # Check t.Helper() begins helper function. + # Default: true begin: false benchmark: + # Check *testing.B is first param (or after context.Context) of helper function. + # Default: true first: false + # Check *testing.B param has name b. + # Default: true name: false + # Check b.Helper() begins helper function. + # Default: true begin: false tb: + # Check *testing.TB is first param (or after context.Context) of helper function. + # Default: true first: false + # Check *testing.TB param has name tb. + # Default: true name: false + # Check tb.Helper() begins helper function. + # Default: true + begin: false + fuzz: + # Check *testing.F is first param (or after context.Context) of helper function. + # Default: true + first: false + # Check *testing.F param has name f. + # Default: true + name: false + # Check f.Helper() begins helper function. + # Default: true begin: false unparam: From 085b7ea3bf88ed9a238644d639417f7c24b94d50 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 30 May 2022 10:31:16 +0300 Subject: [PATCH 017/162] docs(gosec): add configs for all existing rules (#2886) docs: gosec: add configs for all existing rules --- .golangci.reference.yml | 59 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 1cc041bbb483..66d687aecb83 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -684,6 +684,7 @@ linters-settings: gosec: # To select a subset of rules to run. # Available rules: https://github.com/securego/gosec#available-rules + # Default: [] - means include all rules includes: - G101 - G102 @@ -719,6 +720,7 @@ linters-settings: # To specify a set of rules to explicitly exclude. # Available rules: https://github.com/securego/gosec#available-rules + # Default: [] excludes: - G101 - G102 @@ -771,17 +773,66 @@ linters-settings: concurrency: 12 # To specify the configuration of rules. - # The configuration of rules is not fully documented by gosec: - # https://github.com/securego/gosec#configuration - # https://github.com/securego/gosec/blob/569328eade2ccbad4ce2d0f21ee158ab5356a5cf/rules/rulelist.go#L60-L102 config: - G306: "0600" G101: + # Regexp pattern for variables and constants to find. + # Default: "(?i)passwd|pass|password|pwd|secret|token|pw|apiKey|bearer|cred" pattern: "(?i)example" + # If true, complain about all cases (even with low entropy). + # Default: false ignore_entropy: false + # Maximum allowed entropy of the string. + # Default: "80.0" entropy_threshold: "80.0" + # Maximum allowed value of entropy/string length. + # Is taken into account if entropy >= entropy_threshold/2. + # Default: "3.0" per_char_threshold: "3.0" + # Calculate entropy for first N chars of the string. + # Default: "16" truncate: "32" + # Additional functions to ignore while checking unhandled errors. + # Following functions always ignored: + # bytes.Buffer: + # - Write + # - WriteByte + # - WriteRune + # - WriteString + # fmt: + # - Print + # - Printf + # - Println + # - Fprint + # - Fprintf + # - Fprintln + # strings.Builder: + # - Write + # - WriteByte + # - WriteRune + # - WriteString + # io.PipeWriter: + # - CloseWithError + # hash.Hash: + # - Write + # os: + # - Unsetenv + # Default: {} + G104: + fmt: + - Fscanf + G111: + # Regexp pattern to find potential directory traversal. + # Default: "http\\.Dir\\(\"\\/\"\\)|http\\.Dir\\('\\/'\\)" + pattern: "custom\\.Dir\\(\\)" + # Maximum allowed permissions mode for os.Mkdir and os.MkdirAll + # Default: "0750" + G301: "0750" + # Maximum allowed permissions mode for os.OpenFile and os.Chmod + # Default: "0600" + G302: "0600" + # Maximum allowed permissions mode for os.WriteFile and ioutil.WriteFile + # Default: "0600" + G306: "0600" govet: # Report about shadowed variables. From a23fc2c7f0f5a7ca1c7a4f8503ce20319bff07cc Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 30 May 2022 10:31:24 +0300 Subject: [PATCH 018/162] docs(depguard): add `ignore-file-rules` (#2884) * docs: linters-settings: depguard: add missing `ignore-file-rules` * Add an example without ! --- .golangci.reference.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 66d687aecb83..8c6ee6c42bc4 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -164,9 +164,11 @@ linters-settings: include-go-root: true # A list of packages for the list type specified. + # Can accept both string prefixes and string glob patterns. # Default: [] packages: - github.com/sirupsen/logrus + - allow/**/pkg # A list of packages for the list type specified. # Specify an error message to output when a denied package is used. @@ -174,6 +176,16 @@ linters-settings: packages-with-error-message: - github.com/sirupsen/logrus: 'logging is allowed only by logutils.Log' + # Specify rules by which the linter ignores certain files for consideration. + # Can accept both string prefixes and string glob patterns. + # The ! character in front of the rule is a special character + # which signals that the linter should negate the rule. + # This allows for more precise control, but it is only available for glob patterns. + # Default: [] + ignore-file-rules: + - "ignore/**/*.go" + - "!**/*_test.go" + # Create additional guards that follow the same configuration pattern. # Results from all guards are aggregated together. additional-guards: From 42bbe403bccece314f6a114d5db8cd4ce4e15a6c Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 30 May 2022 10:33:04 +0300 Subject: [PATCH 019/162] docs(gocritic): add `enable` and `disable` ruleguard settings (#2885) * docs: ruleguard: add missing `enable` and `disable` settings * Don't use go-critic groups and tags --- .golangci.reference.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 8c6ee6c42bc4..b5b4a70cef6e 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -474,6 +474,7 @@ linters-settings: # ruleguard prints the specific Where() condition that was rejected. # # The flag is passed to the ruleguard 'debug-group' argument. + # Default: "" debug: 'emptyDecl' # Deprecated, use 'failOn' param. # If set to true, identical to failOn='all', otherwise failOn='' @@ -484,12 +485,22 @@ linters-settings: # - 'all': fail on all errors. # - 'import': ruleguard rule imports a package that cannot be found. # - 'dsl': gorule file does not comply with the ruleguard DSL. + # Default: "" failOn: dsl # Comma-separated list of file paths containing ruleguard rules. # If a path is relative, it is relative to the directory where the golangci-lint command is executed. # The special '${configDir}' variable is substituted with the absolute directory containing the golangci config file. # Glob patterns such as 'rules-*.go' may be specified. + # Default: "" rules: '${configDir}/ruleguard/rules-*.go,${configDir}/myrule1.go' + # Comma-separated list of enabled groups or skip empty to enable everything. + # Tags can be defined with # character prefix. + # Default: "" + enable: "myGroupName,#myTagName" + # Comma-separated list of disabled groups or skip empty to enable everything. + # Tags can be defined with # character prefix. + # Default: "" + disable: "myGroupName,#myTagName" tooManyResultsChecker: # Maximum number of results. # Default: 5 From 2f41c1f06b0cbbf8e76d670006354c82666a5231 Mon Sep 17 00:00:00 2001 From: Loong Dai Date: Tue, 31 May 2022 01:51:38 +0800 Subject: [PATCH 020/162] gci: fix issues and re-enable autofix (#2892) Co-authored-by: Fernandez Ludovic --- go.mod | 5 +- go.sum | 7 +- pkg/golinters/gci.go | 121 +++++++++++++++++++++++++++++----- pkg/golinters/gofmt_common.go | 19 +++--- test/linters_test.go | 8 +-- test/testdata/fix/in/gci.go | 15 +++++ test/testdata/fix/out/gci.go | 17 +++++ 7 files changed, 161 insertions(+), 31 deletions(-) create mode 100644 test/testdata/fix/in/gci.go create mode 100644 test/testdata/fix/out/gci.go diff --git a/go.mod b/go.mod index a04278bd388e..741d5188c942 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.3.3 + github.com/daixiang0/gci v0.3.4 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 @@ -164,6 +164,9 @@ require ( github.com/tklauser/numcpus v0.4.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect + go.uber.org/atomic v1.7.0 // indirect + go.uber.org/multierr v1.6.0 // indirect + go.uber.org/zap v1.17.0 // indirect golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect diff --git a/go.sum b/go.sum index f7b7f03ec772..3f2d4c19ed50 100644 --- a/go.sum +++ b/go.sum @@ -162,8 +162,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.3.3 h1:55xJKH7Gl9Vk6oQ1cMkwrDWjAkT1D+D1G9kNmRcAIY4= -github.com/daixiang0/gci v0.3.3/go.mod h1:1Xr2bxnQbDxCqqulUOv8qpGqkgRw9RSCGGjEC2LjF8o= +github.com/daixiang0/gci v0.3.4 h1:+EZ83znNs73C9ZBTM7xhNagMP6gJs5wlptiFiuce5BM= +github.com/daixiang0/gci v0.3.4/go.mod h1:pB1j339Q+2sv/EyKd4dgvGXcaBGIErim+dlhLDtqeW4= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -858,14 +858,17 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe 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.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= 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.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= 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.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index b7487b8f1e9f..fec1db4c898e 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -3,8 +3,11 @@ package golinters import ( "fmt" "strings" + "sync" - gci "github.com/daixiang0/gci/pkg/analyzer" + gcicfg "github.com/daixiang0/gci/pkg/configuration" + "github.com/daixiang0/gci/pkg/gci" + "github.com/pkg/errors" "golang.org/x/tools/go/analysis" "github.com/golangci/golangci-lint/pkg/config" @@ -15,33 +18,121 @@ import ( const gciName = "gci" func NewGci(settings *config.GciSettings) *goanalysis.Linter { - var linterCfg map[string]map[string]interface{} + var mu sync.Mutex + var resIssues []goanalysis.Issue + + analyzer := &analysis.Analyzer{ + Name: gciName, + Doc: goanalysis.TheOnlyanalyzerDoc, + Run: goanalysis.DummyRun, + } + + var cfg *gci.GciConfiguration if settings != nil { - cfg := map[string]interface{}{ - gci.NoInlineCommentsFlag: settings.NoInlineComments, - gci.NoPrefixCommentsFlag: settings.NoPrefixComments, - gci.SectionsFlag: strings.Join(settings.Sections, gci.SectionDelimiter), - gci.SectionSeparatorsFlag: strings.Join(settings.SectionSeparator, gci.SectionDelimiter), + rawCfg := gci.GciStringConfiguration{ + Cfg: gcicfg.FormatterConfiguration{ + NoInlineComments: settings.NoInlineComments, + NoPrefixComments: settings.NoPrefixComments, + }, + SectionStrings: settings.Sections, + SectionSeparatorStrings: settings.SectionSeparator, } if settings.LocalPrefixes != "" { prefix := []string{"standard", "default", fmt.Sprintf("prefix(%s)", settings.LocalPrefixes)} - cfg[gci.SectionsFlag] = strings.Join(prefix, gci.SectionDelimiter) + rawCfg.SectionStrings = prefix } - linterCfg = map[string]map[string]interface{}{ - gci.Analyzer.Name: cfg, - } + cfg, _ = rawCfg.Parse() } + var lock sync.Mutex + return goanalysis.NewLinter( gciName, "Gci controls golang package import order and makes it always deterministic.", - []*analysis.Analyzer{gci.Analyzer}, - linterCfg, + []*analysis.Analyzer{analyzer}, + nil, ).WithContextSetter(func(lintCtx *linter.Context) { - if settings.LocalPrefixes != "" { - lintCtx.Log.Warnf("gci: `local-prefixes` is deprecated, use `sections` and `prefix(%s)` instead.", settings.LocalPrefixes) + analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { + issues, err := runGci(pass, lintCtx, cfg, &lock) + if err != nil { + return nil, err + } + + if len(issues) == 0 { + return nil, nil + } + + mu.Lock() + resIssues = append(resIssues, issues...) + mu.Unlock() + + return nil, nil } + }).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues }).WithLoadMode(goanalysis.LoadModeSyntax) } + +func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gci.GciConfiguration, lock *sync.Mutex) ([]goanalysis.Issue, error) { + var fileNames []string + for _, f := range pass.Files { + pos := pass.Fset.PositionFor(f.Pos(), false) + fileNames = append(fileNames, pos.Filename) + } + + var diffs []string + err := gci.DiffFormattedFilesToArray(fileNames, *cfg, &diffs, lock) + if err != nil { + return nil, err + } + + var issues []goanalysis.Issue + + for _, diff := range diffs { + if diff == "" { + continue + } + + is, err := extractIssuesFromPatch(diff, lintCtx, gciName) + if err != nil { + return nil, errors.Wrapf(err, "can't extract issues from gci diff output %s", diff) + } + + for i := range is { + issues = append(issues, goanalysis.NewIssue(&is[i], pass)) + } + } + + return issues, nil +} + +func getErrorTextForGci(settings config.GciSettings) string { + text := "File is not `gci`-ed" + + hasOptions := settings.NoInlineComments || settings.NoPrefixComments || len(settings.Sections) > 0 || len(settings.SectionSeparator) > 0 + if !hasOptions { + return text + } + + text += " with" + + if settings.NoInlineComments { + text += " -NoInlineComments" + } + + if settings.NoPrefixComments { + text += " -NoPrefixComments" + } + + if len(settings.Sections) > 0 { + text += " -s " + strings.Join(settings.Sections, ",") + } + + if len(settings.SectionSeparator) > 0 { + text += " -x " + strings.Join(settings.SectionSeparator, ",") + } + + return text +} diff --git a/pkg/golinters/gofmt_common.go b/pkg/golinters/gofmt_common.go index a04cd7f86b67..e92417429fe2 100644 --- a/pkg/golinters/gofmt_common.go +++ b/pkg/golinters/gofmt_common.go @@ -9,6 +9,7 @@ import ( "github.com/pkg/errors" diffpkg "github.com/sourcegraph/go-diff/diff" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/logutils" "github.com/golangci/golangci-lint/pkg/result" @@ -207,23 +208,25 @@ func (p *hunkChangesParser) parse(h *diffpkg.Hunk) []Change { return p.ret } -func getErrorTextForLinter(lintCtx *linter.Context, linterName string) string { +func getErrorTextForLinter(settings *config.LintersSettings, linterName string) string { text := "File is not formatted" switch linterName { + case gciName: + text = getErrorTextForGci(settings.Gci) case gofumptName: text = "File is not `gofumpt`-ed" - if lintCtx.Settings().Gofumpt.ExtraRules { + if settings.Gofumpt.ExtraRules { text += " with `-extra`" } case gofmtName: text = "File is not `gofmt`-ed" - if lintCtx.Settings().Gofmt.Simplify { + if settings.Gofmt.Simplify { text += " with `-s`" } case goimportsName: text = "File is not `goimports`-ed" - if lintCtx.Settings().Goimports.LocalPrefixes != "" { - text += " with -local " + lintCtx.Settings().Goimports.LocalPrefixes + if settings.Goimports.LocalPrefixes != "" { + text += " with -local " + settings.Goimports.LocalPrefixes } } return text @@ -247,9 +250,7 @@ func extractIssuesFromPatch(patch string, lintCtx *linter.Context, linterName st } for _, hunk := range d.Hunks { - p := hunkChangesParser{ - log: lintCtx.Log, - } + p := hunkChangesParser{log: lintCtx.Log} changes := p.parse(hunk) @@ -261,7 +262,7 @@ func extractIssuesFromPatch(patch string, lintCtx *linter.Context, linterName st Filename: d.NewName, Line: change.LineRange.From, }, - Text: getErrorTextForLinter(lintCtx, linterName), + Text: getErrorTextForLinter(lintCtx.Settings(), linterName), Replacement: &change.Replacement, } if change.LineRange.From != change.LineRange.To { diff --git a/test/linters_test.go b/test/linters_test.go index 09508c070ba4..d821a83847b8 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -105,7 +105,7 @@ func TestGciLocal(t *testing.T) { require.NoError(t, err) testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/gci/gci.go:9:1: Expected '\\n', Found '\\t'") + ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed") } func TestMultipleOutputs(t *testing.T) { @@ -124,7 +124,7 @@ func TestMultipleOutputs(t *testing.T) { require.NoError(t, err) testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/gci/gci.go:9:1: Expected '\\n', Found '\\t'"). + ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputContains(`"Issues":[`) } @@ -144,7 +144,7 @@ func TestStderrOutput(t *testing.T) { require.NoError(t, err) testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/gci/gci.go:9:1: Expected '\\n', Found '\\t'"). + ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputContains(`"Issues":[`) } @@ -167,7 +167,7 @@ func TestFileOutput(t *testing.T) { require.NoError(t, err) testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/gci/gci.go:9:1: Expected '\\n', Found '\\t'"). + ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputNotContains(`"Issues":[`) b, err := os.ReadFile(resultPath) diff --git a/test/testdata/fix/in/gci.go b/test/testdata/fix/in/gci.go new file mode 100644 index 000000000000..4efb0541063e --- /dev/null +++ b/test/testdata/fix/in/gci.go @@ -0,0 +1,15 @@ +//args: -Egci +//config_path: testdata/configs/gci.yml +package gci + +import ( + "github.com/golangci/golangci-lint/pkg/config" + "github.com/pkg/errors" + "fmt" +) + +func GoimportsLocalTest() { + fmt.Print("x") + _ = config.Config{} + _ = errors.New("") +} diff --git a/test/testdata/fix/out/gci.go b/test/testdata/fix/out/gci.go new file mode 100644 index 000000000000..a9dfbb07d76e --- /dev/null +++ b/test/testdata/fix/out/gci.go @@ -0,0 +1,17 @@ +//args: -Egci +//config_path: testdata/configs/gci.yml +package gci + +import ( + "fmt" + + "github.com/golangci/golangci-lint/pkg/config" + + "github.com/pkg/errors" +) + +func GoimportsLocalTest() { + fmt.Print("x") + _ = config.Config{} + _ = errors.New("") +} From e389db8a0009d512c60a1d6431bbe9c4b006ac9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 08:13:11 +0800 Subject: [PATCH 021/162] build(deps): bump sharp from 0.30.3 to 0.30.6 in /docs (#2900) Bumps [sharp](https://github.com/lovell/sharp) from 0.30.3 to 0.30.6. - [Release notes](https://github.com/lovell/sharp/releases) - [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md) - [Commits](https://github.com/lovell/sharp/compare/v0.30.3...v0.30.6) --- updated-dependencies: - dependency-name: sharp dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 178 +++++++++++++++++++++++------------------ 1 file changed, 99 insertions(+), 79 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 3076a60aa8cb..18631b08aef4 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -7444,7 +7444,7 @@ "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "engines": { "node": ">=0.10.0" } @@ -7467,9 +7467,9 @@ } }, "node_modules/color": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.1.tgz", - "integrity": "sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -7492,9 +7492,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -7662,7 +7662,7 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/constant-case": { "version": "2.0.0", @@ -9297,7 +9297,7 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "node_modules/depd": { "version": "1.1.2", @@ -14637,7 +14637,7 @@ "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -14812,7 +14812,7 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/github-slugger": { "version": "1.3.0", @@ -15282,7 +15282,7 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/has-value": { "version": "1.0.0", @@ -18630,9 +18630,9 @@ } }, "node_modules/node-abi": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", + "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", "dependencies": { "semver": "^7.3.5" }, @@ -18641,9 +18641,9 @@ } }, "node_modules/node-abi/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -18655,9 +18655,9 @@ } }, "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", + "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" }, "node_modules/node-fetch": { "version": "2.6.1", @@ -18828,7 +18828,7 @@ "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "engines": { "node": ">=0.10.0" } @@ -19817,9 +19817,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prebuild-install": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz", - "integrity": "sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", + "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -19843,9 +19843,9 @@ } }, "node_modules/prebuild-install/node_modules/detect-libc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.0.tgz", - "integrity": "sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", "engines": { "node": ">=8" } @@ -21766,16 +21766,16 @@ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, "node_modules/sharp": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.3.tgz", - "integrity": "sha512-rjpfJFK58ZOFSG8sxYSo3/JQb4ej095HjXp9X7gVu7gEn1aqSG8TCW29h/Rr31+PXrFADo1H/vKfw0uhMQWFtg==", + "version": "0.30.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.6.tgz", + "integrity": "sha512-lSdVxFxcndzcXggDrak6ozdGJgmIgES9YVZWtAFrwi+a/H5vModaf51TghBtMPw+71sLxUsTy2j+aB7qLIODQg==", "hasInstallScript": true, "dependencies": { - "color": "^4.2.1", + "color": "^4.2.3", "detect-libc": "^2.0.1", - "node-addon-api": "^4.3.0", - "prebuild-install": "^7.0.1", - "semver": "^7.3.5", + "node-addon-api": "^5.0.0", + "prebuild-install": "^7.1.0", + "semver": "^7.3.7", "simple-get": "^4.0.1", "tar-fs": "^2.1.1", "tunnel-agent": "^0.6.0" @@ -21796,9 +21796,9 @@ } }, "node_modules/sharp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -21854,7 +21854,21 @@ "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { "version": "4.0.1", @@ -21889,6 +21903,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/simple-get/node_modules/mimic-response": { @@ -21897,6 +21914,9 @@ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/simple-swizzle": { @@ -22624,7 +22644,7 @@ "node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -31355,7 +31375,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" }, "collapse-white-space": { "version": "1.0.6", @@ -31372,9 +31392,9 @@ } }, "color": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.1.tgz", - "integrity": "sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "requires": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -31409,9 +31429,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -31544,7 +31564,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "constant-case": { "version": "2.0.0", @@ -32735,7 +32755,7 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "depd": { "version": "1.1.2", @@ -36734,7 +36754,7 @@ "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -36869,7 +36889,7 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "github-slugger": { "version": "1.3.0", @@ -37222,7 +37242,7 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "has-value": { "version": "1.0.0", @@ -39843,17 +39863,17 @@ } }, "node-abi": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", + "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", "requires": { "semver": "^7.3.5" }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -39861,9 +39881,9 @@ } }, "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", + "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==" }, "node-fetch": { "version": "2.6.1", @@ -39989,7 +40009,7 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" }, "object-assign": { "version": "4.1.1", @@ -40752,9 +40772,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "prebuild-install": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz", - "integrity": "sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", + "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", "requires": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -40772,9 +40792,9 @@ }, "dependencies": { "detect-libc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.0.tgz", - "integrity": "sha512-S55LzUl8HUav8l9E2PBTlC5PAJrHK7tkM+XXFGD+fbsbkTzhCpG6K05LxJcUOEWzMa4v6ptcMZ9s3fOdJDu0Zw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" } } }, @@ -42308,15 +42328,15 @@ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, "sharp": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.3.tgz", - "integrity": "sha512-rjpfJFK58ZOFSG8sxYSo3/JQb4ej095HjXp9X7gVu7gEn1aqSG8TCW29h/Rr31+PXrFADo1H/vKfw0uhMQWFtg==", + "version": "0.30.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.6.tgz", + "integrity": "sha512-lSdVxFxcndzcXggDrak6ozdGJgmIgES9YVZWtAFrwi+a/H5vModaf51TghBtMPw+71sLxUsTy2j+aB7qLIODQg==", "requires": { - "color": "^4.2.1", + "color": "^4.2.3", "detect-libc": "^2.0.1", - "node-addon-api": "^4.3.0", - "prebuild-install": "^7.0.1", - "semver": "^7.3.5", + "node-addon-api": "^5.0.0", + "prebuild-install": "^7.1.0", + "semver": "^7.3.7", "simple-get": "^4.0.1", "tar-fs": "^2.1.1", "tunnel-agent": "^0.6.0" @@ -42328,9 +42348,9 @@ "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -43016,7 +43036,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "requires": { "number-is-nan": "^1.0.0" } From bab84e10785d1753a804e3e3c3d33a472cece0a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 08:13:25 +0800 Subject: [PATCH 022/162] build(deps): bump gatsby-remark-autolink-headers from 5.13.0 to 5.15.1 in /docs (#2897) build(deps): bump gatsby-remark-autolink-headers in /docs Bumps [gatsby-remark-autolink-headers](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-remark-autolink-headers) from 5.13.0 to 5.15.1. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/gatsby-remark-autolink-headers@5.15.1/packages/gatsby-remark-autolink-headers/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-remark-autolink-headers@5.15.1/packages/gatsby-remark-autolink-headers) --- updated-dependencies: - dependency-name: gatsby-remark-autolink-headers dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 18631b08aef4..b711f9ed689c 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -29,7 +29,7 @@ "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.13.0", "gatsby-plugin-sitemap": "^5.13.0", - "gatsby-remark-autolink-headers": "^5.13.0", + "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.13.0", "gatsby-remark-external-links": "^0.0.4", "gatsby-remark-images": "^6.13.0", @@ -13332,9 +13332,9 @@ } }, "node_modules/gatsby-remark-autolink-headers": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-5.13.0.tgz", - "integrity": "sha512-/3e4TCDT8KxCJOa0IwdbOLIlT7lN30kigw1hrLgqsCmCtkn1R54ntOcCYcPWDU3Hg8GKmQE+2xdHtoblORv6ow==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-5.15.1.tgz", + "integrity": "sha512-mTFQ7p7smwFJ4017S8pNjQmISQZYm3nt6nXgj2UFgvqcZB6qEbGf1m5CTp2NpklY1Me+MCcySEVnwe/dAIWb7g==", "dependencies": { "@babel/runtime": "^7.15.4", "github-slugger": "^1.3.0", @@ -35974,9 +35974,9 @@ } }, "gatsby-remark-autolink-headers": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-5.13.0.tgz", - "integrity": "sha512-/3e4TCDT8KxCJOa0IwdbOLIlT7lN30kigw1hrLgqsCmCtkn1R54ntOcCYcPWDU3Hg8GKmQE+2xdHtoblORv6ow==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/gatsby-remark-autolink-headers/-/gatsby-remark-autolink-headers-5.15.1.tgz", + "integrity": "sha512-mTFQ7p7smwFJ4017S8pNjQmISQZYm3nt6nXgj2UFgvqcZB6qEbGf1m5CTp2NpklY1Me+MCcySEVnwe/dAIWb7g==", "requires": { "@babel/runtime": "^7.15.4", "github-slugger": "^1.3.0", diff --git a/docs/package.json b/docs/package.json index 23acc230e48a..e70a49918d52 100644 --- a/docs/package.json +++ b/docs/package.json @@ -26,7 +26,7 @@ "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.13.0", "gatsby-plugin-sitemap": "^5.13.0", - "gatsby-remark-autolink-headers": "^5.13.0", + "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.13.0", "gatsby-remark-external-links": "^0.0.4", "gatsby-remark-images": "^6.13.0", From e0bd2bbf0c83826b8c72bd5e4d63328f28c4687d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 08:13:49 +0800 Subject: [PATCH 023/162] build(deps): bump prism-react-renderer from 1.3.1 to 1.3.3 in /docs (#2896) Bumps [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/FormidableLabs/prism-react-renderer/releases) - [Commits](https://github.com/FormidableLabs/prism-react-renderer/compare/v1.3.1...v1.3.3) --- updated-dependencies: - dependency-name: prism-react-renderer dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index b711f9ed689c..37599673f47a 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -41,7 +41,7 @@ "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", "postcss": "^8.4.13", - "prism-react-renderer": "^1.3.1", + "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", "react": "^18.1.0", @@ -19884,9 +19884,9 @@ } }, "node_modules/prism-react-renderer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz", - "integrity": "sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", + "integrity": "sha512-Viur/7tBTCH2HmYzwCHmt2rEFn+rdIWNIINXyg0StiISbDiIhHKhrFuEK8eMkKgvsIYSjgGqy/hNyucHp6FpoQ==", "peerDependencies": { "react": ">=0.14.9" } @@ -40823,9 +40823,9 @@ } }, "prism-react-renderer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz", - "integrity": "sha512-xUeDMEz074d0zc5y6rxiMp/dlC7C+5IDDlaEUlcBOFE2wddz7hz5PNupb087mPwTt7T9BrFmewObfCBuf/LKwQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", + "integrity": "sha512-Viur/7tBTCH2HmYzwCHmt2rEFn+rdIWNIINXyg0StiISbDiIhHKhrFuEK8eMkKgvsIYSjgGqy/hNyucHp6FpoQ==", "requires": {} }, "probe-image-size": { diff --git a/docs/package.json b/docs/package.json index e70a49918d52..50a1c2d55391 100644 --- a/docs/package.json +++ b/docs/package.json @@ -38,7 +38,7 @@ "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", "postcss": "^8.4.13", - "prism-react-renderer": "^1.3.1", + "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", "react": "^18.1.0", From 7a28205122abf968855f9d2e0671716d68496666 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 08:15:20 +0800 Subject: [PATCH 024/162] build(deps): bump gatsby from 4.13.1 to 4.15.2 in /docs (#2895) Bumps [gatsby](https://github.com/gatsbyjs/gatsby) from 4.13.1 to 4.15.2. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/master/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/compare/gatsby@4.13.1...gatsby@4.15.2) --- updated-dependencies: - dependency-name: gatsby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 7167 +++++++++++++++++++--------------------- docs/package.json | 2 +- 2 files changed, 3373 insertions(+), 3796 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 37599673f47a..d278e9290611 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -13,7 +13,7 @@ "@emotion/styled": "^11.8.1", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.16", - "gatsby": "^4.13.1", + "gatsby": "^4.15.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.13.0", @@ -71,11 +71,11 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -221,14 +221,14 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" @@ -309,24 +309,12 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -344,11 +332,11 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -959,6 +947,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow/node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -1077,11 +1087,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz", - "integrity": "sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1091,9 +1101,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } @@ -1328,6 +1338,29 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types/node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", @@ -1754,12 +1787,12 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -1791,9 +1824,9 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } @@ -1954,13 +1987,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1970,9 +2003,9 @@ } }, "node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } @@ -2185,13 +2218,13 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/plugin-transform-typescript": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -2201,17 +2234,17 @@ } }, "node_modules/@babel/preset-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -2244,17 +2277,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/template/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==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/traverse": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", @@ -2275,17 +2297,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/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==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", @@ -2303,6 +2314,14 @@ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==" }, + "node_modules/@builder.io/partytown": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz", + "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==", + "bin": { + "partytown": "bin/partytown.cjs" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.7.2", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", @@ -2567,329 +2586,20 @@ } }, "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-0.0.2.tgz", - "integrity": "sha512-ZeGxCbx13+zjpE/0HuJ/tjox9zfiYq9fGoAAi+RHP5vHSJCmJVO5hZbexQ/umlUyAkkkzC4p1WIpw1cYQTA8SA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.0.0.tgz", + "integrity": "sha512-SQc8dL3vx4ZQIz1usRQewn0gRYvSYSoKLcF4rB5f2Uoia6VIZkCpfuzV2+++T/3ttMqxE8Wt7yRgE+s7fE5VaQ==", "dependencies": { - "@babel/runtime": "^7.15.4", - "@parcel/plugin": "2.3.1", - "gatsby-core-utils": "^3.8.2" + "@babel/runtime": "^7.18.0", + "@parcel/plugin": "2.5.0", + "gatsby-core-utils": "^3.15.0" }, "engines": { "node": ">=14.15.0", "parcel": "2.x" }, "peerDependencies": { - "@parcel/namer-default": "^2.3.1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/cache": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.3.1.tgz", - "integrity": "sha512-8Wvm0VERtocUepIfkZ6xVs1LHZqttnzdrM7oSc0bXhwtz8kZB++N88g0rQskbUchW87314eYdzBtEL0aiq0bgQ==", - "dependencies": { - "@parcel/fs": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/utils": "2.3.1", - "lmdb": "^2.0.2" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.3.1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/codeframe": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.3.1.tgz", - "integrity": "sha512-sdNvbg9qYS2pwzqyyyt+wZfNGuy7EslzDLbzQclFZmhD6e770mcYoi8/7i7D/AONbXiI15vwNmgOdcUIXtPxbA==", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/diagnostic": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.3.1.tgz", - "integrity": "sha512-hBMcg4WVMdSIy6RpI4gSto5dZ3OoUbnrCZzVw3J1tzQJn7x9na/+014IaE58vJtAqJ8/jc/TqWIcwsSLe898rA==", - "dependencies": { - "json-source-map": "^0.6.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/events": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.3.1.tgz", - "integrity": "sha512-J2rWKGl1Z2IvwwDwWYz/4gUxC1P4LsioUyOo1HYGT+N5+r41P8ZB5CM/aosI2qu5mMsH8rTpclOv5E36vCSQxw==", - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/fs": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.3.1.tgz", - "integrity": "sha512-FKqyf8KF0zOw8gfj/feEAMj4Kzqkgt9Zxa2A7UDdMWRvxLR8znqnWjD++xqq6rxJp2Y1zm4fH3JOTK4CRddUSg==", - "dependencies": { - "@parcel/fs-search": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "@parcel/watcher": "^2.0.0", - "@parcel/workers": "2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.3.1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/fs-search": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.3.1.tgz", - "integrity": "sha512-JsBIDttjmgJIMD6Q6MV83M+mwr5NqUm55iA+SewimboiWzSPzIJxRaegniSsNfsrBASJ6nSZFHcLPd/VJ5iqJw==", - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/hash": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.3.1.tgz", - "integrity": "sha512-IYhSQE+CIKWjPfiLmsrXHupkNd+hMlTlI9DR5qLiD8ydyPwg0XE/bOYTcbdsSl6HTackY0XYVSJwTtEgvtYVfw==", - "dependencies": { - "detect-libc": "^1.0.3", - "xxhash-wasm": "^0.4.2" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/logger": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.3.1.tgz", - "integrity": "sha512-swNPInULCJrpCJCLOgZcf+xNcUF0NjD7LyNcB349BkyO7i6st14nfBjXf6eAJJu0z7RMmi6zp9CQB47e4cI6+g==", - "dependencies": { - "@parcel/diagnostic": "2.3.1", - "@parcel/events": "2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/markdown-ansi": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.3.1.tgz", - "integrity": "sha512-M4Hi25pKtSh1KF/ppMDBk5QuLpYAQjgB/MSP+nz7NzXQlYPCN5oEk9TUkrmQ9J+vOvVwefxfy7ahSErEuQbTFw==", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/package-manager": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.3.1.tgz", - "integrity": "sha512-w2XOkD3SU8RxhUDW+Soy/TjvEVvfUsBmHy02asllt4b/ZtyZVAsQmonGExHDDkRn3TNDR6Y96Yw6M7purt+b9w==", - "dependencies": { - "@parcel/diagnostic": "2.3.1", - "@parcel/fs": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "@parcel/workers": "2.3.1", - "semver": "^5.7.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.3.1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/plugin": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.3.1.tgz", - "integrity": "sha512-ROOWbgFze7BCF3RkEh8VbcKGlR5UGBuJ8lfCaFrG1VOk7Rxgl8Bmk96TRbZREm/1jB74p2O8twVKyPSC13riow==", - "dependencies": { - "@parcel/types": "2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.3.1.tgz", - "integrity": "sha512-i2UyUoA4DzyYxe9rZRDuMAZ6TD3Mq3tTTqeJ2/zA6w83Aon3cqdE9va91peu1fKRGyRqE5lwWRtA7ktF1A2SVA==", - "dependencies": { - "@parcel/cache": "2.3.1", - "@parcel/diagnostic": "2.3.1", - "@parcel/fs": "2.3.1", - "@parcel/package-manager": "2.3.1", - "@parcel/source-map": "^2.0.0", - "@parcel/workers": "2.3.1", - "utility-types": "^3.10.0" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-OFdh/HuAcce753/U3QoORzYU3N5oZqCfQNRb0i3onuz/qpli5TyxUl/k1BuTqlKYr6Px3kj05g6GFi9kRBOMbw==", - "dependencies": { - "@parcel/codeframe": "2.3.1", - "@parcel/diagnostic": "2.3.1", - "@parcel/hash": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/markdown-ansi": "2.3.1", - "@parcel/source-map": "^2.0.0", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/@parcel/workers": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.3.1.tgz", - "integrity": "sha512-e2P/9p5AYBLfNRs8n+57ChGrn5171oHwY54dz/jj0CrXKN1q0b+rNwzYsPaAtOicBoqmm1s5I3cjfO6GfJP65A==", - "dependencies": { - "@parcel/diagnostic": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "chrome-trace-event": "^1.0.2", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "peerDependencies": { - "@parcel/core": "^2.3.1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/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==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/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==" - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@parcel/namer-default": "2.5.0" } }, "node_modules/@gatsbyjs/potrace": { @@ -3382,6 +3092,252 @@ "node": ">=8" } }, + "node_modules/@graphql-codegen/add": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-3.1.1.tgz", + "integrity": "sha512-XkVwcqosa0CVBlL1HaQT0gp+EUfhuQE3LzrEpzMQLwchxaj/NPVYtOJL6MUHaYDsHzLqxWrufjfbeB3y2NQgRw==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.3.2", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/add/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/@graphql-codegen/core": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.5.1.tgz", + "integrity": "sha512-alctBVl2hMnBXDLwkgmnFPrZVIiBDsWJSmxJcM4GKg1PB23+xuov35GE47YAyAhQItE1B1fbYnbb1PtGiDZ4LA==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.4.1", + "@graphql-tools/schema": "^8.1.2", + "@graphql-tools/utils": "^8.1.1", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/merge": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", + "dependencies": { + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/merge/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema": { + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", + "dependencies": { + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", + "value-or-promise": "1.0.11" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/schema/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/core/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.2.tgz", + "integrity": "sha512-LJNvwAPv/sKtI3RnRDm+nPD+JeOfOuSOS4FFIpQCMUCyMnFcchV/CPTTv7tT12fLUpEg6XjuFfDBvOwndti30Q==", + "dependencies": { + "@graphql-tools/utils": "^8.5.2", + "change-case-all": "1.0.14", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.4.1.tgz", + "integrity": "sha512-bIWlKk/ShoVJfghA4Rt1OWnd34/dQmZM/vAe6fu6QKyOh44aAdqPtYQ2dbTyFXoknmu504etKJGEDllYNUJRfg==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.3.2", + "@graphql-tools/utils": "^8.1.1", + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/schema-ast/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/@graphql-codegen/typescript": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.11.tgz", + "integrity": "sha512-K3oDLPJRH9Wgpg9TOvb7L+xrJZ8HxkIzV2umqGn54c+8DQjvnRFBIYRO0THgUBMnEauE2sEy6RZkGHGfgQUruA==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-codegen/schema-ast": "^2.4.1", + "@graphql-codegen/visitor-plugin-common": "2.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-operations": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.4.0.tgz", + "integrity": "sha512-vJ15FLyWchuO2Xkp6uz7jJOdChiay7P9KJKFDILx/JTwjinU1fFa7iOvyeTvslqiUPxgsXthR5izdY+E5IyLkQ==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-codegen/typescript": "^2.4.11", + "@graphql-codegen/visitor-plugin-common": "2.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.8.0.tgz", + "integrity": "sha512-29MOaxBog7qaEhmeCzJn2mONSbcA+slCTzHN4nJ3aZl4KrC9V32rXlQpG5x0qHbFQ1LaG1f5gPO83xbiAeMBIw==", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6.3.7", + "@graphql-tools/utils": "^8.3.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/@graphql-tools/batch-execute": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz", @@ -3422,6 +3378,37 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "7.2.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.2.17.tgz", + "integrity": "sha512-HHF2B2/QOKp/2k00SfhsEAP6ZH5oief9oENb3KkOZioLfiYwozvoWQ9FHtmgRzlm3TtWutAaFlPefVIhOCasoA==", + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "7.2.9", + "@graphql-tools/utils": "8.6.12", + "globby": "^11.0.3", + "tslib": "~2.4.0", + "unixify": "^1.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/@graphql-tools/delegate": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.1.tgz", @@ -3499,6 +3486,37 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.2.9.tgz", + "integrity": "sha512-CLg1seduXN8W3XOGyW+cxUdnoFbafoScLWZcRBFeOb5KKqs8PisysatHhei4FVpuam64+4Rxvkp4UqywKgKs6w==", + "dependencies": { + "@babel/parser": "^7.16.8", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/@graphql-tools/import": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", @@ -3660,6 +3678,51 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, + "node_modules/@graphql-tools/optimize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.2.0.tgz", + "integrity": "sha512-l0PTqgHeorQdeOizUor6RB49eOAng9+abSxiC5/aHRo6hMmXVaqv5eqndlmxCpx9BkgNb3URQbK+ZZHVktkP/g==", + "dependencies": { + "tslib": "~2.3.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-tools/optimize/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.4.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.12.tgz", + "integrity": "sha512-zRDxpuSUYLufzGSGg8dAfqAtT1QhchG5tSK7OLczrzp0nmycSuvQ8OpWkAsHaJOkOOMnoGscOfdpxEcvkXkUiw==", + "dependencies": { + "@graphql-tools/utils": "8.6.12", + "relay-compiler": "12.0.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/@graphql-tools/schema": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", @@ -4539,9 +4602,9 @@ } }, "node_modules/@parcel/packager-js/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dependencies": { "type-fest": "^0.20.2" }, @@ -4700,9 +4763,9 @@ } }, "node_modules/@parcel/source-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.2.tgz", - "integrity": "sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.5.tgz", + "integrity": "sha512-DRVlCFKLpqBSIbMxUoVlHgfiv12HTW/U7nnhzw52YgzDVXUX9OA41dXS1PU0pJ1si+D1k8msATUC+AoldN43mg==", "dependencies": { "detect-libc": "^1.0.3" }, @@ -5039,9 +5102,17 @@ } }, "node_modules/@swc/helpers": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.10.tgz", - "integrity": "sha512-ZCioFJz6NcLAA4zQqN6BORE/SFu2tBdwRU3JXQgLBu6JETvFElAOpaP0HYjWpbnCHFEJ5o6c4wWT8QeLbRoe2w==" + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", + "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/helpers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/@szmarczak/http-timer": { "version": "1.1.2", @@ -5182,7 +5253,7 @@ "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "node_modules/@types/keyv": { "version": "3.1.1", @@ -5271,9 +5342,9 @@ } }, "node_modules/@types/react": { - "version": "18.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.8.tgz", - "integrity": "sha512-+j2hk9BzCOrrOSJASi5XiOyBbERk9jG5O73Ya4M0env5Ixi6vUNli4qy994AINcEF+1IEHISYFfIT4zwr++LKw==", + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz", + "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5961,30 +6032,6 @@ "node": ">=6.0" } }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -6021,14 +6068,6 @@ "node": ">=8" } }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -6069,13 +6108,10 @@ "node": ">=8" } }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/ast-types-flow": { "version": "0.0.7", @@ -6141,6 +6177,17 @@ "node": ">= 4.5.0" } }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/axe-core": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", @@ -6305,12 +6352,12 @@ } }, "node_modules/babel-plugin-remove-graphql-queries": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.13.0.tgz", - "integrity": "sha512-YQZVaRo0fs42ifiDECXsYXJNc9AzD+E/4H16ByuaB8eV9ndcZcEGxOChsXPJH20GXJlQqgcAQk4vH1Zrjw0a6w==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.15.0.tgz", + "integrity": "sha512-Jkc9DbXWvhtKddEqH0KXtXEQcqQIEBb43+NjRbQam+i1X8v1Dlq3EsWAaxDMLw8Wx3Hsb00CfiQw9z9eXEpb2A==", "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.13.0" + "gatsby-core-utils": "^3.15.0" }, "engines": { "node": ">=14.15.0" @@ -6325,6 +6372,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + }, "node_modules/babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -6339,6 +6391,43 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -6376,23 +6465,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -6401,25 +6473,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base64-arraybuffer": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", @@ -6689,6 +6742,14 @@ "url": "https://opencollective.com/browserslist" } }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -6738,33 +6799,6 @@ "node": ">= 0.8" } }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cache-base/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cache-manager": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", @@ -6914,6 +6948,46 @@ "url": "https://opencollective.com/browserslist" } }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/capital-case/node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/capital-case/node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/capital-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/capital-case/node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/ccount": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", @@ -6957,6 +7031,194 @@ "upper-case-first": "^1.1.0" } }, + "node_modules/change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/change-case-all/node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/change-case-all/node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/change-case-all/node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/change-case-all/node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all/node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/change-case/node_modules/pascal-case": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", @@ -7178,109 +7440,6 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -7341,7 +7500,7 @@ "node_modules/clipboardy/node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "engines": { "node": ">=0.10.0" } @@ -7349,7 +7508,7 @@ "node_modules/clipboardy/node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dependencies": { "path-key": "^2.0.0" }, @@ -7402,7 +7561,7 @@ "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "engines": { "node": ">=0.8" } @@ -7454,18 +7613,6 @@ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -7740,14 +7887,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", @@ -7825,9 +7964,9 @@ } }, "node_modules/create-gatsby": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.13.0.tgz", - "integrity": "sha512-y2v+O1ydY0jfGevbW7oU/UA+gp5ljBTRwjdc4DyDdvS+SLnbHUp586j0rgaT/6cbY6CxfDgyGJxiAzYxuB5dlg==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.15.1.tgz", + "integrity": "sha512-oFZtU5NP5jUa/A/y6p8L2pNkW+BoE0aTPTYbZ+pwQw9sE7MfYeI+t9yNDBA/9qVaaAqUt7104NkQbix/mT1GVw==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -9247,6 +9386,14 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -9258,26 +9405,6 @@ "node": ">= 0.4" } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/delaunator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", @@ -9307,6 +9434,14 @@ "node": ">= 0.6" } }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -9323,7 +9458,7 @@ "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -9374,7 +9509,7 @@ "node_modules/detect-port-alt/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/detect-port/node_modules/debug": { "version": "2.6.9", @@ -9832,6 +9967,11 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, "node_modules/es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -9986,22 +10126,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-module-utils": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", @@ -10113,23 +10237,23 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" @@ -10168,27 +10292,22 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", @@ -10865,117 +10984,6 @@ "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -11064,6 +11072,27 @@ "node": ">=0.6" } }, + "node_modules/express-http-proxy": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-1.6.3.tgz", + "integrity": "sha512-/l77JHcOUrDUX8V67E287VEUQT0lbm71gdGVoodnlWBziarYKgMcpqT7xvh/HM8Jv52phw8Bd8tY+a7QjOr7Yg==", + "dependencies": { + "debug": "^3.0.1", + "es6-promise": "^4.1.1", + "raw-body": "^2.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/express-http-proxy/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/express/node_modules/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", @@ -11157,35 +11186,6 @@ "node": ">=0.6.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -11267,6 +11267,60 @@ "reusify": "^1.0.4" } }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "node_modules/fbjs/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/fbjs/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/fd": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", @@ -11395,9 +11449,9 @@ } }, "node_modules/filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", - "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", "engines": { "node": ">= 0.4.0" } @@ -11520,157 +11574,170 @@ } } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", "dependencies": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" }, "engines": { - "node": ">=6.11.5", + "node": ">=10", "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/fork-ts-checker-webpack-plugin/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==", "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/fork-ts-checker-webpack-plugin/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==", "dependencies": { - "is-plain-object": "^2.0.4" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/fork-ts-checker-webpack-plugin/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==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dependencies": { - "kind-of": "^3.0.2" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" + "node_modules/fork-ts-checker-webpack-plugin/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "node_modules/fork-ts-checker-webpack-plugin/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==", "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" } }, "node_modules/form-data": { @@ -11706,17 +11773,6 @@ "url": "https://www.patreon.com/infusion" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -11741,7 +11797,7 @@ "node_modules/fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==" }, "node_modules/fs-extra": { "version": "8.1.0", @@ -11790,9 +11846,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "node_modules/gatsby": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.13.1.tgz", - "integrity": "sha512-RLHPyjF7fdMqoq77kE6O/XLVA8ccRd3CrzncHQ/JhtI8+ZvyUN8gzdVfcLcXDd2KIBQvMH7VivEiPWWZPlWuzw==", + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.15.2.tgz", + "integrity": "sha512-3+ZKTLJsCo9wYnpk0cJ9Baf55wMuAmtaBOE8x4Fv76Zbz/P4Iz8voeuGDKhxPQrtxB8LbXBTNKVo/SYDUO0JsA==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -11803,10 +11859,18 @@ "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4", + "@builder.io/partytown": "^0.5.2", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", + "@graphql-codegen/add": "^3.1.1", + "@graphql-codegen/core": "^2.5.1", + "@graphql-codegen/plugin-helpers": "^2.4.2", + "@graphql-codegen/typescript": "^2.4.8", + "@graphql-codegen/typescript-operations": "^2.3.5", + "@graphql-tools/code-file-loader": "^7.2.14", + "@graphql-tools/load": "^7.5.10", "@nodelib/fs.walk": "^1.2.8", - "@parcel/core": "^2.3.2", + "@parcel/core": "2.5.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@types/http-proxy": "^1.17.7", "@typescript-eslint/eslint-plugin": "^4.33.0", @@ -11820,8 +11884,8 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^4.13.0", - "babel-preset-gatsby": "^2.13.0", + "babel-plugin-remove-graphql-queries": "^4.15.0", + "babel-preset-gatsby": "^2.15.0", "better-opn": "^2.1.1", "bluebird": "^3.7.2", "body-parser": "^1.19.0", @@ -11832,7 +11896,7 @@ "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.17.2", + "core-js": "^3.22.3", "cors": "^2.8.5", "css-loader": "^5.2.7", "css-minimizer-webpack-plugin": "^2.0.0", @@ -11848,35 +11912,37 @@ "eslint-config-react-app": "^6.0.0", "eslint-plugin-flowtype": "^5.10.0", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.29.4", - "eslint-plugin-react-hooks": "^4.4.0", + "eslint-plugin-react-hooks": "^4.5.0", "eslint-webpack-plugin": "^2.6.0", - "event-source-polyfill": "^1.0.25", + "event-source-polyfill": "1.0.25", "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", + "express-http-proxy": "^1.6.3", "fastest-levenshtein": "^1.0.12", "fastq": "^1.13.0", "file-loader": "^6.2.0", "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", - "fs-extra": "^10.0.0", - "gatsby-cli": "^4.13.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-graphiql-explorer": "^2.13.0", - "gatsby-legacy-polyfills": "^2.13.0", - "gatsby-link": "^4.13.0", - "gatsby-page-utils": "^2.13.0", - "gatsby-parcel-config": "^0.4.0", - "gatsby-plugin-page-creator": "^4.13.0", - "gatsby-plugin-typescript": "^4.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-react-router-scroll": "^5.13.0", - "gatsby-telemetry": "^3.13.0", - "gatsby-worker": "^1.13.0", - "glob": "^7.2.0", + "fs-extra": "^10.1.0", + "gatsby-cli": "^4.15.1", + "gatsby-core-utils": "^3.15.0", + "gatsby-graphiql-explorer": "^2.15.0", + "gatsby-legacy-polyfills": "^2.15.0", + "gatsby-link": "^4.15.0", + "gatsby-page-utils": "^2.15.0", + "gatsby-parcel-config": "0.6.0", + "gatsby-plugin-page-creator": "^4.15.1", + "gatsby-plugin-typescript": "^4.15.0", + "gatsby-plugin-utils": "^3.9.1", + "gatsby-react-router-scroll": "^5.15.0", + "gatsby-script": "^1.0.1", + "gatsby-telemetry": "^3.15.0", + "gatsby-worker": "^1.15.0", + "glob": "^7.2.3", "globby": "^11.1.0", "got": "^11.8.2", "graphql": "^15.7.2", @@ -11890,7 +11956,7 @@ "joi": "^17.4.2", "json-loader": "^0.5.7", "latest-version": "5.1.0", - "lmdb": "~2.2.3", + "lmdb": "2.3.10", "lodash": "^4.17.21", "md5-file": "^5.0.0", "meant": "^1.0.3", @@ -11916,12 +11982,12 @@ "prop-types": "^15.7.2", "query-string": "^6.14.1", "raw-loader": "^4.0.2", - "react-dev-utils": "^11.0.4", + "react-dev-utils": "^12.0.1", "react-refresh": "^0.9.0", "redux": "4.1.2", "redux-thunk": "^2.4.0", "resolve-from": "^5.0.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.5", "slugify": "^1.6.1", @@ -11955,7 +12021,7 @@ "node": ">=14.15.0" }, "optionalDependencies": { - "gatsby-sharp": "^0.7.0" + "gatsby-sharp": "^0.9.0" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18.0.0", @@ -11968,9 +12034,9 @@ "integrity": "sha512-v8RdbmSFenNxaifo118utlfdxqvJbBWv7Ygfb0kQm2ZLrW1meu8ARjx3gAZExfSwFmMhyyiUltOvQSVDy0Jrsw==" }, "node_modules/gatsby-cli": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.13.0.tgz", - "integrity": "sha512-xxO+869h6QmQnkuT9Bk9DFpKFvjPDVMjmhq8+44QbxKqrjTt/3Hz5rqnFvhmxUyhr/JyczRRL2HwaTBOEzixPQ==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.15.1.tgz", + "integrity": "sha512-PlwcfOYVpG1/YsctnY8M2sNt1wNR46AQD0SKg/lTMdjB/EhBp4jNQNYTEp5eZihOu7Ap98/igM+RMrAUFttj5g==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -11989,13 +12055,13 @@ "common-tags": "^1.8.2", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^2.13.0", + "create-gatsby": "^2.15.1", "envinfo": "^7.8.1", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-telemetry": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-telemetry": "^3.15.0", "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", "joi": "^17.4.2", @@ -12008,13 +12074,12 @@ "prompts": "^2.4.2", "redux": "4.1.2", "resolve-cwd": "^3.0.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "signal-exit": "^3.0.6", "source-map": "0.7.3", "stack-trace": "^0.0.10", "strip-ansi": "^6.0.1", "update-notifier": "^5.1.0", - "uuid": "3.4.0", "yargs": "^15.4.1", "yoga-layout-prebuilt": "^1.10.0", "yurnalist": "^2.1.0" @@ -12027,9 +12092,9 @@ } }, "node_modules/gatsby-cli/node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "engines": { "node": ">=6.9.0" } @@ -12274,19 +12339,19 @@ } }, "node_modules/gatsby-core-utils": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.13.0.tgz", - "integrity": "sha512-uAyy54t9dYAUHjLq38QfX/pxyWxsqDiWN/+Ppg/KXTbE83LUQlD0PctdNxz9jFmJ8CgE1BUbfUKpmemh8BLkjw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.15.0.tgz", + "integrity": "sha512-aLNrH3gGUIeD9XGk3z/27N5qaVx7y3AAgs/Vu6PJm69t25kTwuOHKNzhlnHkIZypznZkkVeN7QbHBkIKam/ZIQ==", "dependencies": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "fastq": "^1.13.0", "file-type": "^16.5.3", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", "got": "^11.8.3", "import-from": "^4.0.0", - "lmdb": "^2.2.6", + "lmdb": "2.3.10", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -12299,9 +12364,9 @@ } }, "node_modules/gatsby-core-utils/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -12350,9 +12415,9 @@ } }, "node_modules/gatsby-graphiql-explorer": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.13.0.tgz", - "integrity": "sha512-xUX3PultKJ4dmRFK3ofvm0MCih8pcISSgZC+wlZ7VkhFrunMGyfOFO9tcoNNGB+YHC1jJZGLFzdBQLtHfQOW4g==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.15.0.tgz", + "integrity": "sha512-L6hjZtbxKwq8GC6XwuaWb8oUEu0AWL02vKjHqdXp2yYBe7g1FsrWjIaI94fGsNCL4d/3bGfh4IKB9cKx+eVb4g==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -12361,9 +12426,9 @@ } }, "node_modules/gatsby-legacy-polyfills": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.13.0.tgz", - "integrity": "sha512-n5Lle2Asbc2oIaShbWMtxCkXsP0rPtkl3r5jgfJZICK2I2j7QBICnItiUu2swziE0xu6HnURNIZZNPhWlJvyvw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.15.0.tgz", + "integrity": "sha512-EC50uFv3rIT1oB9+WxhiEUWg1Bkxxf+FPMTkNUZKMYc9JBtUwbqWOupjDHIYEq0RNAHx2+Qxs9NzbC3nE4P6/Q==", "dependencies": { "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" @@ -12391,14 +12456,14 @@ } }, "node_modules/gatsby-link": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.13.0.tgz", - "integrity": "sha512-/SIyUkESxw0Wz2oo/qegEkczPQdhVObFgKgbai+zWQc03xTJLWwZUWrpzQ2BGESTNyQenewXCkVlZIjkIxS45g==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.15.0.tgz", + "integrity": "sha512-46kP4he6dRGDL78SKTY3uWH8glPr2QuVY9v/4RreC6I3LZqI5Wr3F1kyR/LvLXMcXhszCuNJ4lPIOOltBTeX4Q==", "dependencies": { "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^2.13.0", - "prop-types": "^15.7.2" + "gatsby-page-utils": "^2.15.0", + "prop-types": "^15.8.1" }, "engines": { "node": ">=14.15.0" @@ -12410,16 +12475,16 @@ } }, "node_modules/gatsby-page-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.13.0.tgz", - "integrity": "sha512-XBGyFEAAMNHTAqYEndu8i8qSr83pKOC89g9umqR2jQrbdshsZwNh7O0jR5yAeLsJf1xP3udsYj28+Gk7hYcyMw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.15.0.tgz", + "integrity": "sha512-icy/+uRQH94qLlqO2jlRkYFtttWHpQp+LYrtxuLGyLMOa6hPb6dEoVdKet3vGqq0ahmHPJmU7oQgSLs9w6Flog==", "dependencies": { "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.13.0", - "glob": "^7.2.0", + "gatsby-core-utils": "^3.15.0", + "glob": "^7.2.3", "lodash": "^4.17.21", "micromatch": "^4.0.5" }, @@ -12428,33 +12493,33 @@ } }, "node_modules/gatsby-parcel-config": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.4.0.tgz", - "integrity": "sha512-+oWKL4ZjQ8ghyIvotQTXEHBsJP1SCuFknpoQs8BASYWzWS9NCOfVokB2FPKlSy3RAnD0NQOsB3x0WbcNP9brCQ==", - "dependencies": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "0.0.2", - "@parcel/bundler-default": "^2.3.2", - "@parcel/compressor-raw": "^2.3.2", - "@parcel/namer-default": "^2.3.2", - "@parcel/optimizer-terser": "^2.3.2", - "@parcel/packager-js": "^2.3.2", - "@parcel/packager-raw": "^2.3.2", - "@parcel/reporter-dev-server": "^2.3.2", - "@parcel/resolver-default": "^2.3.2", - "@parcel/runtime-browser-hmr": "^2.3.2", - "@parcel/runtime-js": "^2.3.2", - "@parcel/runtime-react-refresh": "^2.3.2", - "@parcel/runtime-service-worker": "^2.3.2", - "@parcel/transformer-js": "^2.3.2", - "@parcel/transformer-json": "^2.3.2", - "@parcel/transformer-raw": "^2.3.2", - "@parcel/transformer-react-refresh-wrap": "^2.3.2" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.6.0.tgz", + "integrity": "sha512-X9OIegPN2b12dNkhPM/TeeCkvwGki1Ey7jcfRI6zf59xTGStP/BVfOZFMK1bkzR4RKj25YR4Bk6yr11/jgudPg==", + "dependencies": { + "@gatsbyjs/parcel-namer-relative-to-cwd": "^1.0.0", + "@parcel/bundler-default": "2.5.0", + "@parcel/compressor-raw": "2.5.0", + "@parcel/namer-default": "2.5.0", + "@parcel/optimizer-terser": "2.5.0", + "@parcel/packager-js": "2.5.0", + "@parcel/packager-raw": "2.5.0", + "@parcel/reporter-dev-server": "2.5.0", + "@parcel/resolver-default": "2.5.0", + "@parcel/runtime-browser-hmr": "2.5.0", + "@parcel/runtime-js": "2.5.0", + "@parcel/runtime-react-refresh": "2.5.0", + "@parcel/runtime-service-worker": "2.5.0", + "@parcel/transformer-js": "2.5.0", + "@parcel/transformer-json": "2.5.0", + "@parcel/transformer-raw": "2.5.0", + "@parcel/transformer-react-refresh-wrap": "2.5.0" }, "engines": { "parcel": "2.x" }, "peerDependencies": { - "@parcel/core": "^2.3.1" + "@parcel/core": "2.5.0" } }, "node_modules/gatsby-plugin-canonical-urls": { @@ -12901,19 +12966,19 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "node_modules/gatsby-plugin-page-creator": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.13.0.tgz", - "integrity": "sha512-TbTJdveyZqs5Mt0RWfIhyxyINnZfQyEQrblh5N69dykwl+ymj06lPgeoIhT1ePNXsDGJ6AuZiyWfBfSlChV64A==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.15.1.tgz", + "integrity": "sha512-EaaTMbBDjAOLzHp8vZEnZcosfQaV3s7v5iHlIuuH3jpIysgMMEBAgVuBJQK8WkhMsIJKpJhJ44NN6LizIV0SMA==", "dependencies": { "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-page-utils": "^2.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-telemetry": "^3.13.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-page-utils": "^2.15.0", + "gatsby-plugin-utils": "^3.9.1", + "gatsby-telemetry": "^3.15.0", "globby": "^11.1.0", "lodash": "^4.17.21" }, @@ -13076,9 +13141,9 @@ } }, "node_modules/gatsby-plugin-typescript": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.13.0.tgz", - "integrity": "sha512-mhucmHMDvQh3faHrv0cgXHXhyQcE1aSSrfqJfO43gFZC6jeHw+bc4aFL8coDDuy50Qp7It+1Dmwy8oBj7Rt4gQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.15.0.tgz", + "integrity": "sha512-2Ul7XndL9fbZG1cltPOU16IabJ5dTvC30WHP06/yze46p66MQx/K6G5Br3c7J0yL7A7tCuLmWtsuwo9+3+Te/Q==", "dependencies": { "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -13086,7 +13151,7 @@ "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@babel/runtime": "^7.15.4", - "babel-plugin-remove-graphql-queries": "^4.13.0" + "babel-plugin-remove-graphql-queries": "^4.15.0" }, "engines": { "node": ">=14.15.0" @@ -13096,15 +13161,15 @@ } }, "node_modules/gatsby-plugin-utils": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.7.0.tgz", - "integrity": "sha512-RRVStuXH9sfI3CYO3yM9iVCh5DllAONygXhTWZMrpKpGJe87xRiot5Lal+bz9NRGhYWok3x47c4F3YRs57yMNg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.9.1.tgz", + "integrity": "sha512-+QVHItI9FNKuZrAa2RuAIv1fDpqu9t6PZLmLX8Rjg2XYtPuKc4pOuv9bZ/5z6fS/39JIDk+EZj3Z1cz6XO+2hA==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-sharp": "^0.7.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-sharp": "^0.9.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -13217,9 +13282,9 @@ } }, "node_modules/gatsby-plugin-utils/node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -13315,9 +13380,9 @@ } }, "node_modules/gatsby-react-router-scroll": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.13.0.tgz", - "integrity": "sha512-+CHI04TxkckvKBh3e9JfANc9JCoNC2ULkRs0GWNCyRTffRVClK3BJEnnyyD7XKw6sY7zSJ45R9xkBWVca+hrjw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.15.0.tgz", + "integrity": "sha512-Cjn8SVUZxwgkLFjRZ9HVeZECC16yIkMOpy5LGuLl50HBI/fFTO0QAvGgs0/Axh7tTyPeO/EaZr018zJI0ZiQhA==", "dependencies": { "@babel/runtime": "^7.15.4", "prop-types": "^15.8.1" @@ -13909,10 +13974,22 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, + "node_modules/gatsby-script": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.0.1.tgz", + "integrity": "sha512-ib3sEk/mZfAMERQxAfok+YXwxDR0+XLDWaaEJAvFmcHpowuzyVhiLinjspN5FRR8/39C/c3XUE+fi1cqiaNLOw==", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.9.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/gatsby-sharp": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.7.0.tgz", - "integrity": "sha512-NB7F1CuLr/y+xCadycds9TmMIZ65BiBINFPFssGPbn4HXgeNxEnxAnH9lWv4UlzpOk0YcvoMSPThtSKsjiWVcg==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", + "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", "dependencies": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -14008,9 +14085,9 @@ } }, "node_modules/gatsby-telemetry": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.13.0.tgz", - "integrity": "sha512-VKwRRw6WVvCmekeeMgb+Ic4pS/3Jn+3LTP2nX/QZ1G3256xFxKZVPMRO4007xLKmuIu4liEAaLrnZpG3ZuprYA==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.15.0.tgz", + "integrity": "sha512-pXHnw79qmfN5bAVkgdQMCnq7rZFxfGU1YkZJQAG+gCsLRpDgYxgxZYhkbdRJzyF8vMYiCp7HlNsCMvBA75Rpug==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -14020,8 +14097,8 @@ "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -14037,9 +14114,9 @@ "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, "node_modules/gatsby-telemetry/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -14370,9 +14447,9 @@ } }, "node_modules/gatsby-worker": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.13.0.tgz", - "integrity": "sha512-kqIgks5GQV9xw/5ewMAC/OeRiSoy8kISz75q5DSSu8uHFWf5L1hrhVnWZIYSjSgrD/9BjM0rLhNh9vz82sgb8w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.15.0.tgz", + "integrity": "sha512-N8vxDaUe12Nzy/so83yVewmkpMVnpFRupHykd/ysd65jMsRGyhsmVt/zAhGMyp0MIbJtORV2NDEU2+kF5beXxQ==", "dependencies": { "@babel/core": "^7.15.5", "@babel/runtime": "^7.15.4" @@ -14389,6 +14466,57 @@ "node": ">=6.9.0" } }, + "node_modules/gatsby/node_modules/@graphql-tools/load": { + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.13.tgz", + "integrity": "sha512-GQ/RyVZUUVfxJ8jEg2sU0WK5i5VR7WLxMutbIvkYP3dcf1QpXSmQvCDP97smfJA34SYlkGUTP/B3PagfnAmhqQ==", + "dependencies": { + "@graphql-tools/schema": "8.3.13", + "@graphql-tools/utils": "8.6.12", + "p-limit": "3.1.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/gatsby/node_modules/@graphql-tools/load/node_modules/@graphql-tools/schema": { + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", + "dependencies": { + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", + "value-or-promise": "1.0.11" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/gatsby/node_modules/@graphql-tools/load/node_modules/@graphql-tools/schema/node_modules/@graphql-tools/merge": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", + "dependencies": { + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/gatsby/node_modules/@graphql-tools/load/node_modules/@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "dependencies": { + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, "node_modules/gatsby/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -14429,10 +14557,24 @@ "postcss": "^8.1.0" } }, + "node_modules/gatsby/node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, "node_modules/gatsby/node_modules/babel-preset-gatsby": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.13.0.tgz", - "integrity": "sha512-KmWU7iScVWPhWa2V1rWAGwIxn7wZI+lzEF2NsfGSUl8dwHxlXoqPy+RP1ISqgmdgeddHFA4uFwMoOkhCNS17EQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.15.0.tgz", + "integrity": "sha512-NDsRwwYdtTALqgf3HahKTfkPIF4LWeSf5QrZ0zFT6D1pKOGPZxFFLc8Bo6m6VKa73Lx8gxF2DlawGqc9VS2dyw==", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -14445,10 +14587,10 @@ "@babel/preset-react": "^7.14.0", "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-macros": "^2.8.0", + "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.13.0", - "gatsby-legacy-polyfills": "^2.13.0" + "gatsby-core-utils": "^3.15.0", + "gatsby-legacy-polyfills": "^2.15.0" }, "engines": { "node": ">=14.15.0" @@ -14490,15 +14632,30 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/gatsby/node_modules/core-js": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz", - "integrity": "sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg==", + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", + "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==", "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, + "node_modules/gatsby/node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/gatsby/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -14508,9 +14665,9 @@ } }, "node_modules/gatsby/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -14558,6 +14715,20 @@ } } }, + "node_modules/gatsby/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gatsby/node_modules/postcss-flexbugs-fixes": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", @@ -14575,9 +14746,9 @@ } }, "node_modules/gatsby/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14618,6 +14789,11 @@ "node": ">=8" } }, + "node_modules/gatsby/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/gatsby/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -14783,14 +14959,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gifwrap": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", @@ -14828,14 +14996,14 @@ "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -14862,6 +15030,17 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -15157,6 +15336,25 @@ "graphql-playground-html": "^1.6.29" } }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-tag/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/graphql-type-json": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", @@ -15203,15 +15401,17 @@ } }, "node_modules/gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dependencies": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "duplexer": "^0.1.2" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/hard-rejection": { @@ -15284,77 +15484,6 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -15711,14 +15840,22 @@ } }, "node_modules/immer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", - "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==", + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.14.tgz", + "integrity": "sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" } }, + "node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -15753,7 +15890,7 @@ "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", "engines": { "node": ">=4" } @@ -15979,6 +16116,18 @@ "node": ">= 0.10" } }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -15987,17 +16136,6 @@ "node": ">=8" } }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -16103,17 +16241,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -16127,19 +16254,6 @@ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -16217,7 +16331,7 @@ "node_modules/is-invalid-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", "dependencies": { "is-glob": "^2.0.0" }, @@ -16228,7 +16342,7 @@ "node_modules/is-invalid-path/node_modules/is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "engines": { "node": ">=0.10.0" } @@ -16236,7 +16350,7 @@ "node_modules/is-invalid-path/node_modules/is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dependencies": { "is-extglob": "^1.0.0" }, @@ -16476,7 +16590,7 @@ "node_modules/is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", "dependencies": { "is-invalid-path": "^0.1.0" }, @@ -16662,11 +16776,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/json-source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/json-source-map/-/json-source-map-0.6.1.tgz", - "integrity": "sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==" - }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -16798,18 +16907,99 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "node_modules/lmdb": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.6.tgz", - "integrity": "sha512-UmQV0oZZcV3EN6rjcAjIiuWcc3MYZGWQ0GUYz46Ron5fuTa/dUow7WSQa6leFkvZIKVUdECBWVw96tckfEzUFQ==", + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.3.10.tgz", + "integrity": "sha512-GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==", "hasInstallScript": true, "dependencies": { "msgpackr": "^1.5.4", "nan": "^2.14.2", - "node-gyp-build": "^4.2.3", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "^4.3.2", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" + }, + "optionalDependencies": { + "lmdb-darwin-arm64": "2.3.10", + "lmdb-darwin-x64": "2.3.10", + "lmdb-linux-arm": "2.3.10", + "lmdb-linux-arm64": "2.3.10", + "lmdb-linux-x64": "2.3.10", + "lmdb-win32-x64": "2.3.10" } }, + "node_modules/lmdb-darwin-arm64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.10.tgz", + "integrity": "sha512-LVXbH2MYu7/ZuQ8+P9rv+SwNyBKltxo7vHAGJS94HWyfwnCbKEYER9PImBvNBwzvgtaYk6x0RMX3oor6e6KdDQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/lmdb-darwin-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.10.tgz", + "integrity": "sha512-gAc/1b/FZOb9yVOT+o0huA+hdW82oxLo5r22dFTLoRUFG1JMzxdTjmnW6ONVOHdqC9a5bt3vBCEY3jmXNqV26A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/lmdb-linux-arm": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.10.tgz", + "integrity": "sha512-Rb8+4JjsThuEcJ7GLLwFkCFnoiwv/3hAAbELWITz70buQFF+dCZvCWWgEgmDTxwn5r+wIkdUjmFv4dqqiKQFmQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/lmdb-linux-arm64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.10.tgz", + "integrity": "sha512-Ihr8mdICTK3jA4GXHxrXGK2oekn0mY6zuDSXQDNtyRSH19j3D2Y04A7SEI9S0EP/t5sjKSudYgZbiHDxRCsI5A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/lmdb-linux-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.10.tgz", + "integrity": "sha512-E3l3pDiCA9uvnLf+t3qkmBGRO01dp1EHD0x0g0iRnfpAhV7wYbayJGfG93BUt22Tj3fnq4HDo4dQ6ZWaDI1nuw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/lmdb-win32-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.10.tgz", + "integrity": "sha512-gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -16925,7 +17115,7 @@ "node_modules/lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" }, "node_modules/lodash.defaults": { "version": "4.2.0", @@ -17156,7 +17346,7 @@ "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "engines": { "node": ">=0.10.0" } @@ -17169,17 +17359,6 @@ "node": ">=8" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -18045,11 +18224,6 @@ "node": ">= 0.6" } }, - "node_modules/microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, "node_modules/micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -18337,29 +18511,6 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -18507,50 +18658,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -18677,6 +18784,21 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp-build-optional-packages": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.5.tgz", + "integrity": "sha512-5ke7D8SiQsTQL7CkHpfR1tLwfqtKc0KYEmlnkwd40jHCASskZeS98qoZ1qDUns2aUQWikcjidRUs6PM/3iyN/w==", + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, "node_modules/node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -18841,89 +18963,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -18948,25 +18987,6 @@ "node": ">= 10.12.0" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-visit/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -19037,25 +19057,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.values": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", @@ -19158,9 +19159,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.4.tgz", - "integrity": "sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz", + "integrity": "sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==" }, "node_modules/original": { "version": "1.0.2", @@ -19365,6 +19366,19 @@ "is-hexadecimal": "^1.0.0" } }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/parse-headers": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", @@ -19483,14 +19497,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/password-prompt": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", @@ -19542,6 +19548,25 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -19603,14 +19628,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -19689,7 +19706,7 @@ "node_modules/pkg-up/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=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "engines": { "node": ">=4" } @@ -19718,14 +19735,6 @@ "node": ">=10" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/postcss": { "version": "8.4.13", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", @@ -19914,6 +19923,14 @@ "node": ">=0.4.0" } }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -20290,68 +20307,84 @@ } }, "node_modules/react-dev-utils": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz", - "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "dependencies": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/react-dev-utils/node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "node_modules/react-dev-utils/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==", "dependencies": { - "@babel/highlight": "^7.10.4" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/react-dev-utils/node_modules/browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", - "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - }, - "bin": { - "browserslist": "cli.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=10" }, "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/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==" + }, "node_modules/react-dev-utils/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -20366,24 +20399,23 @@ } }, "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-dev-utils/node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=10" @@ -20392,42 +20424,86 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8.9.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-dev-utils/node_modules/node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + "node_modules/react-dev-utils/node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/react-dev-utils/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-dev-utils/node_modules/prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" } }, "node_modules/react-dev-utils/node_modules/shebang-command": { @@ -20450,11 +20526,22 @@ } }, "node_modules/react-dev-utils/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" @@ -20487,9 +20574,9 @@ } }, "node_modules/react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "node_modules/react-fast-compare": { "version": "3.2.0", @@ -20697,41 +20784,6 @@ "@babel/runtime": "^7.8.4" } }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", @@ -20820,6 +20872,110 @@ "jsesc": "bin/jsesc" } }, + "node_modules/relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==", + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "^15.0.0" + } + }, + "node_modules/relay-compiler/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/relay-compiler/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/relay-compiler/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/relay-compiler/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==" + }, + "node_modules/relay-compiler/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-compiler/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, "node_modules/remark": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", @@ -21206,9 +21362,9 @@ } }, "node_modules/renderkid/node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { "boolbase": "^1.0.0" }, @@ -21216,14 +21372,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -21280,11 +21428,19 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dependencies": { - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-alpn": { @@ -21344,14 +21500,6 @@ "node": ">=8" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, "node_modules/retext-english": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz", @@ -21450,14 +21598,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -21725,19 +21865,10 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -21829,9 +21960,9 @@ } }, "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" }, "node_modules/side-channel": { "version": "1.0.4", @@ -21851,6 +21982,11 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=" + }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -22038,177 +22174,6 @@ "no-case": "^2.2.0" } }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "node_modules/socket.io": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", @@ -22359,40 +22324,19 @@ "node": ">=6" } }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { + "node_modules/sponge-case": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" + "tslib": "^2.0.3" } }, + "node_modules/sponge-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -22442,99 +22386,6 @@ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-site-generator-webpack-plugin": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-3.4.2.tgz", @@ -23462,33 +23313,6 @@ "node": ">=4" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -23497,20 +23321,6 @@ "node": ">=6" } }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -23522,29 +23332,6 @@ "node": ">=8.0" } }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -23646,13 +23433,13 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, @@ -23764,6 +23551,24 @@ "node": ">=4.2.0" } }, + "node_modules/ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -23870,20 +23675,6 @@ "vfile": "^4.0.0" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -24204,58 +23995,6 @@ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -24576,14 +24315,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/use-editable": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", @@ -24664,6 +24395,14 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "engines": { + "node": ">=12" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -25283,14 +25022,6 @@ "workbox-core": "^4.3.1" } }, - "node_modules/worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "dependencies": { - "microevent.ts": "~0.1.1" - } - }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -25706,11 +25437,11 @@ } }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { @@ -25815,14 +25546,14 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" @@ -25881,21 +25612,12 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -25907,11 +25629,11 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-module-imports": { @@ -26352,6 +26074,21 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-flow": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz", + "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + } + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -26447,17 +26184,17 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz", - "integrity": "sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -26621,6 +26358,22 @@ } } }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz", + "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==", + "requires": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-flow": "^7.17.12" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + } + } + }, "@babel/plugin-transform-for-of": { "version": "7.15.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", @@ -26911,12 +26664,12 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", + "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -26939,9 +26692,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "babel-plugin-polyfill-corejs2": { "version": "0.3.1", @@ -27054,19 +26807,19 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, @@ -27238,26 +26991,26 @@ } }, "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/plugin-transform-typescript": "^7.17.12" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" } } }, "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -27279,16 +27032,6 @@ "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" - }, - "dependencies": { - "@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==", - "requires": { - "@babel/highlight": "^7.16.7" - } - } } }, "@babel/traverse": { @@ -27306,16 +27049,6 @@ "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "@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==", - "requires": { - "@babel/highlight": "^7.16.7" - } - } } }, "@babel/types": { @@ -27332,6 +27065,11 @@ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==" }, + "@builder.io/partytown": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.5.4.tgz", + "integrity": "sha512-qnikpQgi30AS01aFlNQV6l8/qdZIcP76mp90ti+u4rucXHsn4afSKivQXApqxvrQG9+Ibv45STyvHizvxef/7A==" + }, "@emotion/babel-plugin": { "version": "11.7.2", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", @@ -27538,200 +27276,13 @@ } }, "@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-0.0.2.tgz", - "integrity": "sha512-ZeGxCbx13+zjpE/0HuJ/tjox9zfiYq9fGoAAi+RHP5vHSJCmJVO5hZbexQ/umlUyAkkkzC4p1WIpw1cYQTA8SA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.0.0.tgz", + "integrity": "sha512-SQc8dL3vx4ZQIz1usRQewn0gRYvSYSoKLcF4rB5f2Uoia6VIZkCpfuzV2+++T/3ttMqxE8Wt7yRgE+s7fE5VaQ==", "requires": { - "@babel/runtime": "^7.15.4", - "@parcel/plugin": "2.3.1", - "gatsby-core-utils": "^3.8.2" - }, - "dependencies": { - "@parcel/cache": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.3.1.tgz", - "integrity": "sha512-8Wvm0VERtocUepIfkZ6xVs1LHZqttnzdrM7oSc0bXhwtz8kZB++N88g0rQskbUchW87314eYdzBtEL0aiq0bgQ==", - "requires": { - "@parcel/fs": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/utils": "2.3.1", - "lmdb": "^2.0.2" - } - }, - "@parcel/codeframe": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.3.1.tgz", - "integrity": "sha512-sdNvbg9qYS2pwzqyyyt+wZfNGuy7EslzDLbzQclFZmhD6e770mcYoi8/7i7D/AONbXiI15vwNmgOdcUIXtPxbA==", - "requires": { - "chalk": "^4.1.0" - } - }, - "@parcel/diagnostic": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.3.1.tgz", - "integrity": "sha512-hBMcg4WVMdSIy6RpI4gSto5dZ3OoUbnrCZzVw3J1tzQJn7x9na/+014IaE58vJtAqJ8/jc/TqWIcwsSLe898rA==", - "requires": { - "json-source-map": "^0.6.1", - "nullthrows": "^1.1.1" - } - }, - "@parcel/events": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.3.1.tgz", - "integrity": "sha512-J2rWKGl1Z2IvwwDwWYz/4gUxC1P4LsioUyOo1HYGT+N5+r41P8ZB5CM/aosI2qu5mMsH8rTpclOv5E36vCSQxw==" - }, - "@parcel/fs": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.3.1.tgz", - "integrity": "sha512-FKqyf8KF0zOw8gfj/feEAMj4Kzqkgt9Zxa2A7UDdMWRvxLR8znqnWjD++xqq6rxJp2Y1zm4fH3JOTK4CRddUSg==", - "requires": { - "@parcel/fs-search": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "@parcel/watcher": "^2.0.0", - "@parcel/workers": "2.3.1" - } - }, - "@parcel/fs-search": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.3.1.tgz", - "integrity": "sha512-JsBIDttjmgJIMD6Q6MV83M+mwr5NqUm55iA+SewimboiWzSPzIJxRaegniSsNfsrBASJ6nSZFHcLPd/VJ5iqJw==", - "requires": { - "detect-libc": "^1.0.3" - } - }, - "@parcel/hash": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.3.1.tgz", - "integrity": "sha512-IYhSQE+CIKWjPfiLmsrXHupkNd+hMlTlI9DR5qLiD8ydyPwg0XE/bOYTcbdsSl6HTackY0XYVSJwTtEgvtYVfw==", - "requires": { - "detect-libc": "^1.0.3", - "xxhash-wasm": "^0.4.2" - } - }, - "@parcel/logger": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.3.1.tgz", - "integrity": "sha512-swNPInULCJrpCJCLOgZcf+xNcUF0NjD7LyNcB349BkyO7i6st14nfBjXf6eAJJu0z7RMmi6zp9CQB47e4cI6+g==", - "requires": { - "@parcel/diagnostic": "2.3.1", - "@parcel/events": "2.3.1" - } - }, - "@parcel/markdown-ansi": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.3.1.tgz", - "integrity": "sha512-M4Hi25pKtSh1KF/ppMDBk5QuLpYAQjgB/MSP+nz7NzXQlYPCN5oEk9TUkrmQ9J+vOvVwefxfy7ahSErEuQbTFw==", - "requires": { - "chalk": "^4.1.0" - } - }, - "@parcel/package-manager": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.3.1.tgz", - "integrity": "sha512-w2XOkD3SU8RxhUDW+Soy/TjvEVvfUsBmHy02asllt4b/ZtyZVAsQmonGExHDDkRn3TNDR6Y96Yw6M7purt+b9w==", - "requires": { - "@parcel/diagnostic": "2.3.1", - "@parcel/fs": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "@parcel/workers": "2.3.1", - "semver": "^5.7.1" - } - }, - "@parcel/plugin": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.3.1.tgz", - "integrity": "sha512-ROOWbgFze7BCF3RkEh8VbcKGlR5UGBuJ8lfCaFrG1VOk7Rxgl8Bmk96TRbZREm/1jB74p2O8twVKyPSC13riow==", - "requires": { - "@parcel/types": "2.3.1" - } - }, - "@parcel/types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.3.1.tgz", - "integrity": "sha512-i2UyUoA4DzyYxe9rZRDuMAZ6TD3Mq3tTTqeJ2/zA6w83Aon3cqdE9va91peu1fKRGyRqE5lwWRtA7ktF1A2SVA==", - "requires": { - "@parcel/cache": "2.3.1", - "@parcel/diagnostic": "2.3.1", - "@parcel/fs": "2.3.1", - "@parcel/package-manager": "2.3.1", - "@parcel/source-map": "^2.0.0", - "@parcel/workers": "2.3.1", - "utility-types": "^3.10.0" - } - }, - "@parcel/utils": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.3.1.tgz", - "integrity": "sha512-OFdh/HuAcce753/U3QoORzYU3N5oZqCfQNRb0i3onuz/qpli5TyxUl/k1BuTqlKYr6Px3kj05g6GFi9kRBOMbw==", - "requires": { - "@parcel/codeframe": "2.3.1", - "@parcel/diagnostic": "2.3.1", - "@parcel/hash": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/markdown-ansi": "2.3.1", - "@parcel/source-map": "^2.0.0", - "chalk": "^4.1.0" - } - }, - "@parcel/workers": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.3.1.tgz", - "integrity": "sha512-e2P/9p5AYBLfNRs8n+57ChGrn5171oHwY54dz/jj0CrXKN1q0b+rNwzYsPaAtOicBoqmm1s5I3cjfO6GfJP65A==", - "requires": { - "@parcel/diagnostic": "2.3.1", - "@parcel/logger": "2.3.1", - "@parcel/types": "2.3.1", - "@parcel/utils": "2.3.1", - "chrome-trace-event": "^1.0.2", - "nullthrows": "^1.1.1" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.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==", - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@babel/runtime": "^7.18.0", + "@parcel/plugin": "2.5.0", + "gatsby-core-utils": "^3.15.0" } }, "@gatsbyjs/potrace": { @@ -28118,6 +27669,231 @@ } } }, + "@graphql-codegen/add": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/add/-/add-3.1.1.tgz", + "integrity": "sha512-XkVwcqosa0CVBlL1HaQT0gp+EUfhuQE3LzrEpzMQLwchxaj/NPVYtOJL6MUHaYDsHzLqxWrufjfbeB3y2NQgRw==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.3.2", + "tslib": "~2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@graphql-codegen/core": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.5.1.tgz", + "integrity": "sha512-alctBVl2hMnBXDLwkgmnFPrZVIiBDsWJSmxJcM4GKg1PB23+xuov35GE47YAyAhQItE1B1fbYnbb1PtGiDZ4LA==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.4.1", + "@graphql-tools/schema": "^8.1.2", + "@graphql-tools/utils": "^8.1.1", + "tslib": "~2.3.0" + }, + "dependencies": { + "@graphql-tools/merge": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", + "requires": { + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@graphql-tools/schema": { + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", + "requires": { + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", + "value-or-promise": "1.0.11" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@graphql-codegen/plugin-helpers": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.4.2.tgz", + "integrity": "sha512-LJNvwAPv/sKtI3RnRDm+nPD+JeOfOuSOS4FFIpQCMUCyMnFcchV/CPTTv7tT12fLUpEg6XjuFfDBvOwndti30Q==", + "requires": { + "@graphql-tools/utils": "^8.5.2", + "change-case-all": "1.0.14", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.3.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==" + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@graphql-codegen/schema-ast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.4.1.tgz", + "integrity": "sha512-bIWlKk/ShoVJfghA4Rt1OWnd34/dQmZM/vAe6fu6QKyOh44aAdqPtYQ2dbTyFXoknmu504etKJGEDllYNUJRfg==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.3.2", + "@graphql-tools/utils": "^8.1.1", + "tslib": "~2.3.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@graphql-codegen/typescript": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.4.11.tgz", + "integrity": "sha512-K3oDLPJRH9Wgpg9TOvb7L+xrJZ8HxkIzV2umqGn54c+8DQjvnRFBIYRO0THgUBMnEauE2sEy6RZkGHGfgQUruA==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-codegen/schema-ast": "^2.4.1", + "@graphql-codegen/visitor-plugin-common": "2.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@graphql-codegen/typescript-operations": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.4.0.tgz", + "integrity": "sha512-vJ15FLyWchuO2Xkp6uz7jJOdChiay7P9KJKFDILx/JTwjinU1fFa7iOvyeTvslqiUPxgsXthR5izdY+E5IyLkQ==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-codegen/typescript": "^2.4.11", + "@graphql-codegen/visitor-plugin-common": "2.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "@graphql-codegen/visitor-plugin-common": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.8.0.tgz", + "integrity": "sha512-29MOaxBog7qaEhmeCzJn2mONSbcA+slCTzHN4nJ3aZl4KrC9V32rXlQpG5x0qHbFQ1LaG1f5gPO83xbiAeMBIw==", + "requires": { + "@graphql-codegen/plugin-helpers": "^2.4.0", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6.3.7", + "@graphql-tools/utils": "^8.3.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.14", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "@graphql-tools/batch-execute": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.1.0.tgz", @@ -28160,6 +27936,33 @@ } } }, + "@graphql-tools/code-file-loader": { + "version": "7.2.17", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.2.17.tgz", + "integrity": "sha512-HHF2B2/QOKp/2k00SfhsEAP6ZH5oief9oENb3KkOZioLfiYwozvoWQ9FHtmgRzlm3TtWutAaFlPefVIhOCasoA==", + "requires": { + "@graphql-tools/graphql-tag-pluck": "7.2.9", + "@graphql-tools/utils": "8.6.12", + "globby": "^11.0.3", + "tslib": "~2.4.0", + "unixify": "^1.0.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "@graphql-tools/delegate": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.1.1.tgz", @@ -28241,6 +28044,33 @@ } } }, + "@graphql-tools/graphql-tag-pluck": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.2.9.tgz", + "integrity": "sha512-CLg1seduXN8W3XOGyW+cxUdnoFbafoScLWZcRBFeOb5KKqs8PisysatHhei4FVpuam64+4Rxvkp4UqywKgKs6w==", + "requires": { + "@babel/parser": "^7.16.8", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "@graphql-tools/import": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", @@ -28403,6 +28233,46 @@ } } }, + "@graphql-tools/optimize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.2.0.tgz", + "integrity": "sha512-l0PTqgHeorQdeOizUor6RB49eOAng9+abSxiC5/aHRo6hMmXVaqv5eqndlmxCpx9BkgNb3URQbK+ZZHVktkP/g==", + "requires": { + "tslib": "~2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "@graphql-tools/relay-operation-optimizer": { + "version": "6.4.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.4.12.tgz", + "integrity": "sha512-zRDxpuSUYLufzGSGg8dAfqAtT1QhchG5tSK7OLczrzp0nmycSuvQ8OpWkAsHaJOkOOMnoGscOfdpxEcvkXkUiw==", + "requires": { + "@graphql-tools/utils": "8.6.12", + "relay-compiler": "12.0.0", + "tslib": "~2.4.0" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "@graphql-tools/schema": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", @@ -29094,9 +28964,9 @@ }, "dependencies": { "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "requires": { "type-fest": "^0.20.2" } @@ -29182,9 +29052,9 @@ } }, "@parcel/source-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.2.tgz", - "integrity": "sha512-NnUrPYLpYB6qyx2v6bcRPn/gVigmGG6M6xL8wIg/i0dP1GLkuY1nf+Hqdf63FzPTqqT7K3k6eE5yHPQVMO5jcA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.5.tgz", + "integrity": "sha512-DRVlCFKLpqBSIbMxUoVlHgfiv12HTW/U7nnhzw52YgzDVXUX9OA41dXS1PU0pJ1si+D1k8msATUC+AoldN43mg==", "requires": { "detect-libc": "^1.0.3" } @@ -29419,9 +29289,19 @@ } }, "@swc/helpers": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.10.tgz", - "integrity": "sha512-ZCioFJz6NcLAA4zQqN6BORE/SFu2tBdwRU3JXQgLBu6JETvFElAOpaP0HYjWpbnCHFEJ5o6c4wWT8QeLbRoe2w==" + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", + "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "requires": { + "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } }, "@szmarczak/http-timer": { "version": "1.1.2", @@ -29556,7 +29436,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "@types/keyv": { "version": "3.1.1", @@ -29645,9 +29525,9 @@ } }, "@types/react": { - "version": "18.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.8.tgz", - "integrity": "sha512-+j2hk9BzCOrrOSJASi5XiOyBbERk9jG5O73Ya4M0env5Ixi6vUNli4qy994AINcEF+1IEHISYFfIT4zwr++LKw==", + "version": "18.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz", + "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -30186,21 +30066,6 @@ "@babel/runtime-corejs3": "^7.10.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -30228,11 +30093,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -30258,10 +30118,10 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "ast-types-flow": { "version": "0.0.7", @@ -30317,6 +30177,11 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==" + }, "axe-core": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", @@ -30455,12 +30320,12 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.13.0.tgz", - "integrity": "sha512-YQZVaRo0fs42ifiDECXsYXJNc9AzD+E/4H16ByuaB8eV9ndcZcEGxOChsXPJH20GXJlQqgcAQk4vH1Zrjw0a6w==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.15.0.tgz", + "integrity": "sha512-Jkc9DbXWvhtKddEqH0KXtXEQcqQIEBb43+NjRbQam+i1X8v1Dlq3EsWAaxDMLw8Wx3Hsb00CfiQw9z9eXEpb2A==", "requires": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.13.0" + "gatsby-core-utils": "^3.15.0" } }, "babel-plugin-syntax-object-rest-spread": { @@ -30468,6 +30333,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" + }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", @@ -30482,6 +30352,40 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, + "babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + } + }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -30518,35 +30422,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -30769,6 +30644,14 @@ "picocolors": "^1.0.0" } }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -30806,29 +30689,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "cache-manager": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", @@ -30948,6 +30808,48 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==" }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "requires": { + "tslib": "^2.0.3" + } + } + } + }, "ccount": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", @@ -30999,6 +30901,196 @@ } } }, + "change-case-all": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.14.tgz", + "integrity": "sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA==", + "requires": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "requires": { + "tslib": "^2.0.3" + } + }, + "is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "requires": { + "tslib": "^2.0.3" + } + }, + "title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "requires": { + "tslib": "^2.0.3" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "requires": { + "tslib": "^2.0.3" + } + } + } + }, "character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", @@ -31165,88 +31257,6 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -31292,12 +31302,12 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "requires": { "path-key": "^2.0.0" } @@ -31342,7 +31352,7 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" }, "clone-deep": { "version": "4.0.1", @@ -31382,15 +31392,6 @@ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -31618,11 +31619,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", @@ -31684,9 +31680,9 @@ } }, "create-gatsby": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.13.0.tgz", - "integrity": "sha512-y2v+O1ydY0jfGevbW7oU/UA+gp5ljBTRwjdc4DyDdvS+SLnbHUp586j0rgaT/6cbY6CxfDgyGJxiAzYxuB5dlg==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.15.1.tgz", + "integrity": "sha512-oFZtU5NP5jUa/A/y6p8L2pNkW+BoE0aTPTYbZ+pwQw9sE7MfYeI+t9yNDBA/9qVaaAqUt7104NkQbix/mT1GVw==", "requires": { "@babel/runtime": "^7.15.4" } @@ -32715,6 +32711,11 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -32723,22 +32724,6 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "delaunator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", @@ -32762,6 +32747,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==" + }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -32778,7 +32768,7 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" }, "detect-port": { "version": "1.3.0", @@ -32824,7 +32814,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -33219,6 +33209,11 @@ "es6-symbol": "^3.1.1" } }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -33478,16 +33473,6 @@ "requires": { "ms": "^2.1.1" } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, @@ -33574,23 +33559,23 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "requires": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -33617,20 +33602,18 @@ "is-extglob": "^2.1.1" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, @@ -33953,99 +33936,6 @@ "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -34143,6 +34033,26 @@ } } }, + "express-http-proxy": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-1.6.3.tgz", + "integrity": "sha512-/l77JHcOUrDUX8V67E287VEUQT0lbm71gdGVoodnlWBziarYKgMcpqT7xvh/HM8Jv52phw8Bd8tY+a7QjOr7Yg==", + "requires": { + "debug": "^3.0.1", + "es6-promise": "^4.1.1", + "raw-body": "^2.3.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -34191,31 +34101,6 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -34282,6 +34167,51 @@ "reusify": "^1.0.4" } }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "requires": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + }, + "dependencies": { + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, "fd": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/fd/-/fd-0.0.3.tgz", @@ -34368,9 +34298,9 @@ } }, "filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", - "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" }, "fill-range": { "version": "7.0.1", @@ -34457,128 +34387,111 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, "fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", "requires": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" }, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "color-convert": "^2.0.1" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "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==", "requires": { - "is-plain-object": "^2.0.4" + "color-name": "~1.1.4" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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==" + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - } + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -34602,14 +34515,6 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==" }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -34628,7 +34533,7 @@ "fs-exists-cached": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" + "integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg==" }, "fs-extra": { "version": "8.1.0", @@ -34667,9 +34572,9 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gatsby": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.13.1.tgz", - "integrity": "sha512-RLHPyjF7fdMqoq77kE6O/XLVA8ccRd3CrzncHQ/JhtI8+ZvyUN8gzdVfcLcXDd2KIBQvMH7VivEiPWWZPlWuzw==", + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.15.2.tgz", + "integrity": "sha512-3+ZKTLJsCo9wYnpk0cJ9Baf55wMuAmtaBOE8x4Fv76Zbz/P4Iz8voeuGDKhxPQrtxB8LbXBTNKVo/SYDUO0JsA==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/core": "^7.15.5", @@ -34679,10 +34584,18 @@ "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@babel/types": "^7.15.4", + "@builder.io/partytown": "^0.5.2", "@gatsbyjs/reach-router": "^1.3.6", "@gatsbyjs/webpack-hot-middleware": "^2.25.2", + "@graphql-codegen/add": "^3.1.1", + "@graphql-codegen/core": "^2.5.1", + "@graphql-codegen/plugin-helpers": "^2.4.2", + "@graphql-codegen/typescript": "^2.4.8", + "@graphql-codegen/typescript-operations": "^2.3.5", + "@graphql-tools/code-file-loader": "^7.2.14", + "@graphql-tools/load": "^7.5.10", "@nodelib/fs.walk": "^1.2.8", - "@parcel/core": "^2.3.2", + "@parcel/core": "2.5.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@types/http-proxy": "^1.17.7", "@typescript-eslint/eslint-plugin": "^4.33.0", @@ -34696,8 +34609,8 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^4.13.0", - "babel-preset-gatsby": "^2.13.0", + "babel-plugin-remove-graphql-queries": "^4.15.0", + "babel-preset-gatsby": "^2.15.0", "better-opn": "^2.1.1", "bluebird": "^3.7.2", "body-parser": "^1.19.0", @@ -34708,7 +34621,7 @@ "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", - "core-js": "^3.17.2", + "core-js": "^3.22.3", "cors": "^2.8.5", "css-loader": "^5.2.7", "css-minimizer-webpack-plugin": "^2.0.0", @@ -34724,36 +34637,38 @@ "eslint-config-react-app": "^6.0.0", "eslint-plugin-flowtype": "^5.10.0", "eslint-plugin-graphql": "^4.0.0", - "eslint-plugin-import": "^2.25.4", + "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.29.4", - "eslint-plugin-react-hooks": "^4.4.0", + "eslint-plugin-react-hooks": "^4.5.0", "eslint-webpack-plugin": "^2.6.0", - "event-source-polyfill": "^1.0.25", + "event-source-polyfill": "1.0.25", "execa": "^5.1.1", "express": "^4.17.1", "express-graphql": "^0.12.0", + "express-http-proxy": "^1.6.3", "fastest-levenshtein": "^1.0.12", "fastq": "^1.13.0", "file-loader": "^6.2.0", "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", - "fs-extra": "^10.0.0", - "gatsby-cli": "^4.13.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-graphiql-explorer": "^2.13.0", - "gatsby-legacy-polyfills": "^2.13.0", - "gatsby-link": "^4.13.0", - "gatsby-page-utils": "^2.13.0", - "gatsby-parcel-config": "^0.4.0", - "gatsby-plugin-page-creator": "^4.13.0", - "gatsby-plugin-typescript": "^4.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-react-router-scroll": "^5.13.0", - "gatsby-sharp": "^0.7.0", - "gatsby-telemetry": "^3.13.0", - "gatsby-worker": "^1.13.0", - "glob": "^7.2.0", + "fs-extra": "^10.1.0", + "gatsby-cli": "^4.15.1", + "gatsby-core-utils": "^3.15.0", + "gatsby-graphiql-explorer": "^2.15.0", + "gatsby-legacy-polyfills": "^2.15.0", + "gatsby-link": "^4.15.0", + "gatsby-page-utils": "^2.15.0", + "gatsby-parcel-config": "0.6.0", + "gatsby-plugin-page-creator": "^4.15.1", + "gatsby-plugin-typescript": "^4.15.0", + "gatsby-plugin-utils": "^3.9.1", + "gatsby-react-router-scroll": "^5.15.0", + "gatsby-script": "^1.0.1", + "gatsby-sharp": "^0.9.0", + "gatsby-telemetry": "^3.15.0", + "gatsby-worker": "^1.15.0", + "glob": "^7.2.3", "globby": "^11.1.0", "got": "^11.8.2", "graphql": "^15.7.2", @@ -34767,7 +34682,7 @@ "joi": "^17.4.2", "json-loader": "^0.5.7", "latest-version": "5.1.0", - "lmdb": "~2.2.3", + "lmdb": "2.3.10", "lodash": "^4.17.21", "md5-file": "^5.0.0", "meant": "^1.0.3", @@ -34793,12 +34708,12 @@ "prop-types": "^15.7.2", "query-string": "^6.14.1", "raw-loader": "^4.0.2", - "react-dev-utils": "^11.0.4", + "react-dev-utils": "^12.0.1", "react-refresh": "^0.9.0", "redux": "4.1.2", "redux-thunk": "^2.4.0", "resolve-from": "^5.0.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "shallow-compare": "^1.2.2", "signal-exit": "^3.0.5", "slugify": "^1.6.1", @@ -34831,6 +34746,49 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" }, + "@graphql-tools/load": { + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.13.tgz", + "integrity": "sha512-GQ/RyVZUUVfxJ8jEg2sU0WK5i5VR7WLxMutbIvkYP3dcf1QpXSmQvCDP97smfJA34SYlkGUTP/B3PagfnAmhqQ==", + "requires": { + "@graphql-tools/schema": "8.3.13", + "@graphql-tools/utils": "8.6.12", + "p-limit": "3.1.0", + "tslib": "~2.4.0" + }, + "dependencies": { + "@graphql-tools/schema": { + "version": "8.3.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.13.tgz", + "integrity": "sha512-e+bx1VHj1i5v4HmhCYCar0lqdoLmkRi/CfV07rTqHR6CRDbIb/S/qDCajHLt7FCovQ5ozlI5sRVbBhzfq5H0PQ==", + "requires": { + "@graphql-tools/merge": "8.2.13", + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0", + "value-or-promise": "1.0.11" + }, + "dependencies": { + "@graphql-tools/merge": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.13.tgz", + "integrity": "sha512-lhzjCa6wCthOYl7B6UzER3SGjU2WjSGnW0WGr8giMYsrtf6G3vIRotMcSVMlhDzyyMIOn7uPULOUt3/kaJ/rIA==", + "requires": { + "@graphql-tools/utils": "8.6.12", + "tslib": "~2.4.0" + } + } + } + }, + "@graphql-tools/utils": { + "version": "8.6.12", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.12.tgz", + "integrity": "sha512-WQ91O40RC+UJgZ9K+IzevSf8oolR1QE+WQ21Oyc2fgDYYiqT0eSf+HVyhZr/8x9rVjn3N9HeqCsywbdmbljg0w==", + "requires": { + "tslib": "~2.4.0" + } + } + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -34852,10 +34810,20 @@ "postcss-value-parser": "^4.2.0" } }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, "babel-preset-gatsby": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.13.0.tgz", - "integrity": "sha512-KmWU7iScVWPhWa2V1rWAGwIxn7wZI+lzEF2NsfGSUl8dwHxlXoqPy+RP1ISqgmdgeddHFA4uFwMoOkhCNS17EQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.15.0.tgz", + "integrity": "sha512-NDsRwwYdtTALqgf3HahKTfkPIF4LWeSf5QrZ0zFT6D1pKOGPZxFFLc8Bo6m6VKa73Lx8gxF2DlawGqc9VS2dyw==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -34868,10 +34836,10 @@ "@babel/preset-react": "^7.14.0", "@babel/runtime": "^7.15.4", "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-macros": "^2.8.0", + "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.13.0", - "gatsby-legacy-polyfills": "^2.13.0" + "gatsby-core-utils": "^3.15.0", + "gatsby-legacy-polyfills": "^2.15.0" } }, "chalk": { @@ -34897,9 +34865,21 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "core-js": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.3.tgz", - "integrity": "sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg==" + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", + "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } }, "debug": { "version": "3.2.7", @@ -34910,9 +34890,9 @@ } }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -34941,6 +34921,14 @@ "whatwg-url": "^5.0.0" } }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, "postcss-flexbugs-fixes": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", @@ -34953,9 +34941,9 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -34981,6 +34969,11 @@ "has-flag": "^4.0.0" } }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -34999,9 +34992,9 @@ "integrity": "sha512-v8RdbmSFenNxaifo118utlfdxqvJbBWv7Ygfb0kQm2ZLrW1meu8ARjx3gAZExfSwFmMhyyiUltOvQSVDy0Jrsw==" }, "gatsby-cli": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.13.0.tgz", - "integrity": "sha512-xxO+869h6QmQnkuT9Bk9DFpKFvjPDVMjmhq8+44QbxKqrjTt/3Hz5rqnFvhmxUyhr/JyczRRL2HwaTBOEzixPQ==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.15.1.tgz", + "integrity": "sha512-PlwcfOYVpG1/YsctnY8M2sNt1wNR46AQD0SKg/lTMdjB/EhBp4jNQNYTEp5eZihOu7Ap98/igM+RMrAUFttj5g==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/core": "^7.15.5", @@ -35019,13 +35012,13 @@ "common-tags": "^1.8.2", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^2.13.0", + "create-gatsby": "^2.15.1", "envinfo": "^7.8.1", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-telemetry": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-telemetry": "^3.15.0", "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", "joi": "^17.4.2", @@ -35038,22 +35031,21 @@ "prompts": "^2.4.2", "redux": "4.1.2", "resolve-cwd": "^3.0.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "signal-exit": "^3.0.6", "source-map": "0.7.3", "stack-trace": "^0.0.10", "strip-ansi": "^6.0.1", "update-notifier": "^5.1.0", - "uuid": "3.4.0", "yargs": "^15.4.1", "yoga-layout-prebuilt": "^1.10.0", "yurnalist": "^2.1.0" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" }, "ansi-styles": { "version": "4.3.0", @@ -35212,19 +35204,19 @@ } }, "gatsby-core-utils": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.13.0.tgz", - "integrity": "sha512-uAyy54t9dYAUHjLq38QfX/pxyWxsqDiWN/+Ppg/KXTbE83LUQlD0PctdNxz9jFmJ8CgE1BUbfUKpmemh8BLkjw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.15.0.tgz", + "integrity": "sha512-aLNrH3gGUIeD9XGk3z/27N5qaVx7y3AAgs/Vu6PJm69t25kTwuOHKNzhlnHkIZypznZkkVeN7QbHBkIKam/ZIQ==", "requires": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", "configstore": "^5.0.1", "fastq": "^1.13.0", "file-type": "^16.5.3", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", "got": "^11.8.3", "import-from": "^4.0.0", - "lmdb": "^2.2.6", + "lmdb": "2.3.10", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -35234,9 +35226,9 @@ }, "dependencies": { "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -35270,17 +35262,17 @@ } }, "gatsby-graphiql-explorer": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.13.0.tgz", - "integrity": "sha512-xUX3PultKJ4dmRFK3ofvm0MCih8pcISSgZC+wlZ7VkhFrunMGyfOFO9tcoNNGB+YHC1jJZGLFzdBQLtHfQOW4g==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.15.0.tgz", + "integrity": "sha512-L6hjZtbxKwq8GC6XwuaWb8oUEu0AWL02vKjHqdXp2yYBe7g1FsrWjIaI94fGsNCL4d/3bGfh4IKB9cKx+eVb4g==", "requires": { "@babel/runtime": "^7.15.4" } }, "gatsby-legacy-polyfills": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.13.0.tgz", - "integrity": "sha512-n5Lle2Asbc2oIaShbWMtxCkXsP0rPtkl3r5jgfJZICK2I2j7QBICnItiUu2swziE0xu6HnURNIZZNPhWlJvyvw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.15.0.tgz", + "integrity": "sha512-EC50uFv3rIT1oB9+WxhiEUWg1Bkxxf+FPMTkNUZKMYc9JBtUwbqWOupjDHIYEq0RNAHx2+Qxs9NzbC3nE4P6/Q==", "requires": { "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" @@ -35303,53 +35295,53 @@ } }, "gatsby-link": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.13.0.tgz", - "integrity": "sha512-/SIyUkESxw0Wz2oo/qegEkczPQdhVObFgKgbai+zWQc03xTJLWwZUWrpzQ2BGESTNyQenewXCkVlZIjkIxS45g==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.15.0.tgz", + "integrity": "sha512-46kP4he6dRGDL78SKTY3uWH8glPr2QuVY9v/4RreC6I3LZqI5Wr3F1kyR/LvLXMcXhszCuNJ4lPIOOltBTeX4Q==", "requires": { "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^2.13.0", - "prop-types": "^15.7.2" + "gatsby-page-utils": "^2.15.0", + "prop-types": "^15.8.1" } }, "gatsby-page-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.13.0.tgz", - "integrity": "sha512-XBGyFEAAMNHTAqYEndu8i8qSr83pKOC89g9umqR2jQrbdshsZwNh7O0jR5yAeLsJf1xP3udsYj28+Gk7hYcyMw==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.15.0.tgz", + "integrity": "sha512-icy/+uRQH94qLlqO2jlRkYFtttWHpQp+LYrtxuLGyLMOa6hPb6dEoVdKet3vGqq0ahmHPJmU7oQgSLs9w6Flog==", "requires": { "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.13.0", - "glob": "^7.2.0", + "gatsby-core-utils": "^3.15.0", + "glob": "^7.2.3", "lodash": "^4.17.21", "micromatch": "^4.0.5" } }, "gatsby-parcel-config": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.4.0.tgz", - "integrity": "sha512-+oWKL4ZjQ8ghyIvotQTXEHBsJP1SCuFknpoQs8BASYWzWS9NCOfVokB2FPKlSy3RAnD0NQOsB3x0WbcNP9brCQ==", - "requires": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "0.0.2", - "@parcel/bundler-default": "^2.3.2", - "@parcel/compressor-raw": "^2.3.2", - "@parcel/namer-default": "^2.3.2", - "@parcel/optimizer-terser": "^2.3.2", - "@parcel/packager-js": "^2.3.2", - "@parcel/packager-raw": "^2.3.2", - "@parcel/reporter-dev-server": "^2.3.2", - "@parcel/resolver-default": "^2.3.2", - "@parcel/runtime-browser-hmr": "^2.3.2", - "@parcel/runtime-js": "^2.3.2", - "@parcel/runtime-react-refresh": "^2.3.2", - "@parcel/runtime-service-worker": "^2.3.2", - "@parcel/transformer-js": "^2.3.2", - "@parcel/transformer-json": "^2.3.2", - "@parcel/transformer-raw": "^2.3.2", - "@parcel/transformer-react-refresh-wrap": "^2.3.2" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.6.0.tgz", + "integrity": "sha512-X9OIegPN2b12dNkhPM/TeeCkvwGki1Ey7jcfRI6zf59xTGStP/BVfOZFMK1bkzR4RKj25YR4Bk6yr11/jgudPg==", + "requires": { + "@gatsbyjs/parcel-namer-relative-to-cwd": "^1.0.0", + "@parcel/bundler-default": "2.5.0", + "@parcel/compressor-raw": "2.5.0", + "@parcel/namer-default": "2.5.0", + "@parcel/optimizer-terser": "2.5.0", + "@parcel/packager-js": "2.5.0", + "@parcel/packager-raw": "2.5.0", + "@parcel/reporter-dev-server": "2.5.0", + "@parcel/resolver-default": "2.5.0", + "@parcel/runtime-browser-hmr": "2.5.0", + "@parcel/runtime-js": "2.5.0", + "@parcel/runtime-react-refresh": "2.5.0", + "@parcel/runtime-service-worker": "2.5.0", + "@parcel/transformer-js": "2.5.0", + "@parcel/transformer-json": "2.5.0", + "@parcel/transformer-raw": "2.5.0", + "@parcel/transformer-react-refresh-wrap": "2.5.0" } }, "gatsby-plugin-canonical-urls": { @@ -35672,19 +35664,19 @@ } }, "gatsby-plugin-page-creator": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.13.0.tgz", - "integrity": "sha512-TbTJdveyZqs5Mt0RWfIhyxyINnZfQyEQrblh5N69dykwl+ymj06lPgeoIhT1ePNXsDGJ6AuZiyWfBfSlChV64A==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.15.1.tgz", + "integrity": "sha512-EaaTMbBDjAOLzHp8vZEnZcosfQaV3s7v5iHlIuuH3jpIysgMMEBAgVuBJQK8WkhMsIJKpJhJ44NN6LizIV0SMA==", "requires": { "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", "chokidar": "^3.5.2", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-page-utils": "^2.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-telemetry": "^3.13.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-page-utils": "^2.15.0", + "gatsby-plugin-utils": "^3.9.1", + "gatsby-telemetry": "^3.15.0", "globby": "^11.1.0", "lodash": "^4.17.21" } @@ -35801,9 +35793,9 @@ } }, "gatsby-plugin-typescript": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.13.0.tgz", - "integrity": "sha512-mhucmHMDvQh3faHrv0cgXHXhyQcE1aSSrfqJfO43gFZC6jeHw+bc4aFL8coDDuy50Qp7It+1Dmwy8oBj7Rt4gQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.15.0.tgz", + "integrity": "sha512-2Ul7XndL9fbZG1cltPOU16IabJ5dTvC30WHP06/yze46p66MQx/K6G5Br3c7J0yL7A7tCuLmWtsuwo9+3+Te/Q==", "requires": { "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -35811,19 +35803,19 @@ "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@babel/runtime": "^7.15.4", - "babel-plugin-remove-graphql-queries": "^4.13.0" + "babel-plugin-remove-graphql-queries": "^4.15.0" } }, "gatsby-plugin-utils": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.7.0.tgz", - "integrity": "sha512-RRVStuXH9sfI3CYO3yM9iVCh5DllAONygXhTWZMrpKpGJe87xRiot5Lal+bz9NRGhYWok3x47c4F3YRs57yMNg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.9.1.tgz", + "integrity": "sha512-+QVHItI9FNKuZrAa2RuAIv1fDpqu9t6PZLmLX8Rjg2XYtPuKc4pOuv9bZ/5z6fS/39JIDk+EZj3Z1cz6XO+2hA==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-sharp": "^0.7.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", + "gatsby-sharp": "^0.9.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -35897,9 +35889,9 @@ } }, "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -35965,9 +35957,9 @@ } }, "gatsby-react-router-scroll": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.13.0.tgz", - "integrity": "sha512-+CHI04TxkckvKBh3e9JfANc9JCoNC2ULkRs0GWNCyRTffRVClK3BJEnnyyD7XKw6sY7zSJ45R9xkBWVca+hrjw==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.15.0.tgz", + "integrity": "sha512-Cjn8SVUZxwgkLFjRZ9HVeZECC16yIkMOpy5LGuLl50HBI/fFTO0QAvGgs0/Axh7tTyPeO/EaZr018zJI0ZiQhA==", "requires": { "@babel/runtime": "^7.15.4", "prop-types": "^15.8.1" @@ -36393,10 +36385,16 @@ } } }, + "gatsby-script": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.0.1.tgz", + "integrity": "sha512-ib3sEk/mZfAMERQxAfok+YXwxDR0+XLDWaaEJAvFmcHpowuzyVhiLinjspN5FRR8/39C/c3XUE+fi1cqiaNLOw==", + "requires": {} + }, "gatsby-sharp": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.7.0.tgz", - "integrity": "sha512-NB7F1CuLr/y+xCadycds9TmMIZ65BiBINFPFssGPbn4HXgeNxEnxAnH9lWv4UlzpOk0YcvoMSPThtSKsjiWVcg==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", + "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", "requires": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -36471,9 +36469,9 @@ } }, "gatsby-telemetry": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.13.0.tgz", - "integrity": "sha512-VKwRRw6WVvCmekeeMgb+Ic4pS/3Jn+3LTP2nX/QZ1G3256xFxKZVPMRO4007xLKmuIu4liEAaLrnZpG3ZuprYA==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.15.0.tgz", + "integrity": "sha512-pXHnw79qmfN5bAVkgdQMCnq7rZFxfGU1YkZJQAG+gCsLRpDgYxgxZYhkbdRJzyF8vMYiCp7HlNsCMvBA75Rpug==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/runtime": "^7.15.4", @@ -36482,8 +36480,8 @@ "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -36496,9 +36494,9 @@ "integrity": "sha512-qLOvfmlG2vCVw5fo/oz8WAZYlpe5a5OurgTj3diIxJCdjRHpapC+vQCz3er9LV79Vcat+DifBjeAhOAdmndtDQ==" }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -36743,9 +36741,9 @@ } }, "gatsby-worker": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.13.0.tgz", - "integrity": "sha512-kqIgks5GQV9xw/5ewMAC/OeRiSoy8kISz75q5DSSu8uHFWf5L1hrhVnWZIYSjSgrD/9BjM0rLhNh9vz82sgb8w==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.15.0.tgz", + "integrity": "sha512-N8vxDaUe12Nzy/so83yVewmkpMVnpFRupHykd/ysd65jMsRGyhsmVt/zAhGMyp0MIbJtORV2NDEU2+kF5beXxQ==", "requires": { "@babel/core": "^7.15.5", "@babel/runtime": "^7.15.4" @@ -36863,11 +36861,6 @@ "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, "gifwrap": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", @@ -36907,16 +36900,26 @@ } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "glob-parent": { @@ -37155,6 +37158,21 @@ "graphql-playground-html": "^1.6.29" } }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "graphql-type-json": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.3.2.tgz", @@ -37190,12 +37208,11 @@ } }, "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "duplexer": "^0.1.2" } }, "hard-rejection": { @@ -37244,65 +37261,6 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -37590,9 +37548,14 @@ "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=" }, "immer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", - "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==" + "version": "9.0.14", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.14.tgz", + "integrity": "sha512-ubBeqQutOSLIFCUBN03jGeOS6a3DoYlSYwYJTa+gSKEZKU5redJIqkIdZ3JVv/4RZpfcXdAWH5zCNLWPRv2WDw==" + }, + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==" }, "import-fresh": { "version": "3.2.1", @@ -37621,7 +37584,7 @@ "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" }, "imurmurhash": { "version": "0.1.4", @@ -37786,19 +37749,20 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, "is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -37874,14 +37838,6 @@ "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -37892,16 +37848,6 @@ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -37952,7 +37898,7 @@ "is-invalid-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", "requires": { "is-glob": "^2.0.0" }, @@ -37960,12 +37906,12 @@ "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==" }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "requires": { "is-extglob": "^1.0.0" } @@ -38131,7 +38077,7 @@ "is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", "requires": { "is-invalid-path": "^0.1.0" } @@ -38288,11 +38234,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/json-source-map/-/json-source-map-0.6.1.tgz", - "integrity": "sha512-1QoztHPsMQqhDq0hlXY5ZqcEdUzxQEIxgFkKl4WUp2pgShObl+9ovi4kRh2TfvAfxAoHOJ9vIMEqk3k4iex7tg==" - }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -38397,17 +38338,60 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "lmdb": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.6.tgz", - "integrity": "sha512-UmQV0oZZcV3EN6rjcAjIiuWcc3MYZGWQ0GUYz46Ron5fuTa/dUow7WSQa6leFkvZIKVUdECBWVw96tckfEzUFQ==", - "requires": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.3.10.tgz", + "integrity": "sha512-GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==", + "requires": { + "lmdb-darwin-arm64": "2.3.10", + "lmdb-darwin-x64": "2.3.10", + "lmdb-linux-arm": "2.3.10", + "lmdb-linux-arm64": "2.3.10", + "lmdb-linux-x64": "2.3.10", + "lmdb-win32-x64": "2.3.10", "msgpackr": "^1.5.4", "nan": "^2.14.2", - "node-gyp-build": "^4.2.3", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "^4.3.2", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" } }, + "lmdb-darwin-arm64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.10.tgz", + "integrity": "sha512-LVXbH2MYu7/ZuQ8+P9rv+SwNyBKltxo7vHAGJS94HWyfwnCbKEYER9PImBvNBwzvgtaYk6x0RMX3oor6e6KdDQ==", + "optional": true + }, + "lmdb-darwin-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.10.tgz", + "integrity": "sha512-gAc/1b/FZOb9yVOT+o0huA+hdW82oxLo5r22dFTLoRUFG1JMzxdTjmnW6ONVOHdqC9a5bt3vBCEY3jmXNqV26A==", + "optional": true + }, + "lmdb-linux-arm": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.10.tgz", + "integrity": "sha512-Rb8+4JjsThuEcJ7GLLwFkCFnoiwv/3hAAbELWITz70buQFF+dCZvCWWgEgmDTxwn5r+wIkdUjmFv4dqqiKQFmQ==", + "optional": true + }, + "lmdb-linux-arm64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.10.tgz", + "integrity": "sha512-Ihr8mdICTK3jA4GXHxrXGK2oekn0mY6zuDSXQDNtyRSH19j3D2Y04A7SEI9S0EP/t5sjKSudYgZbiHDxRCsI5A==", + "optional": true + }, + "lmdb-linux-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.10.tgz", + "integrity": "sha512-E3l3pDiCA9uvnLf+t3qkmBGRO01dp1EHD0x0g0iRnfpAhV7wYbayJGfG93BUt22Tj3fnq4HDo4dQ6ZWaDI1nuw==", + "optional": true + }, + "lmdb-win32-x64": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.10.tgz", + "integrity": "sha512-gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==", + "optional": true + }, "load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -38509,7 +38493,7 @@ "lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==" }, "lodash.defaults": { "version": "4.2.0", @@ -38725,21 +38709,13 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" }, "map-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==" }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, "markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -39409,11 +39385,6 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, "micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -39608,25 +39579,6 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -39754,43 +39706,6 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -39895,6 +39810,16 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" }, + "node-gyp-build-optional-packages": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.5.tgz", + "integrity": "sha512-5ke7D8SiQsTQL7CkHpfR1tLwfqtKc0KYEmlnkwd40jHCASskZeS98qoZ1qDUns2aUQWikcjidRUs6PM/3iyN/w==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, "node-object-hash": { "version": "2.3.10", "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", @@ -40016,72 +39941,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -40097,21 +39956,6 @@ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -40161,21 +40005,6 @@ "es-abstract": "^1.19.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "object.values": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", @@ -40248,9 +40077,9 @@ } }, "ordered-binary": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.4.tgz", - "integrity": "sha512-A/csN0d3n+igxBPfUrjbV5GC69LWj2pjZzAAeeHXLukQ4+fytfP4T1Lg0ju7MSPSwq7KtHkGaiwO8URZN5IpLg==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz", + "integrity": "sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==" }, "original": { "version": "1.0.2", @@ -40420,6 +40249,16 @@ "is-hexadecimal": "^1.0.0" } }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, "parse-headers": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", @@ -40534,11 +40373,6 @@ } } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, "password-prompt": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", @@ -40581,6 +40415,19 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -40626,11 +40473,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -40688,7 +40530,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" } } }, @@ -40710,11 +40552,6 @@ "@babel/runtime": "^7.17.8" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "postcss": { "version": "8.4.13", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", @@ -40848,6 +40685,14 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -41117,55 +40962,66 @@ } }, "react-dev-utils": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz", - "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", "requires": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "@babel/highlight": "^7.10.4" + "color-convert": "^2.0.1" } }, - "browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", - "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "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==" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -41177,52 +41033,68 @@ } }, "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "p-locate": "^5.0.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, - "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -41237,11 +41109,19 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" } }, "which": { @@ -41264,9 +41144,9 @@ } }, "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "react-fast-compare": { "version": "3.2.0", @@ -41437,34 +41317,6 @@ "@babel/runtime": "^7.8.4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "regexp.prototype.flags": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", @@ -41528,6 +41380,85 @@ } } }, + "relay-compiler": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-SWqeSQZ+AMU/Cr7iZsHi1e78Z7oh00I5SvR092iCJq79aupqJ6Ds+I1Pz/Vzo5uY5PY0jvC4rBJXzlIN5g9boQ==", + "requires": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "relay-runtime": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "requires": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, "remark": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", @@ -41870,20 +41801,15 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "requires": { "boolbase": "^1.0.0" } } } }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -41925,11 +41851,13 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-alpn": { @@ -41979,11 +41907,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "retext-english": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz", @@ -42052,14 +41975,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -42293,16 +42208,10 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.2.0", @@ -42371,9 +42280,9 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" }, "side-channel": { "version": "1.0.4", @@ -42390,6 +42299,11 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=" + }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -42514,148 +42428,6 @@ "no-case": "^2.2.0" } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "socket.io": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", @@ -42787,30 +42559,18 @@ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", "requires": { - "extend-shallow": "^3.0.0" + "tslib": "^2.0.3" }, "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" } } }, @@ -42857,81 +42617,6 @@ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "static-site-generator-webpack-plugin": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-3.4.2.tgz", @@ -43648,64 +43333,11 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -43790,13 +43422,13 @@ } }, "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { @@ -43882,6 +43514,11 @@ "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "peer": true }, + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -43969,17 +43606,6 @@ "vfile": "^4.0.0" } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -44274,47 +43900,6 @@ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } - } - }, "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -44543,11 +44128,6 @@ "prepend-http": "^2.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, "use-editable": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", @@ -44617,6 +44197,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -45124,14 +44709,6 @@ "workbox-core": "^4.3.1" } }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "requires": { - "microevent.ts": "~0.1.1" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", diff --git a/docs/package.json b/docs/package.json index 50a1c2d55391..7e02a677cf07 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,7 +10,7 @@ "@emotion/styled": "^11.8.1", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.16", - "gatsby": "^4.13.1", + "gatsby": "^4.15.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.13.0", From dcf46d44c37d04d31db9dd0f29a0df487d6d34e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 02:43:25 +0200 Subject: [PATCH 025/162] build(deps): bump gatsby-remark-images from 6.13.0 to 6.15.1 in /docs (#2898) --- docs/package-lock.json | 18 +++++++++--------- docs/package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index d278e9290611..290cff05c7dc 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -32,7 +32,7 @@ "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.13.0", "gatsby-remark-external-links": "^0.0.4", - "gatsby-remark-images": "^6.13.0", + "gatsby-remark-images": "^6.15.1", "gatsby-remark-mermaid": "^2.1.0", "gatsby-remark-responsive-iframe": "^5.13.0", "gatsby-source-filesystem": "^4.13.0", @@ -13619,15 +13619,15 @@ } }, "node_modules/gatsby-remark-images": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.13.0.tgz", - "integrity": "sha512-vooMZq0HmxlQMXofIJ2lFBF9pEuEOTvRPbn2HwL6vWw2L46hL13ZsnwyJge6ZO4DtGlk3c4RlHXybEEhyWmLKw==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.15.1.tgz", + "integrity": "sha512-haFfwV2qzpw8iaSnE4Sh8ZLfSodryIQShEfZw/Fjkc2c+oNvZqJSRayYo2QDUNzP63EYR0QfPY/FAhZhwPy9cw==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.13.0", + "gatsby-core-utils": "^3.15.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "mdast-util-definitions": "^4.0.0", @@ -36131,15 +36131,15 @@ } }, "gatsby-remark-images": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.13.0.tgz", - "integrity": "sha512-vooMZq0HmxlQMXofIJ2lFBF9pEuEOTvRPbn2HwL6vWw2L46hL13ZsnwyJge6ZO4DtGlk3c4RlHXybEEhyWmLKw==", + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.15.1.tgz", + "integrity": "sha512-haFfwV2qzpw8iaSnE4Sh8ZLfSodryIQShEfZw/Fjkc2c+oNvZqJSRayYo2QDUNzP63EYR0QfPY/FAhZhwPy9cw==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.13.0", + "gatsby-core-utils": "^3.15.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "mdast-util-definitions": "^4.0.0", diff --git a/docs/package.json b/docs/package.json index 7e02a677cf07..7a222aabffb4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -29,7 +29,7 @@ "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.13.0", "gatsby-remark-external-links": "^0.0.4", - "gatsby-remark-images": "^6.13.0", + "gatsby-remark-images": "^6.15.1", "gatsby-remark-mermaid": "^2.1.0", "gatsby-remark-responsive-iframe": "^5.13.0", "gatsby-source-filesystem": "^4.13.0", From 528913fe91c21969b8ea8b0345e1652e4589e350 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 10:03:52 +0300 Subject: [PATCH 026/162] build(deps): bump gatsby-plugin-manifest from 4.13.0 to 4.15.1 in /docs (#2899) Bumps [gatsby-plugin-manifest](https://github.com/gatsbyjs/gatsby/tree/HEAD/packages/gatsby-plugin-manifest) from 4.13.0 to 4.15.1. - [Release notes](https://github.com/gatsbyjs/gatsby/releases) - [Changelog](https://github.com/gatsbyjs/gatsby/blob/gatsby-plugin-manifest@4.15.1/packages/gatsby-plugin-manifest/CHANGELOG.md) - [Commits](https://github.com/gatsbyjs/gatsby/commits/gatsby-plugin-manifest@4.15.1/packages/gatsby-plugin-manifest) --- updated-dependencies: - dependency-name: gatsby-plugin-manifest dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 38 +++++++++++++++++++------------------- docs/package.json | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 290cff05c7dc..12d3d64636f7 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -19,7 +19,7 @@ "gatsby-plugin-catch-links": "^4.13.0", "gatsby-plugin-emotion": "^7.13.0", "gatsby-plugin-google-analytics": "^4.13.0", - "gatsby-plugin-manifest": "^4.13.0", + "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.13.0", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", @@ -12587,14 +12587,14 @@ } }, "node_modules/gatsby-plugin-manifest": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-4.13.0.tgz", - "integrity": "sha512-Ifa6P86CeKgZrgcO6Q++WpupyWJ+zfT6U0dL+vfJ/9i+s+Z69saRY6JStI0ivN3LpotOLSOasDSEQO44089ihg==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-4.15.1.tgz", + "integrity": "sha512-tlXO2TGpDU2fmBBpNDadAQdfaZiKt+yB1m8O5tEvpMmW00n7qsaicteNRCNgX9Ex/sgircd9Dvph4hvy7zyesw==", "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.13.0", - "gatsby-plugin-utils": "^3.7.0", - "semver": "^7.3.5", + "gatsby-core-utils": "^3.15.0", + "gatsby-plugin-utils": "^3.9.1", + "semver": "^7.3.7", "sharp": "^0.30.3" }, "engines": { @@ -12605,9 +12605,9 @@ } }, "node_modules/gatsby-plugin-manifest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -35381,21 +35381,21 @@ } }, "gatsby-plugin-manifest": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-4.13.0.tgz", - "integrity": "sha512-Ifa6P86CeKgZrgcO6Q++WpupyWJ+zfT6U0dL+vfJ/9i+s+Z69saRY6JStI0ivN3LpotOLSOasDSEQO44089ihg==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-4.15.1.tgz", + "integrity": "sha512-tlXO2TGpDU2fmBBpNDadAQdfaZiKt+yB1m8O5tEvpMmW00n7qsaicteNRCNgX9Ex/sgircd9Dvph4hvy7zyesw==", "requires": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.13.0", - "gatsby-plugin-utils": "^3.7.0", - "semver": "^7.3.5", + "gatsby-core-utils": "^3.15.0", + "gatsby-plugin-utils": "^3.9.1", + "semver": "^7.3.7", "sharp": "^0.30.3" }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } diff --git a/docs/package.json b/docs/package.json index 7a222aabffb4..2555830a39e2 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,7 +16,7 @@ "gatsby-plugin-catch-links": "^4.13.0", "gatsby-plugin-emotion": "^7.13.0", "gatsby-plugin-google-analytics": "^4.13.0", - "gatsby-plugin-manifest": "^4.13.0", + "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.13.0", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", From a0b5b699f011b2525e524afc7ea92dc09709394a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 21:56:22 +0200 Subject: [PATCH 027/162] build(deps): bump gatsby-plugin-mdx from 3.13.0 to 3.15.2 in /docs (#2904) Co-authored-by: Fernandez Ludovic --- docs/package-lock.json | 50 +++++++++++++++++++++--------------------- docs/package.json | 2 +- netlify.toml | 12 ++++++++++ 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 12d3d64636f7..bcb8e8ba44dc 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -20,7 +20,7 @@ "gatsby-plugin-emotion": "^7.13.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", - "gatsby-plugin-mdx": "^3.13.0", + "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.13.0", @@ -12619,9 +12619,9 @@ } }, "node_modules/gatsby-plugin-mdx": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-3.13.0.tgz", - "integrity": "sha512-becJF14ChRlkQkeYOR7GzuDNCK0yqax5/BkDHo3pNorh5arxe2jMZm7Kvru8CQa+R9fSHZQY16IEivT9/08QOQ==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-3.15.2.tgz", + "integrity": "sha512-TsEgeAq40x7IwABXZkZcGStltr6gr3DnGjmhq4QZKapjtsPeTzWKp9HhB93t0OCDD9AfWUCH/teQq0rFTvsaEw==", "dependencies": { "@babel/core": "^7.15.5", "@babel/generator": "^7.15.4", @@ -12633,13 +12633,13 @@ "@babel/types": "^7.15.4", "camelcase-css": "^2.0.1", "change-case": "^3.1.0", - "core-js": "^3.17.2", + "core-js": "^3.22.3", "dataloader": "^1.4.0", "debug": "^4.3.1", "escape-string-regexp": "^1.0.5", "eval": "^0.1.4", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", "gray-matter": "^4.0.2", "json5": "^2.1.3", "loader-utils": "^1.4.0", @@ -12697,9 +12697,9 @@ } }, "node_modules/gatsby-plugin-mdx/node_modules/core-js": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz", - "integrity": "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==", + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", + "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -12707,9 +12707,9 @@ } }, "node_modules/gatsby-plugin-mdx/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -35403,9 +35403,9 @@ } }, "gatsby-plugin-mdx": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-3.13.0.tgz", - "integrity": "sha512-becJF14ChRlkQkeYOR7GzuDNCK0yqax5/BkDHo3pNorh5arxe2jMZm7Kvru8CQa+R9fSHZQY16IEivT9/08QOQ==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-3.15.2.tgz", + "integrity": "sha512-TsEgeAq40x7IwABXZkZcGStltr6gr3DnGjmhq4QZKapjtsPeTzWKp9HhB93t0OCDD9AfWUCH/teQq0rFTvsaEw==", "requires": { "@babel/core": "^7.15.5", "@babel/generator": "^7.15.4", @@ -35417,13 +35417,13 @@ "@babel/types": "^7.15.4", "camelcase-css": "^2.0.1", "change-case": "^3.1.0", - "core-js": "^3.17.2", + "core-js": "^3.22.3", "dataloader": "^1.4.0", "debug": "^4.3.1", "escape-string-regexp": "^1.0.5", "eval": "^0.1.4", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.15.0", "gray-matter": "^4.0.2", "json5": "^2.1.3", "loader-utils": "^1.4.0", @@ -35465,14 +35465,14 @@ } }, "core-js": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz", - "integrity": "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==" + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", + "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==" }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/docs/package.json b/docs/package.json index 2555830a39e2..9604c7f774e7 100644 --- a/docs/package.json +++ b/docs/package.json @@ -17,7 +17,7 @@ "gatsby-plugin-emotion": "^7.13.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", - "gatsby-plugin-mdx": "^3.13.0", + "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.13.0", diff --git a/netlify.toml b/netlify.toml index 6ebffa4f6f3e..59107f9176f4 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,11 +1,23 @@ [context.production.environment] GO_VERSION = "1.18" NODE_VERSION = "17" + # TODO https://github.com/golangci/golangci-lint/pull/2904#issuecomment-1146870535 +# NPM_FLAGS = "--legacy-peer-deps" +# NPM_FLAGS = "--force" + NPM_VERSION = "8.5.5" [context.deploy-preview.environment] GO_VERSION = "1.18" NODE_VERSION = "17" + # TODO https://github.com/golangci/golangci-lint/pull/2904#issuecomment-1146870535 +# NPM_FLAGS = "--legacy-peer-deps" +# NPM_FLAGS = "--force" + NPM_VERSION = "8.5.5" [context.branch-deploy.environment] GO_VERSION = "1.18" NODE_VERSION = "17" + # TODO https://github.com/golangci/golangci-lint/pull/2904#issuecomment-1146870535 +# NPM_FLAGS = "--legacy-peer-deps" +# NPM_FLAGS = "--force" + NPM_VERSION = "8.5.5" From c6fd368c89af67e576e8d164772754c070ad47f6 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sun, 5 Jun 2022 23:16:21 +0300 Subject: [PATCH 028/162] dev: preallocate some slices and maps (#2902) --- pkg/config/linters_settings_gocritic.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/config/linters_settings_gocritic.go b/pkg/config/linters_settings_gocritic.go index 9a3d03d93e2f..7f6905f5f952 100644 --- a/pkg/config/linters_settings_gocritic.go +++ b/pkg/config/linters_settings_gocritic.go @@ -47,7 +47,7 @@ func debugChecksListf(checks []string, format string, args ...interface{}) { } func stringsSliceToSet(ss []string) map[string]bool { - ret := map[string]bool{} + ret := make(map[string]bool, len(ss)) for _, s := range ss { ret[s] = true } @@ -72,7 +72,7 @@ func gocriticCheckerTagsDebugf() { tagToCheckers := buildGocriticTagToCheckersMap() - var allTags []string + allTags := make([]string, 0, len(tagToCheckers)) for tag := range tagToCheckers { allTags = append(allTags, tag) } @@ -114,7 +114,7 @@ func (s *GocriticSettings) InferEnabledChecks(log logutils.Log) { disabledByDefaultChecks := getDefaultDisabledGocriticCheckersNames() debugChecksListf(disabledByDefaultChecks, "Disabled by default") - var enabledChecks []string + enabledChecks := make([]string, 0, len(s.EnabledTags)+len(enabledByDefaultChecks)) // EnabledTags if len(s.EnabledTags) != 0 { @@ -192,7 +192,7 @@ func validateStringsUniq(ss []string) error { } func intersectStringSlice(s1, s2 []string) []string { - s1Map := make(map[string]struct{}) + s1Map := make(map[string]struct{}, len(s1)) for _, s := range s1 { s1Map[s] = struct{}{} } @@ -253,7 +253,7 @@ func (s *GocriticSettings) IsCheckEnabled(name string) bool { } func sprintAllowedCheckerNames(allowedNames map[string]bool) string { - var namesSlice []string + namesSlice := make([]string, 0, len(allowedNames)) for name := range allowedNames { namesSlice = append(namesSlice, name) } @@ -267,7 +267,7 @@ func sprintStrings(ss []string) string { // getAllCheckerNames returns a map containing all checker names supported by gocritic. func getAllCheckerNames() map[string]bool { - allCheckerNames := map[string]bool{} + allCheckerNames := make(map[string]bool, len(allGocriticCheckers)) for _, checker := range allGocriticCheckers { allCheckerNames[strings.ToLower(checker.Name)] = true } @@ -336,7 +336,7 @@ func (s *GocriticSettings) validateCheckerNames(log logutils.Log) error { } func (s *GocriticSettings) GetLowercasedParams() map[string]GocriticCheckSettings { - ret := map[string]GocriticCheckSettings{} + ret := make(map[string]GocriticCheckSettings, len(s.SettingsPerCheck)) for checker, params := range s.SettingsPerCheck { ret[strings.ToLower(checker)] = params } From d7e312d2c2c5f02e40cb84e39cce03cce4f795f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 23:12:20 +0200 Subject: [PATCH 029/162] build(deps): bump devcert from 1.2.0 to 1.2.1 in /docs (#2905) --- docs/package-lock.json | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index bcb8e8ba44dc..846381328fb1 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -9525,9 +9525,9 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/devcert": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.2.0.tgz", - "integrity": "sha512-Tca9LUcmDegqTxlnQLTxVARS3MqYT+eWJfskXykefknT9jPoSJEA+t5BkDq5C5Tz+gVmAWmOH5vvKMfLJO/UhQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.2.1.tgz", + "integrity": "sha512-R7DqtMtsNmFVY75kzRHXON3hXoJili2xxlEcZgHi0VHSx8aJECfm7ZqAquXzTeAM/I9f8G2pHc/zq5k6iXHQzA==", "dependencies": { "@types/configstore": "^2.1.1", "@types/debug": "^0.0.30", @@ -9544,6 +9544,7 @@ "eol": "^0.9.1", "get-port": "^3.2.0", "glob": "^7.1.2", + "is-valid-domain": "^0.1.6", "lodash": "^4.17.4", "mkdirp": "^0.5.1", "password-prompt": "^1.0.4", @@ -16587,6 +16588,14 @@ "upper-case": "^1.1.0" } }, + "node_modules/is-valid-domain": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", + "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", + "dependencies": { + "punycode": "^2.1.1" + } + }, "node_modules/is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", @@ -32819,9 +32828,9 @@ } }, "devcert": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.2.0.tgz", - "integrity": "sha512-Tca9LUcmDegqTxlnQLTxVARS3MqYT+eWJfskXykefknT9jPoSJEA+t5BkDq5C5Tz+gVmAWmOH5vvKMfLJO/UhQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.2.1.tgz", + "integrity": "sha512-R7DqtMtsNmFVY75kzRHXON3hXoJili2xxlEcZgHi0VHSx8aJECfm7ZqAquXzTeAM/I9f8G2pHc/zq5k6iXHQzA==", "requires": { "@types/configstore": "^2.1.1", "@types/debug": "^0.0.30", @@ -32838,6 +32847,7 @@ "eol": "^0.9.1", "get-port": "^3.2.0", "glob": "^7.1.2", + "is-valid-domain": "^0.1.6", "lodash": "^4.17.4", "mkdirp": "^0.5.1", "password-prompt": "^1.0.4", @@ -38074,6 +38084,14 @@ "upper-case": "^1.1.0" } }, + "is-valid-domain": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", + "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", + "requires": { + "punycode": "^2.1.1" + } + }, "is-valid-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", From 92d7022d408fb9d92105d73ee309219ae13a2e60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 13:16:29 +0800 Subject: [PATCH 030/162] build(deps): bump github.com/nishanths/exhaustive from 0.7.11 to 0.8.1 (#2906) Bumps [github.com/nishanths/exhaustive](https://github.com/nishanths/exhaustive) from 0.7.11 to 0.8.1. - [Release notes](https://github.com/nishanths/exhaustive/releases) - [Commits](https://github.com/nishanths/exhaustive/compare/v0.7.11...v0.8.1) --- updated-dependencies: - dependency-name: github.com/nishanths/exhaustive dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[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 741d5188c942..138e865256f9 100644 --- a/go.mod +++ b/go.mod @@ -64,7 +64,7 @@ require ( github.com/mitchellh/go-ps v1.0.0 github.com/moricho/tparallel v0.2.1 github.com/nakabonne/nestif v0.3.1 - github.com/nishanths/exhaustive v0.7.11 + github.com/nishanths/exhaustive v0.8.1 github.com/nishanths/predeclared v0.2.2 github.com/pkg/errors v0.9.1 github.com/polyfloyd/go-errorlint v1.0.0 diff --git a/go.sum b/go.sum index 3f2d4c19ed50..71f72f496d37 100644 --- a/go.sum +++ b/go.sum @@ -584,8 +584,8 @@ github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6Fx github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nishanths/exhaustive v0.7.11 h1:xV/WU3Vdwh5BUH4N06JNUznb6d5zhRPOnlgCrpNYNKA= -github.com/nishanths/exhaustive v0.7.11/go.mod h1:gX+MP7DWMKJmNa1HfMozK+u04hQd3na9i0hyqf3/dOI= +github.com/nishanths/exhaustive v0.8.1 h1:0QKNascWv9qIHY7zRoZSxeRr6kuk5aAT3YXLTiDmjTo= +github.com/nishanths/exhaustive v0.8.1/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= @@ -834,7 +834,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.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= @@ -977,7 +976,6 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/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= @@ -1093,7 +1091,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/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-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1223,7 +1220,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= From 6a412d3d1072b28b6815da963889285a24e4917f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 13:16:40 +0800 Subject: [PATCH 031/162] build(deps): bump github.com/kunwardeep/paralleltest from 1.0.3 to 1.0.4 (#2907) * build(deps): bump github.com/kunwardeep/paralleltest from 1.0.3 to 1.0.4 Bumps [github.com/kunwardeep/paralleltest](https://github.com/kunwardeep/paralleltest) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/kunwardeep/paralleltest/releases) - [Commits](https://github.com/kunwardeep/paralleltest/compare/v1.0.3...v1.0.4) --- updated-dependencies: - dependency-name: github.com/kunwardeep/paralleltest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix: linter Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Fernandez Ludovic --- go.mod | 2 +- go.sum | 4 ++-- pkg/golinters/paralleltest.go | 2 +- pkg/lint/lintersdb/manager.go | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 138e865256f9..ebbb7e79822a 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( github.com/julz/importas v0.1.0 github.com/kisielk/errcheck v1.6.1 github.com/kulti/thelper v0.6.3 - github.com/kunwardeep/paralleltest v1.0.3 + github.com/kunwardeep/paralleltest v1.0.4 github.com/kyoh86/exportloopref v0.1.8 github.com/ldez/gomoddirectives v0.2.3 github.com/ldez/tagliatelle v0.3.1 diff --git a/go.sum b/go.sum index 71f72f496d37..6a53383c875b 100644 --- a/go.sum +++ b/go.sum @@ -488,8 +488,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/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.3 h1:UdKIkImEAXjR1chUWLn+PNXqWUGs//7tzMeWuP7NhmI= -github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= +github.com/kunwardeep/paralleltest v1.0.4 h1:4hBG0jsh8mELqkU9fUtzsXPp7jOlm86DywicsSwet3E= +github.com/kunwardeep/paralleltest v1.0.4/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= diff --git a/pkg/golinters/paralleltest.go b/pkg/golinters/paralleltest.go index 68627961822d..8631bf6ec6e9 100644 --- a/pkg/golinters/paralleltest.go +++ b/pkg/golinters/paralleltest.go @@ -13,5 +13,5 @@ func NewParallelTest() *goanalysis.Linter { "paralleltest detects missing usage of t.Parallel() method in your Go test", []*analysis.Analyzer{paralleltest.NewAnalyzer()}, nil, - ).WithLoadMode(goanalysis.LoadModeSyntax) + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 3eaae9debda8..79777d312b2c 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -616,6 +616,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewParallelTest()). WithSince("v1.33.0"). + WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle, linter.PresetTest). WithURL("https://github.com/kunwardeep/paralleltest"), From ac99dbccc05d39e98d17190569f6990d462ff8c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 13:16:46 +0800 Subject: [PATCH 032/162] build(deps): bump github.com/shirou/gopsutil/v3 from 3.22.4 to 3.22.5 (#2908) Bumps [github.com/shirou/gopsutil/v3](https://github.com/shirou/gopsutil) from 3.22.4 to 3.22.5. - [Release notes](https://github.com/shirou/gopsutil/releases) - [Commits](https://github.com/shirou/gopsutil/compare/v3.22.4...v3.22.5) --- updated-dependencies: - dependency-name: github.com/shirou/gopsutil/v3 dependency-type: direct:production update-type: version-update:semver-patch ... 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 ebbb7e79822a..180f5501f627 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/sanposhiho/wastedassign/v2 v2.0.6 github.com/securego/gosec/v2 v2.11.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c - github.com/shirou/gopsutil/v3 v3.22.4 + github.com/shirou/gopsutil/v3 v3.22.5 github.com/sirupsen/logrus v1.8.1 github.com/sivchari/containedctx v1.0.2 github.com/sivchari/tenv v1.5.0 diff --git a/go.sum b/go.sum index 6a53383c875b..26d0864cf708 100644 --- a/go.sum +++ b/go.sum @@ -709,8 +709,8 @@ github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+f github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI= -github.com/shirou/gopsutil/v3 v3.22.4/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= +github.com/shirou/gopsutil/v3 v3.22.5 h1:atX36I/IXgFiB81687vSiBI5zrMsxcIBkP9cQMJQoJA= +github.com/shirou/gopsutil/v3 v3.22.5/go.mod h1:so9G9VzeHt/hsd0YwqprnjHnfARAUktauykSbr+y2gA= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= From 091a641f913821972fd55a58998ff2b55ff7f93c Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 6 Jun 2022 13:19:33 +0200 Subject: [PATCH 033/162] docs: have a clear explanation about the staticcheck integration. (#2894) docs: have a clear state about staticcheck --- pkg/golinters/staticcheck.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/golinters/staticcheck.go b/pkg/golinters/staticcheck.go index 2226eabb4e21..c7b7b3db4b74 100644 --- a/pkg/golinters/staticcheck.go +++ b/pkg/golinters/staticcheck.go @@ -14,7 +14,8 @@ func NewStaticcheck(settings *config.StaticCheckSettings) *goanalysis.Linter { return goanalysis.NewLinter( "staticcheck", - "Staticcheck is a go vet on steroids, applying a ton of static analysis checks", + "It's a set of rules from staticcheck. It's not the same thing as the staticcheck binary."+ + " The author of staticcheck doesn't support or approve the use of staticcheck as a library inside golangci-lint.", analyzers, nil, ).WithLoadMode(goanalysis.LoadModeTypesInfo) From a7bfc6674008abda1fcc1fc73385cddeed5539f5 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 6 Jun 2022 13:20:19 +0200 Subject: [PATCH 034/162] docs: add thanks page (#2893) --- docs/src/config/sidebar.yml | 2 + docs/src/docs/product/roadmap.mdx | 9 ---- docs/src/docs/product/thanks.mdx | 14 +++++ scripts/expand_website_templates/main.go | 69 +++++++++++++++++++----- 4 files changed, 73 insertions(+), 21 deletions(-) create mode 100644 docs/src/docs/product/thanks.mdx diff --git a/docs/src/config/sidebar.yml b/docs/src/config/sidebar.yml index 10608d3d8495..b034cdb4c1b2 100644 --- a/docs/src/config/sidebar.yml +++ b/docs/src/config/sidebar.yml @@ -24,6 +24,8 @@ items: - label: "Roadmap" link: "/product/roadmap/" + - label: "Thanks" + link: "/product/thanks/" - label: "Trusted By" link: "/product/trusted-by/" - label: "GitHub" diff --git a/docs/src/docs/product/roadmap.mdx b/docs/src/docs/product/roadmap.mdx index a2ef72b912c2..feb8c409e391 100644 --- a/docs/src/docs/product/roadmap.mdx +++ b/docs/src/docs/product/roadmap.mdx @@ -14,15 +14,6 @@ Please file an issue for bugs, missing documentation, or unexpected behavior. [See Bugs](https://github.com/golangci/golangci-lint/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3A%22bug%22+sort%3Acreated-desc) -## Thanks - -Thanks to all [contributors](https://github.com/golangci/golangci-lint/graphs/contributors)! -Thanks to [alecthomas/gometalinter](https://github.com/alecthomas/gometalinter) for inspiration and amazing work. -Thanks to [bradleyfalzon/revgrep](https://github.com/bradleyfalzon/revgrep) for cool diff tool. - -Thanks to developers and authors of used linters: -{.ThanksList} - ## Changelog {.ChangeLog} diff --git a/docs/src/docs/product/thanks.mdx b/docs/src/docs/product/thanks.mdx new file mode 100644 index 000000000000..6c931130f181 --- /dev/null +++ b/docs/src/docs/product/thanks.mdx @@ -0,0 +1,14 @@ +--- +title: Thanks +--- + +## ❤️ + +Thanks to all [contributors](https://github.com/golangci/golangci-lint/graphs/contributors)! + +Thanks to [alecthomas/gometalinter](https://github.com/alecthomas/gometalinter) for inspiration and amazing work. +Thanks to [bradleyfalzon/revgrep](https://github.com/bradleyfalzon/revgrep) for cool diff tool. + +Thanks to developers and authors of used linters: + +{.ThanksList} diff --git a/scripts/expand_website_templates/main.go b/scripts/expand_website_templates/main.go index ca29f251ab2b..4e8e2dcc3f21 100644 --- a/scripts/expand_website_templates/main.go +++ b/scripts/expand_website_templates/main.go @@ -313,34 +313,79 @@ func spanWithID(id, title, icon string) string { return fmt.Sprintf(`%s`, id, title, icon) } +type authorDetails struct { + Linters []string + Profile string + Avatar string +} + func getThanksList() string { - var lines []string - addedAuthors := map[string]bool{} + addedAuthors := map[string]*authorDetails{} + for _, lc := range lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs() { if lc.OriginalURL == "" { continue } - const githubPrefix = "https://github.com/" - if !strings.HasPrefix(lc.OriginalURL, githubPrefix) { - continue + linterURL := lc.OriginalURL + if lc.Name() == "staticcheck" { + linterURL = "https://github.com/dominikh/go-tools" } - githubSuffix := strings.TrimPrefix(lc.OriginalURL, githubPrefix) - githubAuthor := strings.Split(githubSuffix, "/")[0] - if addedAuthors[githubAuthor] { + if author := extractAuthor(linterURL, "https://github.com/"); author != "" && author != "golangci" { + if _, ok := addedAuthors[author]; ok { + addedAuthors[author].Linters = append(addedAuthors[author].Linters, lc.Name()) + } else { + addedAuthors[author] = &authorDetails{ + Linters: []string{lc.Name()}, + Profile: fmt.Sprintf("[%[1]s](https://github.com/sponsors/%[1]s)", author), + Avatar: fmt.Sprintf(`%[1]s`, author), + } + } + } else if author := extractAuthor(linterURL, "https://gitlab.com/"); author != "" { + if _, ok := addedAuthors[author]; ok { + addedAuthors[author].Linters = append(addedAuthors[author].Linters, lc.Name()) + } else { + addedAuthors[author] = &authorDetails{ + Linters: []string{lc.Name()}, + Profile: fmt.Sprintf("[%[1]s](https://gitlab.com/%[1]s)", author), + } + } + } else { continue } - addedAuthors[githubAuthor] = true + } - line := fmt.Sprintf("- [%s](https://github.com/%s)", - githubAuthor, githubAuthor) - lines = append(lines, line) + var authors []string + for author := range addedAuthors { + authors = append(authors, author) + } + + sort.Slice(authors, func(i, j int) bool { + return strings.ToLower(authors[i]) < strings.ToLower(authors[j]) + }) + + lines := []string{ + "|Author|Linter(s)|", + "|---|---|", + } + + for _, author := range authors { + lines = append(lines, fmt.Sprintf("|%s %s|%s|", + addedAuthors[author].Avatar, addedAuthors[author].Profile, strings.Join(addedAuthors[author].Linters, ", "))) } return strings.Join(lines, "\n") } +func extractAuthor(originalURL, prefix string) string { + if !strings.HasPrefix(originalURL, prefix) { + return "" + } + + return strings.SplitN(strings.TrimPrefix(originalURL, prefix), "/", 2)[0] +} + type SettingSnippets struct { ConfigurationFile string LintersSettings string From 8d2eb67e4f5e16f4fec5944c6c4f1b660492b06b Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 6 Jun 2022 14:20:38 +0300 Subject: [PATCH 035/162] docs(gomnd): fix typo (#2909) --- .golangci.reference.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index b5b4a70cef6e..dd7d188d364f 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -641,7 +641,7 @@ linters-settings: ignored-files: - 'magic1_.*.go' # List of function patterns to exclude from analysis. - # Values always ignored: `time.Time` + # Values always ignored: `time.Date` # Default: [] ignored-functions: - 'math.*' From c531fc2ad559624436ff66ca77aa306f47c47442 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 6 Jun 2022 14:21:04 +0300 Subject: [PATCH 036/162] gosec: allow `global` config (#2880) --- .golangci.reference.yml | 14 ++++++++++++++ pkg/golinters/gosec.go | 9 ++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index dd7d188d364f..7451c8e361a7 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -797,6 +797,20 @@ linters-settings: # To specify the configuration of rules. config: + # Globals are applicable to all rules. + global: + # If true, ignore #nosec in comments (and an alternative as well). + # Default: false + nosec: true + # Add an alternative comment prefix to #nosec (both will work at the same time). + # Default: "" + "#nosec": "#my-custom-nosec" + # Define whether nosec issues are counted as finding or not. + # Default: false + show-ignored: true + # Audit mode enables addition checks that for normal code analysis might be too nosy. + # Default: false + audit: true G101: # Regexp pattern for variables and constants to find. # Default: "(?i)passwd|pass|password|pwd|secret|token|pw|apiKey|bearer|cred" diff --git a/pkg/golinters/gosec.go b/pkg/golinters/gosec.go index e861cc87aab6..3b102a92f539 100644 --- a/pkg/golinters/gosec.go +++ b/pkg/golinters/gosec.go @@ -34,9 +34,12 @@ func NewGosec(settings *config.GoSecSettings) *goanalysis.Linter { filters = gosecRuleFilters(settings.Includes, settings.Excludes) for k, v := range settings.Config { - // Uses ToUpper because the parsing of the map's key change the key to lowercase. - // The value is not impacted by that: the case is respected. - conf.Set(strings.ToUpper(k), v) + if k != gosec.Globals { + // Uses ToUpper because the parsing of the map's key change the key to lowercase. + // The value is not impacted by that: the case is respected. + k = strings.ToUpper(k) + } + conf.Set(k, v) } } From f03a5207c8543bd51c5652cd809c973dcc3cadaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Jun 2022 13:31:00 +0200 Subject: [PATCH 037/162] build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2 (#2917) --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 180f5501f627..9b601acbb01e 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 - github.com/stretchr/testify v1.7.1 + github.com/stretchr/testify v1.7.2 github.com/sylvia7788/contextcheck v1.0.4 github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 diff --git a/go.sum b/go.sum index 26d0864cf708..d06dfae20be4 100644 --- a/go.sum +++ b/go.sum @@ -767,8 +767,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P 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 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI= github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= From c766184c97aac579a7a7006da563f13b03023ffe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Jun 2022 13:31:21 +0200 Subject: [PATCH 038/162] build(deps): bump github.com/GaijinEntertainment/go-exhaustruct/v2 from 2.1.0 to 2.2.0 (#2916) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9b601acbb01e..aca82c33eb8c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Antonboom/nilnil v0.1.1 github.com/BurntSushi/toml v1.1.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 - github.com/GaijinEntertainment/go-exhaustruct/v2 v2.1.0 + github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 github.com/OpenPeeDeeP/depguard v1.1.0 github.com/alexkohler/prealloc v1.0.0 github.com/ashanbrown/forbidigo v1.3.0 @@ -99,7 +99,7 @@ require ( github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 gitlab.com/bosi/decorder v0.2.1 - golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 + golang.org/x/tools v0.1.11 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 mvdan.cc/gofumpt v0.3.1 diff --git a/go.sum b/go.sum index d06dfae20be4..bbd658ddb167 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.1.0 h1:LAPPhJ4KR5Z8aKVZF5S48csJkxL5RMKmE/98fMs1u5M= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.1.0/go.mod h1:LGOGuvEgCfCQsy3JF2tRmpGDpzA53iZfyGEWSPwQ6/4= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 h1:V9xVvhKbLt7unNEGAruK1xXglyc668Pq3Xx0MNTNqpo= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0/go.mod h1:n/vLeA7V+QY84iYAGwMkkUUp9ooeuftMEvaDrSVch+Q= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -1225,8 +1225,8 @@ golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9 h1:/IsvdCr9GrirHTBBfgW/iJ4uDhMPf+OnOLrp4og7MzU= -golang.org/x/tools v0.1.11-0.20220518213611-904e24e9fcf9/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY= +golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= 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 97eea6ea4921f4594b917b38fae52506a46ea018 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Jun 2022 13:43:23 +0200 Subject: [PATCH 039/162] build(deps): bump github.com/kunwardeep/paralleltest from 1.0.4 to 1.0.6 (#2918) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 5 +++++ go.mod | 2 +- go.sum | 4 ++-- pkg/config/linters_settings.go | 5 +++++ pkg/golinters/paralleltest.go | 18 +++++++++++++++--- pkg/lint/lintersdb/manager.go | 4 +++- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 7451c8e361a7..7ec6344aff72 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1152,6 +1152,11 @@ linters-settings: # Default: false require-specific: true + paralleltest: + # Ignore missing calls to `t.Parallel()` and only report incorrect uses of it. + # Default: false + ignore-missing: true + prealloc: # IMPORTANT: we don't recommend using this linter before doing performance profiling. # For most programs usage of prealloc will be a premature optimization. diff --git a/go.mod b/go.mod index aca82c33eb8c..b1990b3d4b07 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( github.com/julz/importas v0.1.0 github.com/kisielk/errcheck v1.6.1 github.com/kulti/thelper v0.6.3 - github.com/kunwardeep/paralleltest v1.0.4 + github.com/kunwardeep/paralleltest v1.0.6 github.com/kyoh86/exportloopref v0.1.8 github.com/ldez/gomoddirectives v0.2.3 github.com/ldez/tagliatelle v0.3.1 diff --git a/go.sum b/go.sum index bbd658ddb167..1a4281bfd41b 100644 --- a/go.sum +++ b/go.sum @@ -488,8 +488,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/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.4 h1:4hBG0jsh8mELqkU9fUtzsXPp7jOlm86DywicsSwet3E= -github.com/kunwardeep/paralleltest v1.0.4/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= +github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= +github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 3d47951783f3..f775d208580e 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -158,6 +158,7 @@ type LintersSettings struct { NilNil NilNilSettings Nlreturn NlreturnSettings NoLintLint NoLintLintSettings + ParallelTest ParallelTestSettings Prealloc PreallocSettings Predeclared PredeclaredSettings Promlinter PromlinterSettings @@ -481,6 +482,10 @@ type NoLintLintSettings struct { AllowUnused bool `mapstructure:"allow-unused"` } +type ParallelTestSettings struct { + IgnoreMissing bool `mapstructure:"ignore-missing"` +} + type PreallocSettings struct { Simple bool RangeLoops bool `mapstructure:"range-loops"` diff --git a/pkg/golinters/paralleltest.go b/pkg/golinters/paralleltest.go index 8631bf6ec6e9..5f50a3940269 100644 --- a/pkg/golinters/paralleltest.go +++ b/pkg/golinters/paralleltest.go @@ -4,14 +4,26 @@ import ( "github.com/kunwardeep/paralleltest/pkg/paralleltest" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" ) -func NewParallelTest() *goanalysis.Linter { +func NewParallelTest(settings *config.ParallelTestSettings) *goanalysis.Linter { + a := paralleltest.Analyzer + + var cfg map[string]map[string]interface{} + if settings != nil { + cfg = map[string]map[string]interface{}{ + a.Name: { + "i": settings.IgnoreMissing, + }, + } + } + return goanalysis.NewLinter( "paralleltest", "paralleltest detects missing usage of t.Parallel() method in your Go test", - []*analysis.Analyzer{paralleltest.NewAnalyzer()}, - nil, + []*analysis.Analyzer{paralleltest.Analyzer}, + cfg, ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 79777d312b2c..1c9169c72673 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -147,6 +147,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { nilNilCfg *config.NilNilSettings nlreturnCfg *config.NlreturnSettings noLintLintCfg *config.NoLintLintSettings + parallelTestCfg *config.ParallelTestSettings preallocCfg *config.PreallocSettings predeclaredCfg *config.PredeclaredSettings promlinterCfg *config.PromlinterSettings @@ -216,6 +217,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { nlreturnCfg = &m.cfg.LintersSettings.Nlreturn noLintLintCfg = &m.cfg.LintersSettings.NoLintLint preallocCfg = &m.cfg.LintersSettings.Prealloc + parallelTestCfg = &m.cfg.LintersSettings.ParallelTest predeclaredCfg = &m.cfg.LintersSettings.Predeclared promlinterCfg = &m.cfg.LintersSettings.Promlinter reviveCfg = &m.cfg.LintersSettings.Revive @@ -614,7 +616,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/stbenjam/no-sprintf-host-port"), - linter.NewConfig(golinters.NewParallelTest()). + linter.NewConfig(golinters.NewParallelTest(parallelTestCfg)). WithSince("v1.33.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle, linter.PresetTest). From 4b218e664c8488364a1ebc001c07949073e2d611 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 13 Jun 2022 09:01:05 +0200 Subject: [PATCH 040/162] config: spread go version on linter's configurations (#2913) --- .golangci.reference.yml | 4 ++++ .golangci.yml | 8 ++++++++ pkg/config/linters_settings.go | 7 +++++-- pkg/golinters/staticcheck.go | 1 - pkg/golinters/staticcheck_common.go | 3 +-- pkg/lint/lintersdb/manager.go | 17 +++++++++++++++++ 6 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 7ec6344aff72..0f4d810a1c6d 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -557,6 +557,7 @@ linters-settings: gofumpt: # Select the Go version to target. # Default: "1.15" + # Deprecated: use the global `run.go` instead. lang-version: "1.17" # Module path which contains the source code being formatted. @@ -699,6 +700,7 @@ linters-settings: gosimple: # Select the Go version to target. # Default: 1.13 + # Deprecated: use the global `run.go` instead. go: "1.15" # https://staticcheck.io/docs/options#checks # Default: ["*"] @@ -1543,6 +1545,7 @@ linters-settings: staticcheck: # Select the Go version to target. # Default: "1.13" + # Deprecated: use the global `run.go` instead. go: "1.15" # https://staticcheck.io/docs/options#checks # Default: ["*"] @@ -1551,6 +1554,7 @@ linters-settings: stylecheck: # Select the Go version to target. # Default: 1.13 + # Deprecated: use the global `run.go` instead. go: "1.15" # https://staticcheck.io/docs/options#checks # Default: ["*"] diff --git a/.golangci.yml b/.golangci.yml index 08c56f45a8ea..d8523cc58e47 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -134,6 +134,14 @@ issues: - path: pkg/commands/run.go text: "SA1019: e.cfg.Run.Deadline is deprecated: Deadline exists for historical compatibility and should not be used." + - path: pkg/golinters/gofumpt.go + text: "SA1019: settings.LangVersion is deprecated: use the global `run.go` instead." + - path: pkg/golinters/staticcheck_common.go + text: "SA1019: settings.GoVersion is deprecated: use the global `run.go` instead." + - path: pkg/lint/lintersdb/manager.go + text: "SA1019: (.+).(GoVersion|LangVersion) is deprecated: use the global `run.go` instead." + + run: timeout: 5m go: '1.17' # TODO(ldez): we force to use an old version of Go for the CI and the tests. diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index f775d208580e..32c296ff55ca 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -318,9 +318,11 @@ type GoFmtSettings struct { } type GofumptSettings struct { + ModulePath string `mapstructure:"module-path"` + ExtraRules bool `mapstructure:"extra-rules"` + + // Deprecated: use the global `run.go` instead. LangVersion string `mapstructure:"lang-version"` - ModulePath string `mapstructure:"module-path"` - ExtraRules bool `mapstructure:"extra-rules"` } type GoHeaderSettings struct { @@ -527,6 +529,7 @@ type RowsErrCheckSettings struct { } type StaticCheckSettings struct { + // Deprecated: use the global `run.go` instead. GoVersion string `mapstructure:"go"` Checks []string `mapstructure:"checks"` diff --git a/pkg/golinters/staticcheck.go b/pkg/golinters/staticcheck.go index c7b7b3db4b74..673484630aba 100644 --- a/pkg/golinters/staticcheck.go +++ b/pkg/golinters/staticcheck.go @@ -9,7 +9,6 @@ import ( func NewStaticcheck(settings *config.StaticCheckSettings) *goanalysis.Linter { cfg := staticCheckConfig(settings) - analyzers := setupStaticCheckAnalyzers(staticcheck.Analyzers, getGoVersion(settings), cfg.Checks) return goanalysis.NewLinter( diff --git a/pkg/golinters/staticcheck_common.go b/pkg/golinters/staticcheck_common.go index dc6360d7e071..e54cf8e8baa5 100644 --- a/pkg/golinters/staticcheck_common.go +++ b/pkg/golinters/staticcheck_common.go @@ -24,8 +24,7 @@ func getGoVersion(settings *config.StaticCheckSettings) string { return goVersion } - // TODO: uses "1.13" for backward compatibility, but in the future (v2) must be set by using build.Default.ReleaseTags like staticcheck. - return "1.13" + return "1.17" } func setupStaticCheckAnalyzers(src []*lint.Analyzer, goVersion string, checks []string) []*analysis.Analyzer { diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 1c9169c72673..889e490fda29 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -240,6 +240,23 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { if govetCfg != nil { govetCfg.Go = m.cfg.Run.Go } + + if gofumptCfg != nil && gofumptCfg.LangVersion == "" { + gofumptCfg.LangVersion = m.cfg.Run.Go + } + + if staticcheckCfg != nil && staticcheckCfg.GoVersion == "" { + staticcheckCfg.GoVersion = m.cfg.Run.Go + } + if gosimpleCfg != nil && gosimpleCfg.GoVersion == "" { + gosimpleCfg.GoVersion = m.cfg.Run.Go + } + if stylecheckCfg != nil && stylecheckCfg.GoVersion != "" { + stylecheckCfg.GoVersion = m.cfg.Run.Go + } + if unusedCfg != nil && unusedCfg.GoVersion == "" { + unusedCfg.GoVersion = m.cfg.Run.Go + } } const megacheckName = "megacheck" From ae2a968805b484e9dc355c46e1171c77999f9cbf Mon Sep 17 00:00:00 2001 From: Cory Miller <13227161+cory-miller@users.noreply.github.com> Date: Tue, 14 Jun 2022 20:40:19 -0400 Subject: [PATCH 041/162] depguard: adjust phrasing (#2921) --- .golangci.yml | 2 +- pkg/golinters/depguard.go | 6 +++--- test/testdata/depguard.go | 4 ++-- test/testdata/depguard_additional_guards.go | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index d8523cc58e47..fbbe30f93e77 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,6 +1,6 @@ linters-settings: depguard: - list-type: blacklist + list-type: denylist packages: # logging is allowed only by logutils.Log, logrus # is allowed to use only in logutils package diff --git a/pkg/golinters/depguard.go b/pkg/golinters/depguard.go index 6672330d0b62..b9241d183502 100644 --- a/pkg/golinters/depguard.go +++ b/pkg/golinters/depguard.go @@ -122,7 +122,7 @@ func newGuardian(settings *config.DepGuardSettings) (*guardian, error) { return nil, err } - // if the list type was a blacklist the packages with error messages should be included in the blacklist package list + // if the list type was a denylist the packages with error messages should be included in the denylist package list if dg.ListType == depguard.LTBlacklist { noMessagePackages := make(map[string]bool) for _, pkg := range dg.Packages { @@ -164,9 +164,9 @@ func (g guardian) run(loadConfig *loader.Config, prog *loader.Program, pass *ana } func (g guardian) createMsg(pkgName string) string { - msgSuffix := "is in the blacklist" + msgSuffix := "is in the denylist" if g.ListType == depguard.LTWhitelist { - msgSuffix = "is not in the whitelist" + msgSuffix = "is not in the allowlist" } var userSuppliedMsgSuffix string diff --git a/test/testdata/depguard.go b/test/testdata/depguard.go index e1ab70613be0..1c3a4a858471 100644 --- a/test/testdata/depguard.go +++ b/test/testdata/depguard.go @@ -3,8 +3,8 @@ package testdata import ( - "compress/gzip" // ERROR "`compress/gzip` is in the blacklist" - "log" // ERROR "`log` is in the blacklist: don't use log" + "compress/gzip" // ERROR "`compress/gzip` is in the denylist" + "log" // ERROR "`log` is in the denylist: don't use log" ) func SpewDebugInfo() { diff --git a/test/testdata/depguard_additional_guards.go b/test/testdata/depguard_additional_guards.go index 56679c090f07..d41ba42673d8 100644 --- a/test/testdata/depguard_additional_guards.go +++ b/test/testdata/depguard_additional_guards.go @@ -3,10 +3,10 @@ package testdata import ( - "compress/gzip" // ERROR "`compress/gzip` is in the blacklist" - "fmt" // ERROR "`fmt` is in the blacklist" - "log" // ERROR "`log` is in the blacklist: don't use log" - "strings" // ERROR "`strings` is in the blacklist: disallowed in additional guard" + "compress/gzip" // ERROR "`compress/gzip` is in the denylist" + "fmt" // ERROR "`fmt` is in the denylist" + "log" // ERROR "`log` is in the denylist: don't use log" + "strings" // ERROR "`strings` is in the denylist: disallowed in additional guard" ) func SpewDebugInfo() { From 98c811d0e53b33f7b6e8e9c297e5df55b989928c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jun 2022 14:20:47 +0200 Subject: [PATCH 042/162] build(deps): bump github.com/firefart/nonamedreturns from 1.0.1 to 1.0.2 (#2929) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 5 + go.mod | 2 +- go.sum | 4 +- pkg/config/linters_settings.go | 4 + pkg/golinters/nonamedreturns.go | 22 ++- pkg/lint/lintersdb/manager.go | 4 +- test/testdata/configs/nonamedreturns.yml | 3 + test/testdata/nonamedreturns.go | 32 +++- test/testdata/nonamedreturns_custom.go | 225 +++++++++++++++++++++++ 9 files changed, 291 insertions(+), 10 deletions(-) create mode 100644 test/testdata/configs/nonamedreturns.yml create mode 100644 test/testdata/nonamedreturns_custom.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 0f4d810a1c6d..daf3c5628d05 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1154,6 +1154,11 @@ linters-settings: # Default: false require-specific: true + nonamedreturns: + # Do not complain about named error, if it is assigned inside defer. + # Default: false + allow-error-in-defer: true + paralleltest: # Ignore missing calls to `t.Parallel()` and only report incorrect uses of it. # Default: false diff --git a/go.mod b/go.mod index b1990b3d4b07..4ccf9c1dc269 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 - github.com/firefart/nonamedreturns v1.0.1 + github.com/firefart/nonamedreturns v1.0.2 github.com/fzipp/gocyclo v0.5.1 github.com/go-critic/go-critic v0.6.3 github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b diff --git a/go.sum b/go.sum index 1a4281bfd41b..6937633f30ad 100644 --- a/go.sum +++ b/go.sum @@ -194,8 +194,8 @@ github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/firefart/nonamedreturns v1.0.1 h1:fSvcq6ZpK/uBAgJEGMvzErlzyM4NELLqqdTofVjVNag= -github.com/firefart/nonamedreturns v1.0.1/go.mod h1:D3dpIBojGGNh5UfElmwPu73SwDCm+VKhHYqwlNOk2uQ= +github.com/firefart/nonamedreturns v1.0.2 h1:TJ4bRW6KQaNo5t4JVQdjRAOAB7LTxDvkN16c05XtXaA= +github.com/firefart/nonamedreturns v1.0.2/go.mod h1:dLEDwtlLtW+0788N0RCymzvtvfanAFP8V1ZTkY0HwD8= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 32c296ff55ca..3b5ceddf32de 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -158,6 +158,7 @@ type LintersSettings struct { NilNil NilNilSettings Nlreturn NlreturnSettings NoLintLint NoLintLintSettings + NoNamedReturns NoNamedReturnsSettings ParallelTest ParallelTestSettings Prealloc PreallocSettings Predeclared PredeclaredSettings @@ -484,6 +485,9 @@ type NoLintLintSettings struct { AllowUnused bool `mapstructure:"allow-unused"` } +type NoNamedReturnsSettings struct { + AllowErrorInDefer bool `mapstructure:"allow-error-in-defer"` +} type ParallelTestSettings struct { IgnoreMissing bool `mapstructure:"ignore-missing"` } diff --git a/pkg/golinters/nonamedreturns.go b/pkg/golinters/nonamedreturns.go index 8c943d83eeb9..a8166f81672b 100644 --- a/pkg/golinters/nonamedreturns.go +++ b/pkg/golinters/nonamedreturns.go @@ -4,14 +4,26 @@ import ( "github.com/firefart/nonamedreturns/analyzer" "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" ) -func NewNoNamedReturns() *goanalysis.Linter { +func NewNoNamedReturns(settings *config.NoNamedReturnsSettings) *goanalysis.Linter { + a := analyzer.Analyzer + + var cfg map[string]map[string]interface{} + if settings != nil { + cfg = map[string]map[string]interface{}{ + a.Name: { + analyzer.FlagAllowErrorInDefer: settings.AllowErrorInDefer, + }, + } + } + return goanalysis.NewLinter( - "nonamedreturns", - "Reports all named returns", - []*analysis.Analyzer{analyzer.Analyzer}, - nil, + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + cfg, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 889e490fda29..58db15a6075c 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -147,6 +147,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { nilNilCfg *config.NilNilSettings nlreturnCfg *config.NlreturnSettings noLintLintCfg *config.NoLintLintSettings + noNamedReturnsCfg *config.NoNamedReturnsSettings parallelTestCfg *config.ParallelTestSettings preallocCfg *config.PreallocSettings predeclaredCfg *config.PredeclaredSettings @@ -216,6 +217,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { nilNilCfg = &m.cfg.LintersSettings.NilNil nlreturnCfg = &m.cfg.LintersSettings.Nlreturn noLintLintCfg = &m.cfg.LintersSettings.NoLintLint + noNamedReturnsCfg = &m.cfg.LintersSettings.NoNamedReturns preallocCfg = &m.cfg.LintersSettings.Prealloc parallelTestCfg = &m.cfg.LintersSettings.ParallelTest predeclaredCfg = &m.cfg.LintersSettings.Predeclared @@ -623,7 +625,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithURL("https://github.com/sonatard/noctx"). WithNoopFallback(m.cfg), - linter.NewConfig(golinters.NewNoNamedReturns()). + linter.NewConfig(golinters.NewNoNamedReturns(noNamedReturnsCfg)). WithSince("v1.46.0"). WithPresets(linter.PresetStyle). WithURL("https://github.com/firefart/nonamedreturns"), diff --git a/test/testdata/configs/nonamedreturns.yml b/test/testdata/configs/nonamedreturns.yml new file mode 100644 index 000000000000..b73a2c1cb645 --- /dev/null +++ b/test/testdata/configs/nonamedreturns.yml @@ -0,0 +1,3 @@ +linters-settings: + nonamedreturns: + allow-error-in-defer: true diff --git a/test/testdata/nonamedreturns.go b/test/testdata/nonamedreturns.go index 5850281db892..9b20eaf22d07 100644 --- a/test/testdata/nonamedreturns.go +++ b/test/testdata/nonamedreturns.go @@ -1,4 +1,4 @@ -//args: -Enonamedreturns +// args: -Enonamedreturns package testdata import "fmt" @@ -24,6 +24,17 @@ var e = func() (err error) { // ERROR `named return "err" with type "error" foun return } +var e2 = func() (_ error) { + return +} + +func deferWithError() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + err = nil // use flag to allow this + }() + return +} + var ( f = func() { return @@ -37,6 +48,10 @@ var ( err = nil return } + + h2 = func() (_ error) { + return + } ) // this should not match as the implementation does not need named parameters (see below) @@ -50,11 +65,24 @@ func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // ERROR return 0, nil } +func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // ERROR `named return "num" with type "int" found` + return 0, nil +} + +func funcDefintionImpl4(arg1, arg2 interface{}) (_ int, _ error) { + return 0, nil +} + var funcVar = func() (msg string) { // ERROR `named return "msg" with type "string" found` msg = "c" return msg } +var funcVar2 = func() (_ string) { + msg := "c" + return msg +} + func test() { a := funcVar() _ = a @@ -92,3 +120,5 @@ func myLog(format string, args ...interface{}) { type obj struct{} func (o *obj) func1() (err error) { return nil } // ERROR `named return "err" with type "error" found` + +func (o *obj) func2() (_ error) { return nil } diff --git a/test/testdata/nonamedreturns_custom.go b/test/testdata/nonamedreturns_custom.go new file mode 100644 index 000000000000..0e0ceacb99b6 --- /dev/null +++ b/test/testdata/nonamedreturns_custom.go @@ -0,0 +1,225 @@ +// args: -Enonamedreturns +// config_path: testdata/configs/nonamedreturns.yml +package testdata + +func simple() (err error) { + defer func() { + err = nil + }() + return +} + +func twoReturnParams() (i int, err error) { // ERROR `named return "i" with type "int" found` + defer func() { + i = 0 + err = nil + }() + return +} + +func allUnderscoresExceptError() (_ int, err error) { + defer func() { + err = nil + }() + return +} + +func customName() (myName error) { + defer func() { + myName = nil + }() + return +} + +func errorIsNoAssigned() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + processError(err) + if err == nil { + } + switch err { + case nil: + default: + } + }() + return +} + +func shadowVariable() (err error) { + defer func() { + err := 123 // linter doesn't understand that this is different variable (even if different type) (yet?) + _ = err + }() + return +} + +func shadowVariable2() (err error) { + defer func() { + a, err := doSomething() // linter doesn't understand that this is different variable (yet?) + _ = a + _ = err + }() + return +} + +type myError = error // linter doesn't understand that this is the same type (yet?) + +func customType() (err myError) { // ERROR `named return "err" with type "myError" found` + defer func() { + err = nil + }() + return +} + +func notTheLast() (err error, _ int) { + defer func() { + err = nil + }() + return +} + +func twoErrorsCombined() (err1, err2 error) { + defer func() { + err1 = nil + err2 = nil + }() + return +} + +func twoErrorsSeparated() (err1 error, err2 error) { + defer func() { + err1 = nil + err2 = nil + }() + return +} + +func errorSlice() (err []error) { // ERROR `named return "err" with type "\[\]error" found` + defer func() { + err = nil + }() + return +} + +func deferWithVariable() (err error) { // ERROR `named return "err" with type "error" found` + f := func() { + err = nil + } + defer f() // linter can't catch closure passed via variable (yet?) + return +} + +func uberMultierr() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + multierrAppendInto(&err, nil) // linter doesn't allow it (yet?) + }() + return +} + +func deferInDefer() (err error) { + defer func() { + defer func() { + err = nil + }() + }() + return +} + +func twoDefers() (err error) { + defer func() {}() + defer func() { + err = nil + }() + return +} + +func callFunction() (err error) { + defer func() { + _, err = doSomething() + }() + return +} + +func callFunction2() (err error) { + defer func() { + var a int + a, err = doSomething() + _ = a + }() + return +} + +func deepInside() (err error) { + if true { + switch true { + case false: + for i := 0; i < 10; i++ { + go func() { + select { + default: + defer func() { + if true { + switch true { + case false: + for j := 0; j < 10; j++ { + go func() { + select { + default: + err = nil + } + }() + } + } + } + }() + } + }() + } + } + } + return +} + +var goodFuncLiteral = func() (err error) { + defer func() { + err = nil + }() + return +} + +var badFuncLiteral = func() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + }() + return +} + +func funcLiteralInsideFunc() error { + do := func() (err error) { + defer func() { + err = nil + }() + return + } + return do() +} + +type x struct{} + +func (x) goodMethod() (err error) { + defer func() { + err = nil + }() + return +} + +func (x) badMethod() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + }() + return +} + +func processError(error) {} +func doSomething() (int, error) { return 10, nil } +func multierrAppendInto(*error, error) bool { return false } // https://pkg.go.dev/go.uber.org/multierr#AppendInto From 0e3730d358d7ee965314cea694441434262974d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jun 2022 14:21:04 +0200 Subject: [PATCH 043/162] build(deps): bump github.com/securego/gosec/v2 from 2.11.0 to 2.12.0 (#2925) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 4 ++++ go.mod | 2 +- go.sum | 19 ++++++++++--------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index daf3c5628d05..8f337f182f2a 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -721,6 +721,8 @@ linters-settings: - G109 - G110 - G111 + - G112 + - G113 - G201 - G202 - G203 @@ -757,6 +759,8 @@ linters-settings: - G109 - G110 - G111 + - G112 + - G113 - G201 - G202 - G203 diff --git a/go.mod b/go.mod index 4ccf9c1dc269..312835aa248e 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.3 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 - github.com/securego/gosec/v2 v2.11.0 + github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.5 github.com/sirupsen/logrus v1.8.1 diff --git a/go.sum b/go.sum index 6937633f30ad..ec470f02994b 100644 --- a/go.sum +++ b/go.sum @@ -361,7 +361,7 @@ github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0 github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo= +github.com/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= @@ -503,7 +503,7 @@ github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= @@ -601,14 +601,14 @@ github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= -github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= +github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= @@ -704,8 +704,8 @@ github.com/sagikazarmark/crypt v0.5.0/go.mod h1:l+nzl7KWh51rpzp2h7t4MZWyiEWdhNpO github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/securego/gosec/v2 v2.11.0 h1:+PDkpzR41OI2jrw1q6AdXZCbsNGNGT7pQjal0H0cArI= -github.com/securego/gosec/v2 v2.11.0/go.mod h1:SX8bptShuG8reGC0XS09+a4H2BoWSJi+fscA+Pulbpo= +github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= +github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= @@ -884,8 +884,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= 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-20220313003712-b769efc7c000/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 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= @@ -1106,6 +1106,7 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/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-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From c8e38c4b666fce73b7d18dba36ec44234a50c254 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jun 2022 14:21:30 +0200 Subject: [PATCH 044/162] build(deps): bump github.com/sivchari/tenv from 1.5.0 to 1.6.0 (#2927) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 312835aa248e..5581d3907cd2 100644 --- a/go.mod +++ b/go.mod @@ -77,7 +77,7 @@ require ( github.com/shirou/gopsutil/v3 v3.22.5 github.com/sirupsen/logrus v1.8.1 github.com/sivchari/containedctx v1.0.2 - github.com/sivchari/tenv v1.5.0 + github.com/sivchari/tenv v1.6.0 github.com/sonatard/noctx v0.0.1 github.com/sourcegraph/go-diff v0.6.1 github.com/spf13/cobra v1.4.0 diff --git a/go.sum b/go.sum index ec470f02994b..75acb977baa2 100644 --- a/go.sum +++ b/go.sum @@ -722,8 +722,8 @@ github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/tenv v1.5.0 h1:wxW0mFpKI6DIb3s6m1jCDYvkWXCskrimXMuGd0K/kSQ= -github.com/sivchari/tenv v1.5.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/sivchari/tenv v1.6.0 h1:FyE4WysxLwYljKqWhTfOMjgKjBSnmzzg7lWOmpDiAcc= +github.com/sivchari/tenv v1.6.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= From 2c30625ce82a6b2acb017db25723c1dc56fa2e0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jun 2022 15:43:08 +0300 Subject: [PATCH 045/162] build(deps): bump github.com/tomarrell/wrapcheck/v2 from 2.6.1 to 2.6.2 (#2928) Bumps [github.com/tomarrell/wrapcheck/v2](https://github.com/tomarrell/wrapcheck) from 2.6.1 to 2.6.2. - [Release notes](https://github.com/tomarrell/wrapcheck/releases) - [Commits](https://github.com/tomarrell/wrapcheck/compare/v2.6.1...v2.6.2) --- updated-dependencies: - dependency-name: github.com/tomarrell/wrapcheck/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +-- go.sum | 248 +++------------------------------------------------------ 2 files changed, 15 insertions(+), 243 deletions(-) diff --git a/go.mod b/go.mod index 5581d3907cd2..bd86ae476c85 100644 --- a/go.mod +++ b/go.mod @@ -90,7 +90,7 @@ require ( github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 - github.com/tomarrell/wrapcheck/v2 v2.6.1 + github.com/tomarrell/wrapcheck/v2 v2.6.2 github.com/tommy-muehle/go-mnd/v2 v2.5.0 github.com/ultraware/funlen v0.0.3 github.com/ultraware/whitespace v0.0.5 @@ -143,7 +143,7 @@ require ( github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.1 // indirect + github.com/pelletier/go-toml/v2 v2.0.2 // indirect github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect @@ -159,7 +159,7 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/stretchr/objx v0.1.1 // indirect - github.com/subosito/gotenv v1.3.0 // indirect + github.com/subosito/gotenv v1.4.0 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect github.com/tklauser/numcpus v0.4.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect @@ -170,10 +170,10 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect + golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect - gopkg.in/ini.v1 v1.66.4 // indirect + gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect ) diff --git a/go.sum b/go.sum index 75acb977baa2..31b3fdbce524 100644 --- a/go.sum +++ b/go.sum @@ -21,30 +21,14 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb 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 v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= 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/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= 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/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= 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= @@ -67,7 +51,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 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/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 h1:V9xVvhKbLt7unNEGAruK1xXglyc668Pq3Xx0MNTNqpo= @@ -78,7 +61,6 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.1.0 h1:pjK9nLPS1FwQYGGpPxoMYpe7qACHOhAWQMQzV71i49o= github.com/OpenPeeDeeP/depguard v1.1.0/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -91,14 +73,8 @@ github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cv github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc= github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= @@ -124,7 +100,6 @@ github.com/breml/errchkjson v0.3.0/go.mod h1:9Cogkyv9gcT8HREpzi3TiqBxCqDzo8awa92 github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -135,17 +110,10 @@ github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4/go.mod h1:W8EnPSQ8 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= -github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= 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/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= @@ -153,7 +121,6 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee 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-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= @@ -178,9 +145,6 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m 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/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= @@ -188,7 +152,6 @@ github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcH github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -199,7 +162,6 @@ github.com/firefart/nonamedreturns v1.0.2/go.mod h1:dLEDwtlLtW+0788N0RCymzvtvfan github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= @@ -245,20 +207,17 @@ github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b h1:khEcpUM4yFcxg4 github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.1.1/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.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= 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/groupcache v0.0.0-20210331224755-41bb18bfe9da/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= @@ -266,8 +225,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt 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/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 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= @@ -284,7 +241,6 @@ 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.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= 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/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -318,18 +274,15 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ 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.3/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.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 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/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= 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= @@ -341,12 +294,7 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf 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/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -356,10 +304,6 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ 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/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= @@ -390,29 +334,10 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaD 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/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= -github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-immutable-radix v1.3.1/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-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -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.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= @@ -421,11 +346,6 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= 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.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= -github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= -github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= -github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -453,7 +373,6 @@ github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUB 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.9/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= @@ -467,7 +386,6 @@ github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSX github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/errcheck v1.6.1 h1:cErYo+J4SmEjdXZrVXGwLJCE2sB06s23LpkcyWNrT+s= github.com/kisielk/errcheck v1.6.1/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= @@ -480,7 +398,6 @@ 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.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= 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= @@ -519,16 +436,13 @@ github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -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.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= @@ -545,21 +459,15 @@ github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aks github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= github.com/mgechev/revive v1.2.1 h1:GjFml7ZsoR0IrQ2E2YIvWFNS5GPDV7xNwvA5GM1HZC4= github.com/mgechev/revive v1.2.1/go.mod h1:+Ro3wqY4vakcYNtkBWdZC7dBg1xSB6sp054wWwmeFm0= -github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= 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-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -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.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= 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.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -616,16 +524,11 @@ github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJ github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.0-beta.8/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.0/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU= -github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= +github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= @@ -640,13 +543,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polyfloyd/go-errorlint v1.0.0 h1:pDrQG0lrh68e602Wfp68BlUTRFoHn8PZYAjLgt2LFsM= github.com/polyfloyd/go-errorlint v1.0.0/go.mod h1:KZy4xxPJyy88/gldCe5OdW6OQRtNO3EZE7hXzmnebgA= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= @@ -657,14 +557,12 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/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.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= @@ -699,11 +597,8 @@ github.com/ryancurrah/gomodguard v1.2.3 h1:ww2fsjqocGCAFamzvv/b8IsRduuHHeK2MHTcT github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sagikazarmark/crypt v0.5.0/go.mod h1:l+nzl7KWh51rpzp2h7t4MZWyiEWdhNpOAnclKvg+mdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -729,12 +624,10 @@ github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 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= @@ -749,7 +642,6 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn 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.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.11.0/go.mod h1:djo0X/bA5+tYVoCn+C7cAYJGcVn/qYLFTG8gdUsX7Zk= github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= @@ -770,9 +662,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.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI= -github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= +github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= +github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= @@ -798,12 +689,11 @@ github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hM github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomarrell/wrapcheck/v2 v2.6.1 h1:Cf4a/iwuMp9s7kKrh74GTgijRVim0wEpKjgAsT7Wctw= -github.com/tomarrell/wrapcheck/v2 v2.6.1/go.mod h1:Eo+Opt6pyMW1b6cNllOcDSSoHO0aTJ+iF6BfCUbHltA= +github.com/tomarrell/wrapcheck/v2 v2.6.2 h1:3dI6YNcrJTQ/CJQ6M/DUkc0gnqYSIk6o0rChn9E/D0M= +github.com/tomarrell/wrapcheck/v2 v2.6.2/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/tommy-muehle/go-mnd/v2 v2.5.0 h1:iAj0a8e6+dXSL7Liq0aXPox36FiN1dBbjA6lt9fl65s= github.com/tommy-muehle/go-mnd/v2 v2.5.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= @@ -843,9 +733,6 @@ gitlab.com/bosi/decorder v0.2.1/go.mod h1:6C/nhLSbF6qZbYD8bRmISBwc6vcWdNsiIBkRvj go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= -go.etcd.io/etcd/api/v3 v3.5.2/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= -go.etcd.io/etcd/client/pkg/v3 v3.5.2/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.2/go.mod h1:2D7ZejHVMIfog1221iLSYlQRzrtECw3kz4I4VAQm3qI= go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -853,8 +740,6 @@ 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.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= 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= @@ -876,7 +761,6 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf 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-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= 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-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= @@ -884,7 +768,6 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= 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-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 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= @@ -968,21 +851,14 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/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-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/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-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= 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= @@ -993,17 +869,7 @@ 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-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/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-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/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= @@ -1017,7 +883,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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= @@ -1037,7 +902,6 @@ golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1050,7 +914,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w 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-20200124204421-9fbb57f87de9/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= @@ -1074,44 +937,27 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210112080510-489259a85091/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-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/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-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/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-20210616094352-59db8d763f22/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-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/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-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/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-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d h1:Zu/JngovGLVi6t2J3nmAf3AoTDwuzw85YZ3b9o4yU7s= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/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= @@ -1121,7 +967,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 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.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -1150,7 +995,6 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw 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-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/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-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1188,7 +1032,6 @@ golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roY 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-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -1212,14 +1055,11 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201230224404-63754364767c/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.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= @@ -1232,7 +1072,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T 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= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 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= @@ -1253,23 +1092,6 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 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/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= 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= @@ -1305,7 +1127,6 @@ google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/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-20200513103714-09dca8ec2884/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= @@ -1320,42 +1141,7 @@ google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6D 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-20210222152913-aa3ee6e6a81c/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-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1373,22 +1159,9 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji 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.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= 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.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= @@ -1401,7 +1174,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj 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.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1415,8 +1187,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.28/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.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4= -gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= +gopkg.in/ini.v1 v1.66.6/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/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= From 7fbb11ca37bd4665c5d223617fd5e0a23883c0ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jun 2022 12:57:00 +0000 Subject: [PATCH 046/162] build(deps): bump github.com/fzipp/gocyclo from 0.5.1 to 0.6.0 (#2926) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index bd86ae476c85..aef6daeca6f0 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 github.com/firefart/nonamedreturns v1.0.2 - github.com/fzipp/gocyclo v0.5.1 + github.com/fzipp/gocyclo v0.6.0 github.com/go-critic/go-critic v0.6.3 github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b github.com/gofrs/flock v0.8.1 diff --git a/go.sum b/go.sum index 31b3fdbce524..f3127fcdf08a 100644 --- a/go.sum +++ b/go.sum @@ -165,8 +165,8 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4 github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= -github.com/fzipp/gocyclo v0.5.1 h1:L66amyuYogbxl0j2U+vGqJXusPF2IkduvXLnYD5TFgw= -github.com/fzipp/gocyclo v0.5.1/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= +github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= +github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-critic/go-critic v0.6.3 h1:abibh5XYBTASawfTQ0rA7dVtQT+6KzpGqb/J+DxRDaw= github.com/go-critic/go-critic v0.6.3/go.mod h1:c6b3ZP1MQ7o6lPR7Rv3lEf7pYQUmAcx8ABHgdZCQt/k= From de7cc56ef6dad613bdb46f3bba5af0b8cad0e0ec Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 21 Jun 2022 13:45:33 +0200 Subject: [PATCH 047/162] chore: remove reviewers from dependabot configuration (#2932) --- .github/dependabot.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0f1290a56fd4..d045963d5d09 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,29 +9,19 @@ updates: ignore: # ignore forked linters because of their versioning issues. TODO: fix it. - dependency-name: "github.com/golangci/*" - reviewers: - - "golangci/team" - package-ecosystem: github-actions directory: "/" schedule: interval: weekly - reviewers: - - "golangci/team" - package-ecosystem: docker directory: "/build" schedule: interval: weekly - reviewers: - - "golangci/team" - package-ecosystem: gomod directory: "/scripts/gen_github_action_config" schedule: interval: weekly - reviewers: - - "golangci/team" - package-ecosystem: npm directory: "/docs" schedule: interval: monthly - reviewers: - - "golangci/team" From f70bf6665b7928b68fc4ec7a1ea49dad8aca4b8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:28:24 +0200 Subject: [PATCH 048/162] build(deps): bump github.com/spf13/cobra from 1.4.0 to 1.5.0 (#2933) --- go.mod | 2 +- go.sum | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index aef6daeca6f0..7d1afd094b82 100644 --- a/go.mod +++ b/go.mod @@ -80,7 +80,7 @@ require ( github.com/sivchari/tenv v1.6.0 github.com/sonatard/noctx v0.0.1 github.com/sourcegraph/go-diff v0.6.1 - github.com/spf13/cobra v1.4.0 + github.com/spf13/cobra v1.5.0 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 diff --git a/go.sum b/go.sum index f3127fcdf08a..8c37a1d3f544 100644 --- a/go.sum +++ b/go.sum @@ -126,7 +126,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= 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.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/daixiang0/gci v0.3.4 h1:+EZ83znNs73C9ZBTM7xhNagMP6gJs5wlptiFiuce5BM= @@ -632,8 +632,8 @@ 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 v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= From e33e63ed304f763d7d7b23e31b62ea78849bd20e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:28:40 +0200 Subject: [PATCH 049/162] build(deps): bump github.com/stretchr/testify from 1.7.2 to 1.7.4 (#2934) --- go.mod | 4 ++-- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 7d1afd094b82..b088959e21ae 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 - github.com/stretchr/testify v1.7.2 + github.com/stretchr/testify v1.7.4 github.com/sylvia7788/contextcheck v1.0.4 github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 @@ -158,7 +158,7 @@ require ( github.com/spf13/afero v1.8.2 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/stretchr/objx v0.1.1 // indirect + github.com/stretchr/objx v0.4.0 // indirect github.com/subosito/gotenv v1.4.0 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect github.com/tklauser/numcpus v0.4.0 // indirect diff --git a/go.sum b/go.sum index 8c37a1d3f544..df88a1e7088e 100644 --- a/go.sum +++ b/go.sum @@ -649,8 +649,9 @@ github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRk github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -660,8 +661,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 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.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM= +github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= From 6701b331f618a2e6b851d061e759a89272248e1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:28:53 +0200 Subject: [PATCH 050/162] build(deps): bump react-live from 3.1.0 to 3.1.1 in /docs (#2935) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 846381328fb1..4ec16e0df2cb 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -49,7 +49,7 @@ "react-headroom": "^3.2.0", "react-helmet": "^6.1.0", "react-icons": "^4.3.1", - "react-live": "^3.1.0", + "react-live": "^3.1.1", "url-join": "^5.0.0" }, "devDependencies": {} @@ -20635,9 +20635,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-live": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-3.1.0.tgz", - "integrity": "sha512-Q/dEf9Aq36CkhzIs5uiGhE3BSH+O5qZl0qJQhO/QfST46oiICjqixzJ374Q/cZoLsKAa7DIPu9rlDpHo4ClZNg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-3.1.1.tgz", + "integrity": "sha512-bPjrk7jCQ7dk8W3lx+/AAcn66TFRzTNIWsVa4mWqsiwIgUjaNqzFZZIuq2kY9UlAix8x63egsEFPX6dkno92Fg==", "dependencies": { "prism-react-renderer": "^1.3.1", "sucrase": "^3.21.0", @@ -41209,9 +41209,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-live": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-3.1.0.tgz", - "integrity": "sha512-Q/dEf9Aq36CkhzIs5uiGhE3BSH+O5qZl0qJQhO/QfST46oiICjqixzJ374Q/cZoLsKAa7DIPu9rlDpHo4ClZNg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-3.1.1.tgz", + "integrity": "sha512-bPjrk7jCQ7dk8W3lx+/AAcn66TFRzTNIWsVa4mWqsiwIgUjaNqzFZZIuq2kY9UlAix8x63egsEFPX6dkno92Fg==", "requires": { "prism-react-renderer": "^1.3.1", "sucrase": "^3.21.0", diff --git a/docs/package.json b/docs/package.json index 9604c7f774e7..d45ff4839350 100644 --- a/docs/package.json +++ b/docs/package.json @@ -46,7 +46,7 @@ "react-headroom": "^3.2.0", "react-helmet": "^6.1.0", "react-icons": "^4.3.1", - "react-live": "^3.1.0", + "react-live": "^3.1.1", "url-join": "^5.0.0" }, "devDependencies": {}, From 3c4619210a0cdfc074a71b9cd817adbcfc1e4a96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 18:29:07 +0200 Subject: [PATCH 051/162] build(deps): bump gatsby-plugin-emotion from 7.13.0 to 7.17.0 in /docs (#2936) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 4ec16e0df2cb..aa40cbf16a78 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -17,7 +17,7 @@ "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.13.0", - "gatsby-plugin-emotion": "^7.13.0", + "gatsby-plugin-emotion": "^7.17.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", @@ -12553,9 +12553,9 @@ } }, "node_modules/gatsby-plugin-emotion": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.13.0.tgz", - "integrity": "sha512-CsulpyUurhdDpeHdoHgZeDHQGk8+V2lvm/nVr9I6y13CMIYLwabq0RYjQiQ0WFmZhaZ9F3QaFWw0owyBj4K9CA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.17.0.tgz", + "integrity": "sha512-t42HNDzrexUOnhDIuscz/yxDu3NKZ27TbcilXY5yIAtWkO705/qQP5KaYnJeVfx3PDkLQe7GtDoPCU/165Dhag==", "dependencies": { "@babel/runtime": "^7.15.4", "@emotion/babel-preset-css-prop": "^11.2.0" @@ -35372,9 +35372,9 @@ } }, "gatsby-plugin-emotion": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.13.0.tgz", - "integrity": "sha512-CsulpyUurhdDpeHdoHgZeDHQGk8+V2lvm/nVr9I6y13CMIYLwabq0RYjQiQ0WFmZhaZ9F3QaFWw0owyBj4K9CA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.17.0.tgz", + "integrity": "sha512-t42HNDzrexUOnhDIuscz/yxDu3NKZ27TbcilXY5yIAtWkO705/qQP5KaYnJeVfx3PDkLQe7GtDoPCU/165Dhag==", "requires": { "@babel/runtime": "^7.15.4", "@emotion/babel-preset-css-prop": "^11.2.0" diff --git a/docs/package.json b/docs/package.json index d45ff4839350..7ff1c02091ee 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,7 +14,7 @@ "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.13.0", - "gatsby-plugin-emotion": "^7.13.0", + "gatsby-plugin-emotion": "^7.17.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", From ebeffc281d3e52feaad016157cf8d9380d742fa3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 19:53:22 +0200 Subject: [PATCH 052/162] build(deps): bump gatsby-plugin-react-helmet from 5.13.0 to 5.17.0 in /docs (#2939) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index aa40cbf16a78..85a99f2cb830 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -24,7 +24,7 @@ "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.13.0", - "gatsby-plugin-react-helmet": "^5.13.0", + "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.13.0", @@ -12991,9 +12991,9 @@ } }, "node_modules/gatsby-plugin-react-helmet": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.13.0.tgz", - "integrity": "sha512-gdb2occ2GHnMhKXkzaWNoosht+CVFiSrUr06jYgXBLPRpcuzv/7Hh2LI0i8h4GzIFFLEGQnJsPG/AbSOcFD94w==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.17.0.tgz", + "integrity": "sha512-Lp52GFGNQO0Rt0VfYbFMFBw67XNaIITvwhBMqzxnIw/OCnnyjhylfYMpmyDQKT5S/yaWEF3MsvPmE2YCbXbSww==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -35692,9 +35692,9 @@ } }, "gatsby-plugin-react-helmet": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.13.0.tgz", - "integrity": "sha512-gdb2occ2GHnMhKXkzaWNoosht+CVFiSrUr06jYgXBLPRpcuzv/7Hh2LI0i8h4GzIFFLEGQnJsPG/AbSOcFD94w==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.17.0.tgz", + "integrity": "sha512-Lp52GFGNQO0Rt0VfYbFMFBw67XNaIITvwhBMqzxnIw/OCnnyjhylfYMpmyDQKT5S/yaWEF3MsvPmE2YCbXbSww==", "requires": { "@babel/runtime": "^7.15.4" } diff --git a/docs/package.json b/docs/package.json index 7ff1c02091ee..9b4b9e2adbd5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -21,7 +21,7 @@ "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.13.0", - "gatsby-plugin-react-helmet": "^5.13.0", + "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.13.0", From 4d0332f39c6388c972f0c3ae95085be9891c0d8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Jun 2022 08:31:58 +0200 Subject: [PATCH 053/162] build(deps): bump gatsby-plugin-offline from 5.13.0 to 5.17.0 in /docs (#2937) --- docs/package-lock.json | 210 +++++++++++++++++++++++++++++++++++++---- docs/package.json | 2 +- 2 files changed, 192 insertions(+), 20 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 85a99f2cb830..e789297ddc10 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -23,7 +23,7 @@ "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", - "gatsby-plugin-offline": "^5.13.0", + "gatsby-plugin-offline": "^5.17.0", "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", @@ -3965,6 +3965,78 @@ "@lezer/common": "^0.15.0" } }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -12340,9 +12412,9 @@ } }, "node_modules/gatsby-core-utils": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.15.0.tgz", - "integrity": "sha512-aLNrH3gGUIeD9XGk3z/27N5qaVx7y3AAgs/Vu6PJm69t25kTwuOHKNzhlnHkIZypznZkkVeN7QbHBkIKam/ZIQ==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.17.0.tgz", + "integrity": "sha512-1e0YaqTAEpSSBkpWkY703lu+Bl76ASXUvUcpnNO3CavCYZsRQxAXtMXIKIEvhm1z6zWJmY9HILo6/DjP+PHeyw==", "dependencies": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", @@ -12352,7 +12424,7 @@ "fs-extra": "^10.1.0", "got": "^11.8.3", "import-from": "^4.0.0", - "lmdb": "2.3.10", + "lmdb": "2.5.2", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -12399,6 +12471,42 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/gatsby-core-utils/node_modules/lmdb": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.5.4", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", + "ordered-binary": "^1.2.4", + "weak-lru-cache": "^1.2.2" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2" + } + }, + "node_modules/gatsby-core-utils/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, + "node_modules/gatsby-core-utils/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/gatsby-core-utils/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -12851,14 +12959,14 @@ } }, "node_modules/gatsby-plugin-offline": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.13.0.tgz", - "integrity": "sha512-jjDE8aRcdz6FUPiPARyaMKvsB5RyWG2/LTbGS9NpinNCOeS/EQtTC/DCuU7kzlUeWmHVRckX0XbdWaNGTcDStg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.17.0.tgz", + "integrity": "sha512-4sGpLkjOrv/b6E9FI6TqAX92D47PGbgCubqQTTV7c4zcEIjq9MA86VzNRV/sU8Jys+9Az0kBOIA8e7NEckyvXQ==", "dependencies": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.13.0", - "glob": "^7.2.0", + "gatsby-core-utils": "^3.17.0", + "glob": "^7.2.3", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", "workbox-build": "^4.3.1" @@ -28527,6 +28635,42 @@ "@lezer/common": "^0.15.0" } }, + "@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "optional": true + }, + "@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "optional": true + }, + "@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "optional": true + }, + "@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "optional": true + }, + "@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "optional": true + }, + "@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "optional": true + }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -35214,9 +35358,9 @@ } }, "gatsby-core-utils": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.15.0.tgz", - "integrity": "sha512-aLNrH3gGUIeD9XGk3z/27N5qaVx7y3AAgs/Vu6PJm69t25kTwuOHKNzhlnHkIZypznZkkVeN7QbHBkIKam/ZIQ==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.17.0.tgz", + "integrity": "sha512-1e0YaqTAEpSSBkpWkY703lu+Bl76ASXUvUcpnNO3CavCYZsRQxAXtMXIKIEvhm1z6zWJmY9HILo6/DjP+PHeyw==", "requires": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", @@ -35226,7 +35370,7 @@ "fs-extra": "^10.1.0", "got": "^11.8.3", "import-from": "^4.0.0", - "lmdb": "2.3.10", + "lmdb": "2.5.2", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -35259,6 +35403,34 @@ "universalify": "^2.0.0" } }, + "lmdb": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "requires": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2", + "msgpackr": "^1.5.4", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", + "ordered-binary": "^1.2.4", + "weak-lru-cache": "^1.2.2" + } + }, + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, + "node-gyp-build-optional-packages": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==" + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -35595,14 +35767,14 @@ } }, "gatsby-plugin-offline": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.13.0.tgz", - "integrity": "sha512-jjDE8aRcdz6FUPiPARyaMKvsB5RyWG2/LTbGS9NpinNCOeS/EQtTC/DCuU7kzlUeWmHVRckX0XbdWaNGTcDStg==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.17.0.tgz", + "integrity": "sha512-4sGpLkjOrv/b6E9FI6TqAX92D47PGbgCubqQTTV7c4zcEIjq9MA86VzNRV/sU8Jys+9Az0kBOIA8e7NEckyvXQ==", "requires": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.13.0", - "glob": "^7.2.0", + "gatsby-core-utils": "^3.17.0", + "glob": "^7.2.3", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", "workbox-build": "^4.3.1" diff --git a/docs/package.json b/docs/package.json index 9b4b9e2adbd5..7bcf53440e3b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -20,7 +20,7 @@ "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", "gatsby-plugin-netlify-cache": "^2.0.0", - "gatsby-plugin-offline": "^5.13.0", + "gatsby-plugin-offline": "^5.17.0", "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", From 01f1a070a20c2a0ac65f6e5d56d3a6f62b0b5a9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Jun 2022 08:32:13 +0200 Subject: [PATCH 054/162] build(deps): bump gatsby-plugin-catch-links from 4.13.0 to 4.17.0 in /docs (#2938) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index e789297ddc10..5136ffe43dd1 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -16,7 +16,7 @@ "gatsby": "^4.15.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", - "gatsby-plugin-catch-links": "^4.13.0", + "gatsby-plugin-catch-links": "^4.17.0", "gatsby-plugin-emotion": "^7.17.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", @@ -12646,9 +12646,9 @@ } }, "node_modules/gatsby-plugin-catch-links": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-4.13.0.tgz", - "integrity": "sha512-I4VJFbM+3j1wS76HExdmv4bmNNfpWp1o5mvF6M35TXc4zUf5uvdGiWHllgOlJ7Lu7xWYEi+d9J8kuKwpE3lvQA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-4.17.0.tgz", + "integrity": "sha512-hqrNbrmeJ22nhq2W1u+KBFtrH9zpDrum6DQD+TOTOjlA+MX59Nmc4mewUjuMKa9CEv93/k3Y58NIhFcGk6jHWg==", "dependencies": { "@babel/runtime": "^7.15.4", "escape-string-regexp": "^1.0.5" @@ -35535,9 +35535,9 @@ } }, "gatsby-plugin-catch-links": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-4.13.0.tgz", - "integrity": "sha512-I4VJFbM+3j1wS76HExdmv4bmNNfpWp1o5mvF6M35TXc4zUf5uvdGiWHllgOlJ7Lu7xWYEi+d9J8kuKwpE3lvQA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-4.17.0.tgz", + "integrity": "sha512-hqrNbrmeJ22nhq2W1u+KBFtrH9zpDrum6DQD+TOTOjlA+MX59Nmc4mewUjuMKa9CEv93/k3Y58NIhFcGk6jHWg==", "requires": { "@babel/runtime": "^7.15.4", "escape-string-regexp": "^1.0.5" diff --git a/docs/package.json b/docs/package.json index 7bcf53440e3b..ec492d933e76 100644 --- a/docs/package.json +++ b/docs/package.json @@ -13,7 +13,7 @@ "gatsby": "^4.15.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", - "gatsby-plugin-catch-links": "^4.13.0", + "gatsby-plugin-catch-links": "^4.17.0", "gatsby-plugin-emotion": "^7.17.0", "gatsby-plugin-google-analytics": "^4.13.0", "gatsby-plugin-manifest": "^4.15.1", From 023e1c4fdff1f59a4bce3816c0428e4b3cf72132 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 14:13:15 +0200 Subject: [PATCH 055/162] build(deps): bump github.com/firefart/nonamedreturns from 1.0.2 to 1.0.4 (#2944) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 4 +- go.mod | 4 +- go.sum | 8 +- pkg/config/linters_settings.go | 2 +- pkg/golinters/nonamedreturns.go | 4 +- pkg/lint/lintersdb/manager.go | 1 + test/testdata/configs/nonamedreturns.yml | 2 +- test/testdata/nonamedreturns.go | 285 ++++++++++++++++++----- test/testdata/nonamedreturns_custom.go | 238 ++++++------------- 9 files changed, 303 insertions(+), 245 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 8f337f182f2a..5b1a77ecef94 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1159,9 +1159,9 @@ linters-settings: require-specific: true nonamedreturns: - # Do not complain about named error, if it is assigned inside defer. + # Report named error if it is assigned inside defer. # Default: false - allow-error-in-defer: true + report-error-in-defer: true paralleltest: # Ignore missing calls to `t.Parallel()` and only report incorrect uses of it. diff --git a/go.mod b/go.mod index b088959e21ae..fce741793d5d 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 - github.com/firefart/nonamedreturns v1.0.2 + github.com/firefart/nonamedreturns v1.0.4 github.com/fzipp/gocyclo v0.6.0 github.com/go-critic/go-critic v0.6.3 github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b @@ -170,7 +170,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d // indirect + golang.org/x/sys v0.0.0-20220624220833-87e55d714810 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index df88a1e7088e..2d22cfe800a2 100644 --- a/go.sum +++ b/go.sum @@ -157,8 +157,8 @@ github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/firefart/nonamedreturns v1.0.2 h1:TJ4bRW6KQaNo5t4JVQdjRAOAB7LTxDvkN16c05XtXaA= -github.com/firefart/nonamedreturns v1.0.2/go.mod h1:dLEDwtlLtW+0788N0RCymzvtvfanAFP8V1ZTkY0HwD8= +github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= +github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -958,8 +958,8 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d h1:Zu/JngovGLVi6t2J3nmAf3AoTDwuzw85YZ3b9o4yU7s= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810 h1:rHZQSjJdAI4Xf5Qzeh2bBc5YJIkPFVM6oDtMFYmgws0= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/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= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 3b5ceddf32de..c91f4f057e7d 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -486,7 +486,7 @@ type NoLintLintSettings struct { } type NoNamedReturnsSettings struct { - AllowErrorInDefer bool `mapstructure:"allow-error-in-defer"` + ReportErrorInDefer bool `mapstructure:"report-error-in-defer"` } type ParallelTestSettings struct { IgnoreMissing bool `mapstructure:"ignore-missing"` diff --git a/pkg/golinters/nonamedreturns.go b/pkg/golinters/nonamedreturns.go index a8166f81672b..3dff2f75909f 100644 --- a/pkg/golinters/nonamedreturns.go +++ b/pkg/golinters/nonamedreturns.go @@ -15,7 +15,7 @@ func NewNoNamedReturns(settings *config.NoNamedReturnsSettings) *goanalysis.Lint if settings != nil { cfg = map[string]map[string]interface{}{ a.Name: { - analyzer.FlagAllowErrorInDefer: settings.AllowErrorInDefer, + analyzer.FlagReportErrorInDefer: settings.ReportErrorInDefer, }, } } @@ -25,5 +25,5 @@ func NewNoNamedReturns(settings *config.NoNamedReturnsSettings) *goanalysis.Lint a.Doc, []*analysis.Analyzer{a}, cfg, - ).WithLoadMode(goanalysis.LoadModeSyntax) + ).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 58db15a6075c..e6c069b7f56f 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -627,6 +627,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewNoNamedReturns(noNamedReturnsCfg)). WithSince("v1.46.0"). + WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). WithURL("https://github.com/firefart/nonamedreturns"), diff --git a/test/testdata/configs/nonamedreturns.yml b/test/testdata/configs/nonamedreturns.yml index b73a2c1cb645..8976df8af9fa 100644 --- a/test/testdata/configs/nonamedreturns.yml +++ b/test/testdata/configs/nonamedreturns.yml @@ -1,3 +1,3 @@ linters-settings: nonamedreturns: - allow-error-in-defer: true + report-error-in-defer: true diff --git a/test/testdata/nonamedreturns.go b/test/testdata/nonamedreturns.go index 9b20eaf22d07..c2afbd27ed7d 100644 --- a/test/testdata/nonamedreturns.go +++ b/test/testdata/nonamedreturns.go @@ -1,124 +1,281 @@ // args: -Enonamedreturns package testdata -import "fmt" +import "errors" -type asdf struct { - test string +func simple() (err error) { + defer func() { + err = nil + }() + return } -func noParams() { +func twoReturnParams() (i int, err error) { // ERROR `named return "i" with type "int" found` + defer func() { + i = 0 + err = nil + }() return } -var c = func() { +func allUnderscoresExceptError() (_ int, err error) { + defer func() { + err = nil + }() return } -var d = func() error { - return nil +func customName() (myName error) { + defer func() { + myName = nil + }() + return } -var e = func() (err error) { // ERROR `named return "err" with type "error" found` - err = nil +func errorIsNoAssigned() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + processError(err) + if err == nil { + } + switch err { + case nil: + default: + } + }() return } -var e2 = func() (_ error) { +func shadowVariable() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + err := errors.New("xxx") + _ = err + }() return } -func deferWithError() (err error) { // ERROR `named return "err" with type "error" found` +func shadowVariableButAssign() (err error) { defer func() { - err = nil // use flag to allow this + { + err := errors.New("xxx") + _ = err + } + err = nil }() return } -var ( - f = func() { - return - } +func shadowVariable2() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + a, err := doSomething() + _ = a + _ = err + }() + return +} - g = func() error { - return nil - } +type errorAlias = error - h = func() (err error) { // ERROR `named return "err" with type "error" found` +func errorAliasIsTheSame() (err errorAlias) { + defer func() { err = nil - return - } + }() + return +} + +type myError error // linter doesn't check underlying type (yet?) + +func customTypeWithErrorUnderline() (err myError) { // ERROR `named return "err" with type "myError" found` + defer func() { + err = nil + }() + return +} + +type myError2 interface{ error } // linter doesn't check interfaces + +func customTypeWithTheSameInterface() (err myError2) { // ERROR `named return "err" with type "myError2" found` + defer func() { + err = nil + }() + return +} + +var _ error = myError3{} + +type myError3 struct{} // linter doesn't check interfaces + +func (m myError3) Error() string { return "" } + +func customTypeImplementingErrorInterface() (err myError3) { // ERROR `named return "err" with type "myError3" found` + defer func() { + err = struct{}{} + }() + return +} - h2 = func() (_ error) { +func shadowErrorType() { + type error interface { // linter understands that this is not built-in error, even if it has the same name + Error() string + } + do := func() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + err = nil + }() return } -) + do() +} -// this should not match as the implementation does not need named parameters (see below) -type funcDefintion func(arg1, arg2 interface{}) (num int, err error) +func notTheLast() (err error, _ int) { + defer func() { + err = nil + }() + return +} -func funcDefintionImpl(arg1, arg2 interface{}) (int, error) { - return 0, nil +func twoErrorsCombined() (err1, err2 error) { + defer func() { + err1 = nil + err2 = nil + }() + return } -func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // ERROR `named return "num" with type "int" found` - return 0, nil +func twoErrorsSeparated() (err1 error, err2 error) { + defer func() { + err1 = nil + err2 = nil + }() + return } -func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // ERROR `named return "num" with type "int" found` - return 0, nil +func errorSlice() (err []error) { // ERROR `named return "err" with type "\[\]error" found` + defer func() { + err = nil + }() + return } -func funcDefintionImpl4(arg1, arg2 interface{}) (_ int, _ error) { - return 0, nil +func deferWithVariable() (err error) { // ERROR `named return "err" with type "error" found` + f := func() { + err = nil + } + defer f() // linter can't catch closure passed via variable (yet?) + return } -var funcVar = func() (msg string) { // ERROR `named return "msg" with type "string" found` - msg = "c" - return msg +func uberMultierr() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + multierrAppendInto(&err, nil) // linter doesn't allow it (yet?) + }() + return } -var funcVar2 = func() (_ string) { - msg := "c" - return msg +func deferInDefer() (err error) { + defer func() { + defer func() { + err = nil + }() + }() + return } -func test() { - a := funcVar() - _ = a +func twoDefers() (err error) { + defer func() {}() + defer func() { + err = nil + }() + return +} - var function funcDefintion - function = funcDefintionImpl - i, err := function("", "") - _ = i - _ = err - function = funcDefintionImpl2 - i, err = function("", "") - _ = i - _ = err +func callFunction() (err error) { + defer func() { + _, err = doSomething() + }() + return } -func good(i string) string { - return i +func callFunction2() (err error) { + defer func() { + var a int + a, err = doSomething() + _ = a + }() + return } -func bad(i string, a, b int) (ret1 string, ret2 interface{}, ret3, ret4 int, ret5 asdf) { // ERROR `named return "ret1" with type "string" found` - x := "dummy" - return fmt.Sprintf("%s", x), nil, 1, 2, asdf{} +func deepInside() (err error) { + if true { + switch true { + case false: + for i := 0; i < 10; i++ { + go func() { + select { + default: + defer func() { + if true { + switch true { + case false: + for j := 0; j < 10; j++ { + go func() { + select { + default: + err = nil + } + }() + } + } + } + }() + } + }() + } + } + } + return } -func bad2() (msg string, err error) { // ERROR `named return "msg" with type "string" found` - msg = "" - err = nil +var goodFuncLiteral = func() (err error) { + defer func() { + err = nil + }() return } -func myLog(format string, args ...interface{}) { +var badFuncLiteral = func() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + }() return } -type obj struct{} +func funcLiteralInsideFunc() error { + do := func() (err error) { + defer func() { + err = nil + }() + return + } + return do() +} -func (o *obj) func1() (err error) { return nil } // ERROR `named return "err" with type "error" found` +type x struct{} + +func (x) goodMethod() (err error) { + defer func() { + err = nil + }() + return +} + +func (x) badMethod() (err error) { // ERROR `named return "err" with type "error" found` + defer func() { + _ = err + }() + return +} -func (o *obj) func2() (_ error) { return nil } +func processError(error) {} +func doSomething() (int, error) { return 10, nil } +func multierrAppendInto(*error, error) bool { return false } // https://pkg.go.dev/go.uber.org/multierr#AppendInto diff --git a/test/testdata/nonamedreturns_custom.go b/test/testdata/nonamedreturns_custom.go index 0e0ceacb99b6..c9289e1e9960 100644 --- a/test/testdata/nonamedreturns_custom.go +++ b/test/testdata/nonamedreturns_custom.go @@ -2,224 +2,124 @@ // config_path: testdata/configs/nonamedreturns.yml package testdata -func simple() (err error) { - defer func() { - err = nil - }() - return -} - -func twoReturnParams() (i int, err error) { // ERROR `named return "i" with type "int" found` - defer func() { - i = 0 - err = nil - }() - return -} +import "fmt" -func allUnderscoresExceptError() (_ int, err error) { - defer func() { - err = nil - }() - return +type asdf struct { + test string } -func customName() (myName error) { - defer func() { - myName = nil - }() +func noParams() { return } -func errorIsNoAssigned() (err error) { // ERROR `named return "err" with type "error" found` - defer func() { - _ = err - processError(err) - if err == nil { - } - switch err { - case nil: - default: - } - }() +var c = func() { return } -func shadowVariable() (err error) { - defer func() { - err := 123 // linter doesn't understand that this is different variable (even if different type) (yet?) - _ = err - }() - return +var d = func() error { + return nil } -func shadowVariable2() (err error) { - defer func() { - a, err := doSomething() // linter doesn't understand that this is different variable (yet?) - _ = a - _ = err - }() +var e = func() (err error) { // ERROR `named return "err" with type "error" found` + err = nil return } -type myError = error // linter doesn't understand that this is the same type (yet?) - -func customType() (err myError) { // ERROR `named return "err" with type "myError" found` - defer func() { - err = nil - }() +var e2 = func() (_ error) { return } -func notTheLast() (err error, _ int) { +func deferWithError() (err error) { // ERROR `named return "err" with type "error" found` defer func() { - err = nil + err = nil // use flag to allow this }() return } -func twoErrorsCombined() (err1, err2 error) { - defer func() { - err1 = nil - err2 = nil - }() - return -} +var ( + f = func() { + return + } -func twoErrorsSeparated() (err1 error, err2 error) { - defer func() { - err1 = nil - err2 = nil - }() - return -} + g = func() error { + return nil + } -func errorSlice() (err []error) { // ERROR `named return "err" with type "\[\]error" found` - defer func() { + h = func() (err error) { // ERROR `named return "err" with type "error" found` err = nil - }() - return -} + return + } -func deferWithVariable() (err error) { // ERROR `named return "err" with type "error" found` - f := func() { - err = nil + h2 = func() (_ error) { + return } - defer f() // linter can't catch closure passed via variable (yet?) - return -} +) -func uberMultierr() (err error) { // ERROR `named return "err" with type "error" found` - defer func() { - multierrAppendInto(&err, nil) // linter doesn't allow it (yet?) - }() - return -} +// this should not match as the implementation does not need named parameters (see below) +type funcDefintion func(arg1, arg2 interface{}) (num int, err error) -func deferInDefer() (err error) { - defer func() { - defer func() { - err = nil - }() - }() - return +func funcDefintionImpl(arg1, arg2 interface{}) (int, error) { + return 0, nil } -func twoDefers() (err error) { - defer func() {}() - defer func() { - err = nil - }() - return +func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // ERROR `named return "num" with type "int" found` + return 0, nil } -func callFunction() (err error) { - defer func() { - _, err = doSomething() - }() - return +func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // ERROR `named return "num" with type "int" found` + return 0, nil } -func callFunction2() (err error) { - defer func() { - var a int - a, err = doSomething() - _ = a - }() - return +func funcDefintionImpl4(arg1, arg2 interface{}) (_ int, _ error) { + return 0, nil } -func deepInside() (err error) { - if true { - switch true { - case false: - for i := 0; i < 10; i++ { - go func() { - select { - default: - defer func() { - if true { - switch true { - case false: - for j := 0; j < 10; j++ { - go func() { - select { - default: - err = nil - } - }() - } - } - } - }() - } - }() - } - } - } - return +var funcVar = func() (msg string) { // ERROR `named return "msg" with type "string" found` + msg = "c" + return msg } -var goodFuncLiteral = func() (err error) { - defer func() { - err = nil - }() - return +var funcVar2 = func() (_ string) { + msg := "c" + return msg } -var badFuncLiteral = func() (err error) { // ERROR `named return "err" with type "error" found` - defer func() { - _ = err - }() - return +func test() { + a := funcVar() + _ = a + + var function funcDefintion + function = funcDefintionImpl + i, err := function("", "") + _ = i + _ = err + function = funcDefintionImpl2 + i, err = function("", "") + _ = i + _ = err } -func funcLiteralInsideFunc() error { - do := func() (err error) { - defer func() { - err = nil - }() - return - } - return do() +func good(i string) string { + return i } -type x struct{} +func bad(i string, a, b int) (ret1 string, ret2 interface{}, ret3, ret4 int, ret5 asdf) { // ERROR `named return "ret1" with type "string" found` + x := "dummy" + return fmt.Sprintf("%s", x), nil, 1, 2, asdf{} +} -func (x) goodMethod() (err error) { - defer func() { - err = nil - }() +func bad2() (msg string, err error) { // ERROR `named return "msg" with type "string" found` + msg = "" + err = nil return } -func (x) badMethod() (err error) { // ERROR `named return "err" with type "error" found` - defer func() { - _ = err - }() +func myLog(format string, args ...interface{}) { return } -func processError(error) {} -func doSomething() (int, error) { return 10, nil } -func multierrAppendInto(*error, error) bool { return false } // https://pkg.go.dev/go.uber.org/multierr#AppendInto +type obj struct{} + +func (o *obj) func1() (err error) { return nil } // ERROR `named return "err" with type "error" found` + +func (o *obj) func2() (_ error) { return nil } From 44e9b34d1dce0af47615743214588d069a6908a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 14:15:47 +0200 Subject: [PATCH 056/162] build(deps): bump github.com/stretchr/testify from 1.7.4 to 1.7.5 (#2942) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fce741793d5d..c5f649ce433f 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 - github.com/stretchr/testify v1.7.4 + github.com/stretchr/testify v1.7.5 github.com/sylvia7788/contextcheck v1.0.4 github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 diff --git a/go.sum b/go.sum index 2d22cfe800a2..e8b1954a384e 100644 --- a/go.sum +++ b/go.sum @@ -662,8 +662,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM= -github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.7.5 h1:s5PTfem8p8EbKQOctVV53k6jCJt3UX4IEJzwh+C324Q= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= From 3071fecb81e6f030a3a9af1e22993e76e6b732e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 14:16:01 +0200 Subject: [PATCH 057/162] build(deps): bump gitlab.com/bosi/decorder from 0.2.1 to 0.2.2 (#2943) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c5f649ce433f..8ed0c150c392 100644 --- a/go.mod +++ b/go.mod @@ -98,7 +98,7 @@ require ( github.com/valyala/quicktemplate v1.7.0 github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 - gitlab.com/bosi/decorder v0.2.1 + gitlab.com/bosi/decorder v0.2.2 golang.org/x/tools v0.1.11 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 diff --git a/go.sum b/go.sum index e8b1954a384e..2dee0de2f096 100644 --- a/go.sum +++ b/go.sum @@ -730,8 +730,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -gitlab.com/bosi/decorder v0.2.1 h1:ehqZe8hI4w7O4b1vgsDZw1YU1PE7iJXrQWFMsocbQ1w= -gitlab.com/bosi/decorder v0.2.1/go.mod h1:6C/nhLSbF6qZbYD8bRmISBwc6vcWdNsiIBkRvjJFrH0= +gitlab.com/bosi/decorder v0.2.2 h1:LRfb3lP6mZWjUzpMOCLTVjcnl/SqZWBWmKNqQvMocQs= +gitlab.com/bosi/decorder v0.2.2/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= From 3a0f646e315c59ffd43fc55c450a7885310f13d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 14:44:44 +0200 Subject: [PATCH 058/162] build(deps): bump github.com/maratori/testpackage from 1.0.1 to 1.1.0 (#2945) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 5 +++++ go.mod | 2 +- go.sum | 5 ++--- pkg/config/linters_settings.go | 6 ++++-- pkg/golinters/testpackage.go | 5 ++++- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 5b1a77ecef94..b19e682ebd02 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1607,6 +1607,11 @@ linters-settings: # Regexp pattern to skip files. # Default: "(export|internal)_test\\.go" skip-regexp: (export|internal)_test\.go + # List of packages that don't end with _test that tests are allowed to be in. + # Default: "main" + allow-packages: + - example + - main thelper: test: diff --git a/go.mod b/go.mod index 8ed0c150c392..6b3c1997a06e 100644 --- a/go.mod +++ b/go.mod @@ -55,7 +55,7 @@ require ( github.com/ldez/tagliatelle v0.3.1 github.com/leonklingele/grouper v1.1.0 github.com/lufeee/execinquery v1.2.1 - github.com/maratori/testpackage v1.0.1 + github.com/maratori/testpackage v1.1.0 github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // v1.0 github.com/mattn/go-colorable v0.1.12 github.com/mbilski/exhaustivestruct v1.2.0 diff --git a/go.sum b/go.sum index 2dee0de2f096..5fcbca7e5bb1 100644 --- a/go.sum +++ b/go.sum @@ -428,8 +428,8 @@ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2 github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/maratori/testpackage v1.0.1 h1:QtJ5ZjqapShm0w5DosRjg0PRlSdAdlx+W6cCKoALdbQ= -github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= +github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= +github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= @@ -1028,7 +1028,6 @@ golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWc golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 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= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index c91f4f057e7d..3609958c69b8 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -88,7 +88,8 @@ var defaultLintersSettings = LintersSettings{ Qualified: false, }, Testpackage: TestpackageSettings{ - SkipRegexp: `(export|internal)_test\.go`, + SkipRegexp: `(export|internal)_test\.go`, + AllowPackages: []string{"main"}, }, Unparam: UnparamSettings{ Algo: "cha", @@ -558,7 +559,8 @@ type TagliatelleSettings struct { } type TestpackageSettings struct { - SkipRegexp string `mapstructure:"skip-regexp"` + SkipRegexp string `mapstructure:"skip-regexp"` + AllowPackages []string `mapstructure:"allow-packages"` } type ThelperSettings struct { diff --git a/pkg/golinters/testpackage.go b/pkg/golinters/testpackage.go index 836403826c14..2cc627595ff1 100644 --- a/pkg/golinters/testpackage.go +++ b/pkg/golinters/testpackage.go @@ -1,6 +1,8 @@ package golinters import ( + "strings" + "github.com/maratori/testpackage/pkg/testpackage" "golang.org/x/tools/go/analysis" @@ -15,7 +17,8 @@ func NewTestpackage(cfg *config.TestpackageSettings) *goanalysis.Linter { if cfg != nil { settings = map[string]map[string]interface{}{ a.Name: { - testpackage.SkipRegexpFlagName: cfg.SkipRegexp, + testpackage.SkipRegexpFlagName: cfg.SkipRegexp, + testpackage.AllowPackagesFlagName: strings.Join(cfg.AllowPackages, ","), }, } } From 1d8a15a0cc213467659e8b5753526203c8f0a869 Mon Sep 17 00:00:00 2001 From: sivchari Date: Thu, 30 Jun 2022 23:36:33 +0900 Subject: [PATCH 059/162] add nosnakecase lint (#2828) Co-authored-by: Fernandez Ludovic --- go.mod | 1 + go.sum | 8 +- pkg/golinters/nosnakecase.go | 19 +++++ pkg/lint/lintersdb/manager.go | 5 ++ test/run_test.go | 2 +- test/testdata/nosnakecase.go | 149 ++++++++++++++++++++++++++++++++++ 6 files changed, 177 insertions(+), 7 deletions(-) create mode 100644 pkg/golinters/nosnakecase.go create mode 100644 test/testdata/nosnakecase.go diff --git a/go.mod b/go.mod index 6b3c1997a06e..f7dc42ae6cf4 100644 --- a/go.mod +++ b/go.mod @@ -155,6 +155,7 @@ require ( github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 // indirect github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect + github.com/sivchari/nosnakecase v1.5.0 github.com/spf13/afero v1.8.2 // 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 5fcbca7e5bb1..64527bf4e018 100644 --- a/go.sum +++ b/go.sum @@ -617,6 +617,8 @@ github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= +github.com/sivchari/nosnakecase v1.5.0 h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M= +github.com/sivchari/nosnakecase v1.5.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/tenv v1.6.0 h1:FyE4WysxLwYljKqWhTfOMjgKjBSnmzzg7lWOmpDiAcc= github.com/sivchari/tenv v1.6.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -671,17 +673,11 @@ github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= -github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= -github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= -github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= diff --git a/pkg/golinters/nosnakecase.go b/pkg/golinters/nosnakecase.go new file mode 100644 index 000000000000..26d5d6d4c84f --- /dev/null +++ b/pkg/golinters/nosnakecase.go @@ -0,0 +1,19 @@ +package golinters + +import ( + "github.com/sivchari/nosnakecase" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewNoSnakeCase() *goanalysis.Linter { + a := nosnakecase.Analyzer + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeSyntax) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index e6c069b7f56f..f85a0b16681e 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -631,6 +631,11 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/firefart/nonamedreturns"), + linter.NewConfig(golinters.NewNoSnakeCase()). + WithSince("v1.47.0"). + WithPresets(linter.PresetStyle). + WithURL("https://github.com/sivchari/nosnakecase"), + linter.NewConfig(golinters.NewNoSprintfHostPort()). WithSince("v1.46.0"). WithPresets(linter.PresetStyle). diff --git a/test/run_test.go b/test/run_test.go index 07a31355c9ce..254f659787b9 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -95,7 +95,7 @@ func TestTestsAreLintedByDefault(t *testing.T) { } func TestCgoOk(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--enable-all", getTestDataDir("cgo")).ExpectNoIssues() + testshared.NewLintRunner(t).Run("--no-config", "--enable-all", "-D", "nosnakecase", getTestDataDir("cgo")).ExpectNoIssues() } func TestCgoWithIssues(t *testing.T) { diff --git a/test/testdata/nosnakecase.go b/test/testdata/nosnakecase.go new file mode 100644 index 000000000000..d52c474dd057 --- /dev/null +++ b/test/testdata/nosnakecase.go @@ -0,0 +1,149 @@ +//args: -Enosnakecase +package testdata + +import ( + _ "fmt" + f_m_t "fmt" // ERROR "f_m_t contains underscore. You should use mixedCap or MixedCap." +) + +// global variable name with underscore. +var v_v = 0 // ERROR "v_v contains underscore. You should use mixedCap or MixedCap." + +// global constant name with underscore. +const c_c = 0 // ERROR "c_c contains underscore. You should use mixedCap or MixedCap." + +// struct name with underscore. +type S_a struct { // ERROR "S_a contains underscore. You should use mixedCap or MixedCap." + fi int +} + +// non-exported struct field name with underscore. +type Sa struct { + fi_a int // // ERROR "fi_a contains underscore. You should use mixedCap or MixedCap." +} + +// function as struct field, with parameter name with underscore. +type Sb struct { + fib func(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +} + +// exported struct field with underscore. +type Sc struct { + Fi_A int // ERROR "Fi_A contains underscore. You should use mixedCap or MixedCap." +} + +// function as struct field, with return name with underscore. +type Sd struct { + fib func(p int) (r_a int) // ERROR "r_a contains underscore. You should use mixedCap or MixedCap." +} + +// interface name with underscore. +type I_a interface { // ERROR "I_a contains underscore. You should use mixedCap or MixedCap." + fn(p int) +} + +// interface with parameter name with underscore. +type Ia interface { + fn(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +} + +// interface with parameter name with underscore. +type Ib interface { + Fn(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +} + +// function as struct field, with return name with underscore. +type Ic interface { + Fn_a() // ERROR "Fn_a contains underscore. You should use mixedCap or MixedCap." +} + +// interface with return name with underscore. +type Id interface { + Fn() (r_a int) // ERROR "r_a contains underscore. You should use mixedCap or MixedCap." +} + +// function name with underscore. +func f_a() {} // ERROR "f_a contains underscore. You should use mixedCap or MixedCap." + +// function's parameter name with underscore. +func fb(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +// named return with underscore. +func fc() (r_b int) { // ERROR "r_b contains underscore. You should use mixedCap or MixedCap." + return 0 +} + +// local variable (short declaration) with underscore. +func fd(p int) int { + v_b := p * 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +// local constant with underscore. +func fe(p int) int { + const v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +// local variable with underscore. +func ff(p int) int { + var v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +// inner function, parameter name with underscore. +func fg() { + fgl := func(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + fgl(1) +} + +type Foo struct{} + +// method name with underscore. +func (f Foo) f_a() {} // ERROR "f_a contains underscore. You should use mixedCap or MixedCap." + +// method's parameter name with underscore. +func (f Foo) fb(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +// named return with underscore. +func (f Foo) fc() (r_b int) { return 0 } // ERROR "r_b contains underscore. You should use mixedCap or MixedCap." + +// local variable (short declaration) with underscore. +func (f Foo) fd(p int) int { + v_b := p * 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +// local constant with underscore. +func (f Foo) fe(p int) int { + const v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +// local variable with underscore. +func (f Foo) ff(p int) int { + var v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + + return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." +} + +func fna(a, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +func fna1(a string, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +func fnb(a, b, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +func fnb1(a, b string, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + +func fnd( + p_a int, // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + p_b int, // ERROR "p_b contains underscore. You should use mixedCap or MixedCap." + p_c int, // ERROR "p_c contains underscore. You should use mixedCap or MixedCap." +) { + f_m_t.Println("") // ERROR "f_m_t contains underscore. You should use mixedCap or MixedCap." +} From efd5061004339d38b54e09457bb3c49ab7d47fe1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 11:10:01 +0200 Subject: [PATCH 060/162] build(deps): bump postcss from 8.4.13 to 8.4.14 in /docs (#2949) --- docs/package-lock.json | 30 +++++++++++++++--------------- docs/package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 5136ffe43dd1..088e314446b0 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -40,7 +40,7 @@ "gatsby-transformer-sharp": "^4.13.0", "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", - "postcss": "^8.4.13", + "postcss": "^8.4.14", "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", @@ -18765,9 +18765,9 @@ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -19853,9 +19853,9 @@ } }, "node_modules/postcss": { - "version": "8.4.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", - "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "funding": [ { "type": "opencollective", @@ -19867,7 +19867,7 @@ } ], "dependencies": { - "nanoid": "^3.3.3", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -39892,9 +39892,9 @@ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" }, "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "napi-build-utils": { "version": "1.0.2", @@ -40743,11 +40743,11 @@ } }, "postcss": { - "version": "8.4.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", - "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "requires": { - "nanoid": "^3.3.3", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } diff --git a/docs/package.json b/docs/package.json index ec492d933e76..cfa388748fc6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -37,7 +37,7 @@ "gatsby-transformer-sharp": "^4.13.0", "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", - "postcss": "^8.4.13", + "postcss": "^8.4.14", "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", From 1f1d4dbf9014afa85ff30e7edf376fccafaea2e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 11:10:15 +0200 Subject: [PATCH 061/162] build(deps): bump gatsby-remark-copy-linked-files from 5.13.0 to 5.17.0 in /docs (#2950) --- docs/package-lock.json | 30 +++++++++++++++--------------- docs/package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 088e314446b0..848a3c3c12da 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -30,7 +30,7 @@ "gatsby-plugin-sharp": "^4.13.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", - "gatsby-remark-copy-linked-files": "^5.13.0", + "gatsby-remark-copy-linked-files": "^5.17.0", "gatsby-remark-external-links": "^0.0.4", "gatsby-remark-images": "^6.15.1", "gatsby-remark-mermaid": "^2.1.0", @@ -13535,13 +13535,13 @@ } }, "node_modules/gatsby-remark-copy-linked-files": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-5.13.0.tgz", - "integrity": "sha512-aN5zMF+4LCbZJR+AQCjfy2iUQ9CakcDUoDbOyXR0fbZt7IDo/XulTtrQBg1hMnJVVr55JkTORNBNz7Rh7/5htw==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-5.17.0.tgz", + "integrity": "sha512-Q1T69Oi84UAa18//54vtMIMPRTkx+P7DQKoRMXi6r3muRAjfN/sT66ZxDdCayT5SoKYT8Opa5hGZo8N/lvtmQw==", "dependencies": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "path-is-inside": "^1.0.2", @@ -13627,9 +13627,9 @@ } }, "node_modules/gatsby-remark-copy-linked-files/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -36167,13 +36167,13 @@ } }, "gatsby-remark-copy-linked-files": { - "version": "5.13.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-5.13.0.tgz", - "integrity": "sha512-aN5zMF+4LCbZJR+AQCjfy2iUQ9CakcDUoDbOyXR0fbZt7IDo/XulTtrQBg1hMnJVVr55JkTORNBNz7Rh7/5htw==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/gatsby-remark-copy-linked-files/-/gatsby-remark-copy-linked-files-5.17.0.tgz", + "integrity": "sha512-Q1T69Oi84UAa18//54vtMIMPRTkx+P7DQKoRMXi6r3muRAjfN/sT66ZxDdCayT5SoKYT8Opa5hGZo8N/lvtmQw==", "requires": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", "is-relative-url": "^3.0.0", "lodash": "^4.17.21", "path-is-inside": "^1.0.2", @@ -36229,9 +36229,9 @@ } }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", diff --git a/docs/package.json b/docs/package.json index cfa388748fc6..f330b7b751c5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -27,7 +27,7 @@ "gatsby-plugin-sharp": "^4.13.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", - "gatsby-remark-copy-linked-files": "^5.13.0", + "gatsby-remark-copy-linked-files": "^5.17.0", "gatsby-remark-external-links": "^0.0.4", "gatsby-remark-images": "^6.15.1", "gatsby-remark-mermaid": "^2.1.0", From f545dc76b1acd1a5914fb3900fb8dd448807996b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 11:10:26 +0200 Subject: [PATCH 062/162] build(deps): bump gatsby-plugin-sharp from 4.13.0 to 4.17.0 in /docs (#2951) --- docs/package-lock.json | 136 ++++++++++++++++++++++------------------- docs/package.json | 2 +- 2 files changed, 73 insertions(+), 65 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 848a3c3c12da..6bd9a839dfe7 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -27,7 +27,7 @@ "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", - "gatsby-plugin-sharp": "^4.13.0", + "gatsby-plugin-sharp": "^4.17.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.17.0", @@ -13137,9 +13137,9 @@ } }, "node_modules/gatsby-plugin-sharp": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.13.0.tgz", - "integrity": "sha512-ajP96dj847igUl8f63L4zcVI5O3SGZALgb83/LhyN5OK9qjxE0Pbue2ZrNk2k1MV8/rc7xnzrKx+YB+jZ37AaA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.17.0.tgz", + "integrity": "sha512-+wP4hskMBSNgPYqBX2uqoqb5JUtMMvaZTzYNkZmnKkg85rHeDpUy+eMoCqrhh8wpW/NgcbQ9o6uK43jj2qv0xQ==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", @@ -13147,19 +13147,18 @@ "bluebird": "^3.7.2", "debug": "^4.3.4", "filenamify": "^4.3.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-telemetry": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.17.0", + "gatsby-plugin-utils": "^3.11.0", + "gatsby-telemetry": "^3.17.0", "got": "^11.8.3", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.4.4", "probe-image-size": "^7.2.3", "progress": "^2.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "sharp": "^0.30.3", - "svgo": "1.3.2", - "uuid": "3.4.0" + "svgo": "1.3.2" }, "engines": { "node": ">=14.15.0" @@ -13174,9 +13173,9 @@ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/gatsby-plugin-sharp/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -13198,9 +13197,9 @@ } }, "node_modules/gatsby-plugin-sharp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -13270,15 +13269,15 @@ } }, "node_modules/gatsby-plugin-utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.9.1.tgz", - "integrity": "sha512-+QVHItI9FNKuZrAa2RuAIv1fDpqu9t6PZLmLX8Rjg2XYtPuKc4pOuv9bZ/5z6fS/39JIDk+EZj3Z1cz6XO+2hA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.11.0.tgz", + "integrity": "sha512-v2D6O2aME9p7tqlGykq5mgtj7Jqp/CWatgo0zJ7bFWSYPPUpQ7jRVAph1PIgFTAV/CaUrrvt9sxdRaZrglJyug==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-sharp": "^0.9.0", + "gatsby-core-utils": "^3.17.0", + "gatsby-sharp": "^0.11.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -13403,6 +13402,18 @@ "node": ">=12" } }, + "node_modules/gatsby-plugin-utils/node_modules/gatsby-sharp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.11.0.tgz", + "integrity": "sha512-RIbU8qi/Qs7G/KJiY0zyGS9Yic5n4RpDUf/1W3gvRl78Uo3LSuIeGEpaai6mYEnreuGb5fQIcqdkYs/UV3e8WA==", + "dependencies": { + "@types/sharp": "^0.30.0", + "sharp": "^0.30.3" + }, + "engines": { + "node": ">=14.15.0" + } + }, "node_modules/gatsby-plugin-utils/node_modules/import-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", @@ -14099,6 +14110,7 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", + "optional": true, "dependencies": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -14194,9 +14206,9 @@ } }, "node_modules/gatsby-telemetry": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.15.0.tgz", - "integrity": "sha512-pXHnw79qmfN5bAVkgdQMCnq7rZFxfGU1YkZJQAG+gCsLRpDgYxgxZYhkbdRJzyF8vMYiCp7HlNsCMvBA75Rpug==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.17.0.tgz", + "integrity": "sha512-1N4uKj2Yj7AykLmwjsdOmNirf3UmP8CBXjj/LmWf5cLDVbdPqkirAlyD6uTeEliG5UFHPTlBsRi26v558mFYJQ==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -14207,7 +14219,7 @@ "boxen": "^4.2.0", "configstore": "^5.0.1", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", + "gatsby-core-utils": "^3.17.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -24485,14 +24497,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -35889,9 +35893,9 @@ } }, "gatsby-plugin-sharp": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.13.0.tgz", - "integrity": "sha512-ajP96dj847igUl8f63L4zcVI5O3SGZALgb83/LhyN5OK9qjxE0Pbue2ZrNk2k1MV8/rc7xnzrKx+YB+jZ37AaA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.17.0.tgz", + "integrity": "sha512-+wP4hskMBSNgPYqBX2uqoqb5JUtMMvaZTzYNkZmnKkg85rHeDpUy+eMoCqrhh8wpW/NgcbQ9o6uK43jj2qv0xQ==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", @@ -35899,19 +35903,18 @@ "bluebird": "^3.7.2", "debug": "^4.3.4", "filenamify": "^4.3.0", - "fs-extra": "^10.0.0", - "gatsby-core-utils": "^3.13.0", - "gatsby-plugin-utils": "^3.7.0", - "gatsby-telemetry": "^3.13.0", + "fs-extra": "^10.1.0", + "gatsby-core-utils": "^3.17.0", + "gatsby-plugin-utils": "^3.11.0", + "gatsby-telemetry": "^3.17.0", "got": "^11.8.3", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.4.4", "probe-image-size": "^7.2.3", "progress": "^2.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "sharp": "^0.30.3", - "svgo": "1.3.2", - "uuid": "3.4.0" + "svgo": "1.3.2" }, "dependencies": { "async": { @@ -35920,9 +35923,9 @@ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -35939,9 +35942,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -35989,15 +35992,15 @@ } }, "gatsby-plugin-utils": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.9.1.tgz", - "integrity": "sha512-+QVHItI9FNKuZrAa2RuAIv1fDpqu9t6PZLmLX8Rjg2XYtPuKc4pOuv9bZ/5z6fS/39JIDk+EZj3Z1cz6XO+2hA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.11.0.tgz", + "integrity": "sha512-v2D6O2aME9p7tqlGykq5mgtj7Jqp/CWatgo0zJ7bFWSYPPUpQ7jRVAph1PIgFTAV/CaUrrvt9sxdRaZrglJyug==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-sharp": "^0.9.0", + "gatsby-core-utils": "^3.17.0", + "gatsby-sharp": "^0.11.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -36080,6 +36083,15 @@ "universalify": "^2.0.0" } }, + "gatsby-sharp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.11.0.tgz", + "integrity": "sha512-RIbU8qi/Qs7G/KJiY0zyGS9Yic5n4RpDUf/1W3gvRl78Uo3LSuIeGEpaai6mYEnreuGb5fQIcqdkYs/UV3e8WA==", + "requires": { + "@types/sharp": "^0.30.0", + "sharp": "^0.30.3" + } + }, "import-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", @@ -36577,6 +36589,7 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", + "optional": true, "requires": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -36651,9 +36664,9 @@ } }, "gatsby-telemetry": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.15.0.tgz", - "integrity": "sha512-pXHnw79qmfN5bAVkgdQMCnq7rZFxfGU1YkZJQAG+gCsLRpDgYxgxZYhkbdRJzyF8vMYiCp7HlNsCMvBA75Rpug==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.17.0.tgz", + "integrity": "sha512-1N4uKj2Yj7AykLmwjsdOmNirf3UmP8CBXjj/LmWf5cLDVbdPqkirAlyD6uTeEliG5UFHPTlBsRi26v558mFYJQ==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/runtime": "^7.15.4", @@ -36663,7 +36676,7 @@ "boxen": "^4.2.0", "configstore": "^5.0.1", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", + "gatsby-core-utils": "^3.17.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -44363,11 +44376,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", diff --git a/docs/package.json b/docs/package.json index f330b7b751c5..73a5afa8ccde 100644 --- a/docs/package.json +++ b/docs/package.json @@ -24,7 +24,7 @@ "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", - "gatsby-plugin-sharp": "^4.13.0", + "gatsby-plugin-sharp": "^4.17.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.17.0", From 110cea67c8d820c4b3d3ff83dd25e784e20386b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 11:10:38 +0200 Subject: [PATCH 063/162] build(deps): bump gatsby-plugin-google-analytics from 4.13.0 to 4.17.0 in /docs (#2952) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 6bd9a839dfe7..0c13400199a3 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -18,7 +18,7 @@ "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", "gatsby-plugin-emotion": "^7.17.0", - "gatsby-plugin-google-analytics": "^4.13.0", + "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", @@ -12678,9 +12678,9 @@ } }, "node_modules/gatsby-plugin-google-analytics": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-4.13.0.tgz", - "integrity": "sha512-6Sxnah8ElfdQTtfxUw5k0iWVSKzcNYUH4hWwiO37fhJDOuFco9Wjy/eYKdb/+RlgXCJFiVrZ7PXkMRNJKxMnNA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-4.17.0.tgz", + "integrity": "sha512-Jv9h2wpVNCvALZWwakwbpD/GZ+pYzzxVATwarUm5DICj+iXx2P2Q86PzblEmxGXpRpSHdnrrN8ntzYxpm13TjQ==", "dependencies": { "@babel/runtime": "^7.15.4", "minimatch": "3.0.4", @@ -35557,9 +35557,9 @@ } }, "gatsby-plugin-google-analytics": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-4.13.0.tgz", - "integrity": "sha512-6Sxnah8ElfdQTtfxUw5k0iWVSKzcNYUH4hWwiO37fhJDOuFco9Wjy/eYKdb/+RlgXCJFiVrZ7PXkMRNJKxMnNA==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-4.17.0.tgz", + "integrity": "sha512-Jv9h2wpVNCvALZWwakwbpD/GZ+pYzzxVATwarUm5DICj+iXx2P2Q86PzblEmxGXpRpSHdnrrN8ntzYxpm13TjQ==", "requires": { "@babel/runtime": "^7.15.4", "minimatch": "3.0.4", diff --git a/docs/package.json b/docs/package.json index 73a5afa8ccde..f79882a8c415 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,7 +15,7 @@ "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", "gatsby-plugin-emotion": "^7.17.0", - "gatsby-plugin-google-analytics": "^4.13.0", + "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^4.3.1", From daf89934935ffe019df4dc33d162a8cd4c69e04a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 13:57:26 +0300 Subject: [PATCH 064/162] build(deps): bump react from 18.1.0 to 18.2.0 in /docs (#2953) Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 18.1.0 to 18.2.0. - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v18.2.0/packages/react) --- updated-dependencies: - dependency-name: react dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 0c13400199a3..944a92ae11bf 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -44,7 +44,7 @@ "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", - "react": "^18.1.0", + "react": "^18.2.0", "react-dom": "^18.1.0", "react-headroom": "^3.2.0", "react-helmet": "^6.1.0", @@ -20425,9 +20425,9 @@ } }, "node_modules/react": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", - "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -41157,9 +41157,9 @@ } }, "react": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", - "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "requires": { "loose-envify": "^1.1.0" } diff --git a/docs/package.json b/docs/package.json index f79882a8c415..d8fe54a3a35c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -41,7 +41,7 @@ "prism-react-renderer": "^1.3.3", "prop-types": "^15.8.1", "puppeteer": "^13.7.0", - "react": "^18.1.0", + "react": "^18.2.0", "react-dom": "^18.1.0", "react-headroom": "^3.2.0", "react-helmet": "^6.1.0", From f75b1a8bd4745a79ecb48ef63f6a74af9a9d6c82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 Jul 2022 14:13:55 +0300 Subject: [PATCH 065/162] build(deps): bump github.com/hashicorp/go-version from 1.5.0 to 1.6.0 (#2958) Bumps [github.com/hashicorp/go-version](https://github.com/hashicorp/go-version) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/hashicorp/go-version/releases) - [Changelog](https://github.com/hashicorp/go-version/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/go-version/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-version dependency-type: direct:production update-type: version-update:semver-minor ... 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 f7dc42ae6cf4..e64e4ab01ef8 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/gostaticanalysis/forcetypeassert v0.1.0 github.com/gostaticanalysis/nilerr v0.1.1 github.com/hashicorp/go-multierror v1.1.1 - github.com/hashicorp/go-version v1.5.0 + github.com/hashicorp/go-version v1.6.0 github.com/jgautheron/goconst v1.5.1 github.com/jingyugao/rowserrcheck v1.1.1 github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af diff --git a/go.sum b/go.sum index 64527bf4e018..00a238ee1a95 100644 --- a/go.sum +++ b/go.sum @@ -339,8 +339,8 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.5.0 h1:O293SZ2Eg+AAYijkVK3jR786Am1bhDEh2GHT0tIVE5E= -github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= From 8e0a6725edd9df6dda47cbf57a7d3197f8a9ef88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 Jul 2022 14:24:01 +0300 Subject: [PATCH 066/162] build(deps): bump github.com/shirou/gopsutil/v3 from 3.22.5 to 3.22.6 (#2959) Bumps [github.com/shirou/gopsutil/v3](https://github.com/shirou/gopsutil) from 3.22.5 to 3.22.6. - [Release notes](https://github.com/shirou/gopsutil/releases) - [Commits](https://github.com/shirou/gopsutil/compare/v3.22.5...v3.22.6) --- updated-dependencies: - dependency-name: github.com/shirou/gopsutil/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[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 e64e4ab01ef8..710a0b6e2bad 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/sanposhiho/wastedassign/v2 v2.0.6 github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c - github.com/shirou/gopsutil/v3 v3.22.5 + github.com/shirou/gopsutil/v3 v3.22.6 github.com/sirupsen/logrus v1.8.1 github.com/sivchari/containedctx v1.0.2 github.com/sivchari/tenv v1.6.0 diff --git a/go.sum b/go.sum index 00a238ee1a95..2956404de7a7 100644 --- a/go.sum +++ b/go.sum @@ -604,8 +604,8 @@ github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDx github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.22.5 h1:atX36I/IXgFiB81687vSiBI5zrMsxcIBkP9cQMJQoJA= -github.com/shirou/gopsutil/v3 v3.22.5/go.mod h1:so9G9VzeHt/hsd0YwqprnjHnfARAUktauykSbr+y2gA= +github.com/shirou/gopsutil/v3 v3.22.6 h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ= +github.com/shirou/gopsutil/v3 v3.22.6/go.mod h1:EdIubSnZhbAvBS1yJ7Xi+AShB/hxwLHOMz4MCYz7yMs= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -954,6 +954,7 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220624220833-87e55d714810 h1:rHZQSjJdAI4Xf5Qzeh2bBc5YJIkPFVM6oDtMFYmgws0= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= From bb5b6625b8908387bb315b7b54329a4ca89c6f4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 Jul 2022 14:40:29 +0300 Subject: [PATCH 067/162] build(deps): bump github.com/stretchr/testify from 1.7.5 to 1.8.0 (#2957) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.5 to 1.8.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.5...v1.8.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... 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 710a0b6e2bad..eab81eea889b 100644 --- a/go.mod +++ b/go.mod @@ -85,7 +85,7 @@ require ( github.com/spf13/viper v1.12.0 github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 - github.com/stretchr/testify v1.7.5 + github.com/stretchr/testify v1.8.0 github.com/sylvia7788/contextcheck v1.0.4 github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 diff --git a/go.sum b/go.sum index 2956404de7a7..ef456e74b3b7 100644 --- a/go.sum +++ b/go.sum @@ -664,8 +664,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.7.5 h1:s5PTfem8p8EbKQOctVV53k6jCJt3UX4IEJzwh+C324Q= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= From a64951caf39c8015294da1d964581401db96f8c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 04:24:15 +0200 Subject: [PATCH 068/162] build(deps): bump parse-url from 6.0.0 to 6.0.2 in /docs (#2961) Co-authored-by: Fernandez Ludovic --- docs/package-lock.json | 28 ++++++++++++++-------------- go.sum | 1 + 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 944a92ae11bf..660807e91678 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -19538,9 +19538,9 @@ } }, "node_modules/parse-path": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", - "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", + "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", "dependencies": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", @@ -19554,13 +19554,13 @@ "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" }, "node_modules/parse-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", - "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.2.tgz", + "integrity": "sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ==", "dependencies": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", - "parse-path": "^4.0.0", + "parse-path": "^4.0.4", "protocols": "^1.4.0" } }, @@ -40489,9 +40489,9 @@ } }, "parse-path": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", - "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.4.tgz", + "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", "requires": { "is-ssh": "^1.3.0", "protocols": "^1.4.0", @@ -40505,13 +40505,13 @@ "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" }, "parse-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.0.tgz", - "integrity": "sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-6.0.2.tgz", + "integrity": "sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ==", "requires": { "is-ssh": "^1.3.0", "normalize-url": "^6.1.0", - "parse-path": "^4.0.0", + "parse-path": "^4.0.4", "protocols": "^1.4.0" } }, diff --git a/go.sum b/go.sum index ef456e74b3b7..d1f0ef1b740c 100644 --- a/go.sum +++ b/go.sum @@ -664,6 +664,7 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= From 9317da6cf0b02f1379f87f211f41f1034c7fc623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Jul 2022 17:57:12 +0200 Subject: [PATCH 069/162] build(deps): bump github.com/uudashr/gocognit from 1.0.5 to 1.0.6 (#2962) --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index eab81eea889b..67cd4c202670 100644 --- a/go.mod +++ b/go.mod @@ -94,7 +94,7 @@ require ( github.com/tommy-muehle/go-mnd/v2 v2.5.0 github.com/ultraware/funlen v0.0.3 github.com/ultraware/whitespace v0.0.5 - github.com/uudashr/gocognit v1.0.5 + github.com/uudashr/gocognit v1.0.6 github.com/valyala/quicktemplate v1.7.0 github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 @@ -171,7 +171,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220624220833-87e55d714810 // indirect + golang.org/x/sys v0.0.0-20220702020025-31831981b65f // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index d1f0ef1b740c..c1c4c3431486 100644 --- a/go.sum +++ b/go.sum @@ -700,8 +700,8 @@ github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqz github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= 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/uudashr/gocognit v1.0.5 h1:rrSex7oHr3/pPLQ0xoWq108XMU8s678FJcQ+aSfOHa4= -github.com/uudashr/gocognit v1.0.5/go.mod h1:wgYz0mitoKOTysqxTDMOUXg+Jb5SvtihkfmugIZYpEA= +github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= +github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= 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.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= @@ -956,8 +956,8 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220624220833-87e55d714810 h1:rHZQSjJdAI4Xf5Qzeh2bBc5YJIkPFVM6oDtMFYmgws0= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f h1:xdsejrW/0Wf2diT5CPp3XmKUNbr7Xvw8kYilQ+6qjRY= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f/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= @@ -1059,7 +1059,6 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= From b8f1e2a549d4f4a0fcef9f4e99b9646dd84aa356 Mon Sep 17 00:00:00 2001 From: Loong Dai Date: Sun, 10 Jul 2022 05:15:47 +0800 Subject: [PATCH 070/162] build(deps): bump github.com/daixiang0/gci from 0.3.4 to 0.4.0 (#2965) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 17 +++-------------- go.mod | 2 +- go.sum | 5 +++-- pkg/config/linters_settings.go | 12 +++++------- pkg/golinters/gci.go | 30 ++++++++++-------------------- 5 files changed, 22 insertions(+), 44 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index b19e682ebd02..00c7d56eb00e 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -341,28 +341,17 @@ linters-settings: # DEPRECATED: use `sections` and `prefix(github.com/org/project)` instead. local-prefixes: github.com/org/project - # Checks that no inline Comments are present. - # Default: false - no-inline-comments: true - - # Checks that no prefix Comments(comment lines above an import) are present. - # Default: false - no-prefix-comments: true - # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). # Default: ["standard", "default"] 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. - - comment(your text here) # Prints the specified indented comment. - - newLine # Prints an empty line - prefix(github.com/org/project) # Groups all imports with the specified Prefix. - # Separators that should be present between sections. - # Default: ["newLine"] - section-separators: - - newLine + # Skip generated files. + # Default: true + skip-generated: false gocognit: # Minimal code complexity to report diff --git a/go.mod b/go.mod index 67cd4c202670..f1a9a7b0dac7 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.3.4 + github.com/daixiang0/gci v0.4.0 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index c1c4c3431486..ad2e581d6471 100644 --- a/go.sum +++ b/go.sum @@ -129,8 +129,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.3.4 h1:+EZ83znNs73C9ZBTM7xhNagMP6gJs5wlptiFiuce5BM= -github.com/daixiang0/gci v0.3.4/go.mod h1:pB1j339Q+2sv/EyKd4dgvGXcaBGIErim+dlhLDtqeW4= +github.com/daixiang0/gci v0.4.0 h1:WKWAjTsU05SQjDRpeyiJdYo4Jfh8nWpgctffJuqBXmc= +github.com/daixiang0/gci v0.4.0/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -681,6 +681,7 @@ github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 3609958c69b8..8ff4fbd858ba 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -31,8 +31,8 @@ var defaultLintersSettings = LintersSettings{ ExcludeGodocExamples: true, }, Gci: GciSettings{ - Sections: []string{"standard", "default"}, - SectionSeparator: []string{"newline"}, + Sections: []string{"standard", "default"}, + SkipGenerated: true, }, Gocognit: GocognitSettings{ MinComplexity: 30, @@ -275,11 +275,9 @@ type FunlenSettings struct { } type GciSettings struct { - LocalPrefixes string `mapstructure:"local-prefixes"` // Deprecated - NoInlineComments bool `mapstructure:"no-inline-comments"` - NoPrefixComments bool `mapstructure:"no-prefix-comments"` - Sections []string `mapstructure:"sections"` - SectionSeparator []string `mapstructure:"section-separators"` + LocalPrefixes string `mapstructure:"local-prefixes"` // Deprecated + Sections []string `mapstructure:"sections"` + SkipGenerated bool `mapstructure:"skip-generated"` } type GocognitSettings struct { diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index fec1db4c898e..72c1776fde0b 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -5,7 +5,7 @@ import ( "strings" "sync" - gcicfg "github.com/daixiang0/gci/pkg/configuration" + gcicfg "github.com/daixiang0/gci/pkg/config" "github.com/daixiang0/gci/pkg/gci" "github.com/pkg/errors" "golang.org/x/tools/go/analysis" @@ -27,15 +27,13 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter { Run: goanalysis.DummyRun, } - var cfg *gci.GciConfiguration + var cfg *gcicfg.Config if settings != nil { - rawCfg := gci.GciStringConfiguration{ - Cfg: gcicfg.FormatterConfiguration{ - NoInlineComments: settings.NoInlineComments, - NoPrefixComments: settings.NoPrefixComments, + rawCfg := gcicfg.YamlConfig{ + Cfg: gcicfg.BoolConfig{ + SkipGenerated: settings.SkipGenerated, }, - SectionStrings: settings.Sections, - SectionSeparatorStrings: settings.SectionSeparator, + SectionStrings: settings.Sections, } if settings.LocalPrefixes != "" { @@ -75,7 +73,7 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter { }).WithLoadMode(goanalysis.LoadModeSyntax) } -func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gci.GciConfiguration, lock *sync.Mutex) ([]goanalysis.Issue, error) { +func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lock *sync.Mutex) ([]goanalysis.Issue, error) { var fileNames []string for _, f := range pass.Files { pos := pass.Fset.PositionFor(f.Pos(), false) @@ -111,28 +109,20 @@ func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gci.GciConfigurat func getErrorTextForGci(settings config.GciSettings) string { text := "File is not `gci`-ed" - hasOptions := settings.NoInlineComments || settings.NoPrefixComments || len(settings.Sections) > 0 || len(settings.SectionSeparator) > 0 + hasOptions := settings.SkipGenerated || len(settings.Sections) > 0 if !hasOptions { return text } text += " with" - if settings.NoInlineComments { - text += " -NoInlineComments" - } - - if settings.NoPrefixComments { - text += " -NoPrefixComments" + if settings.SkipGenerated { + text += " -skip-generated" } if len(settings.Sections) > 0 { text += " -s " + strings.Join(settings.Sections, ",") } - if len(settings.SectionSeparator) > 0 { - text += " -x " + strings.Join(settings.SectionSeparator, ",") - } - return text } From b050b42309fecb93bc44466a0d0ad122b4ca4f09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Jul 2022 23:29:25 +0200 Subject: [PATCH 071/162] build(deps): bump moment from 2.29.2 to 2.29.4 in /docs (#2967) --- docs/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 660807e91678..06bc4eac19bb 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -18657,9 +18657,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "engines": { "node": "*" } @@ -39796,9 +39796,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "moment-mini": { "version": "2.24.0", From 9ebc2d523755e0b1c7db298eed7728916291d875 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Jul 2022 08:53:52 +0200 Subject: [PATCH 072/162] build(deps): bump moment from 2.29.2 to 2.29.4 in /.github/contributors (#2966) --- .github/contributors/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/contributors/package-lock.json b/.github/contributors/package-lock.json index a4b018da16c8..d6009e8db2b2 100644 --- a/.github/contributors/package-lock.json +++ b/.github/contributors/package-lock.json @@ -400,9 +400,9 @@ "integrity": "sha1-NMYjGW02+y7i5WGrYHMFYy4AYZ8=" }, "node_modules/moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "engines": { "node": "*" } @@ -1180,9 +1180,9 @@ "integrity": "sha1-NMYjGW02+y7i5WGrYHMFYy4AYZ8=" }, "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "month-before-after": { "version": "1.0.0", From ed4befe5ef3ca39c1ad55fcbbb1c30b64e182e65 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sun, 10 Jul 2022 21:44:49 +0300 Subject: [PATCH 073/162] dev: change err to nil (#2971) --- pkg/commands/cache.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkg/commands/cache.go b/pkg/commands/cache.go index ac3a3ee63fcc..904c2a1fc5c1 100644 --- a/pkg/commands/cache.go +++ b/pkg/commands/cache.go @@ -73,11 +73,8 @@ func (e *Executor) executeCacheStatus(_ *cobra.Command, args []string) { func dirSizeBytes(path string) (int64, error) { var size int64 err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error { - if err != nil { - return err - } - if !info.IsDir() { - size += info.Size() + if err == nil && !info.IsDir() { + size = info.Size() } return err }) From 5e183652bafe34833a0975b378c8f1da8bb7769d Mon Sep 17 00:00:00 2001 From: Loong Dai Date: Mon, 11 Jul 2022 15:59:13 +0800 Subject: [PATCH 074/162] build(deps): bump github.com/daixiang0/gci from 0.4.0 to 0.4.1 (#2973) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 8 +++++--- go.mod | 2 +- go.sum | 4 ++-- test/testdata/fix/out/gci.go | 4 ++-- test/testdata/gci.go | 4 ++-- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 00c7d56eb00e..0b09a14d5324 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -343,11 +343,13 @@ linters-settings: # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). + # The order of sections is always `standard > default > custom`, + # it cannot be changed and doesn't follow the order of `sections` option. # Default: ["standard", "default"] 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/org/project) # Groups all imports with the specified Prefix. + - standard # Standard section: captures all standard packages. + - default # Default section: contains all imports that could not be matched to another section type. + - prefix(github.com/org/project) # Custom section: groups all imports with the specified Prefix. # Skip generated files. # Default: true diff --git a/go.mod b/go.mod index f1a9a7b0dac7..87001c2ac3a8 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.4.0 + github.com/daixiang0/gci v0.4.1 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index ad2e581d6471..859cc373e0f5 100644 --- a/go.sum +++ b/go.sum @@ -129,8 +129,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.4.0 h1:WKWAjTsU05SQjDRpeyiJdYo4Jfh8nWpgctffJuqBXmc= -github.com/daixiang0/gci v0.4.0/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= +github.com/daixiang0/gci v0.4.1 h1:X2S5Vvlm24kiptIVY6+zKZD9pqI9qKww6JgAfbciSRE= +github.com/daixiang0/gci v0.4.1/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= diff --git a/test/testdata/fix/out/gci.go b/test/testdata/fix/out/gci.go index a9dfbb07d76e..c35c11ac7871 100644 --- a/test/testdata/fix/out/gci.go +++ b/test/testdata/fix/out/gci.go @@ -5,9 +5,9 @@ package gci import ( "fmt" - "github.com/golangci/golangci-lint/pkg/config" - "github.com/pkg/errors" + + "github.com/golangci/golangci-lint/pkg/config" ) func GoimportsLocalTest() { diff --git a/test/testdata/gci.go b/test/testdata/gci.go index 8f4190a20fe2..66effef786b6 100644 --- a/test/testdata/gci.go +++ b/test/testdata/gci.go @@ -5,9 +5,9 @@ package testdata import ( "fmt" - "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/config" // ERROR "File is not \\`gci\\`-ed with -skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" - "github.com/pkg/errors" + "github.com/pkg/errors" // ERROR "File is not \\`gci\\`-ed with -skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" ) func GoimportsLocalTest() { From d6a39ef374559b0692a3d4bb1d816bd9053f7083 Mon Sep 17 00:00:00 2001 From: Dan Kortschak Date: Tue, 12 Jul 2022 16:39:48 +0930 Subject: [PATCH 075/162] dev: remove kortschak from generated team (#2974) --- .github/contributors/generate.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/contributors/generate.ts b/.github/contributors/generate.ts index 1f68dc532caf..67aa03faf46d 100644 --- a/.github/contributors/generate.ts +++ b/.github/contributors/generate.ts @@ -123,6 +123,7 @@ const main = async () => { renovate: true, fossabot: true, golangcibot: true, + kortschak: true, } const res: DataJSON = { From 0abb2981360f912786371b325f181871cf534f6a Mon Sep 17 00:00:00 2001 From: Ethan Reesor Date: Wed, 13 Jul 2022 21:10:10 -0500 Subject: [PATCH 076/162] staticcheck: fix generics (#2976) Co-authored-by: Fernandez Ludovic --- .../goanalysis/runner_loadingpackage.go | 9 +------- .../goanalysis/runner_loadingpackage_ti.go | 21 +++++++++++++++++++ .../runner_loadingpackage_ti_go117.go | 20 ++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti.go create mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go diff --git a/pkg/golinters/goanalysis/runner_loadingpackage.go b/pkg/golinters/goanalysis/runner_loadingpackage.go index 1ac6b83e30de..0a9653b8d20c 100644 --- a/pkg/golinters/goanalysis/runner_loadingpackage.go +++ b/pkg/golinters/goanalysis/runner_loadingpackage.go @@ -121,14 +121,7 @@ func (lp *loadingPackage) loadFromSource(loadMode LoadMode) error { pkg.IllTyped = true - pkg.TypesInfo = &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - } + pkg.TypesInfo = newTypesInfo() importer := func(path string) (*types.Package, error) { if path == unsafePkgName { diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti.go new file mode 100644 index 000000000000..798add627074 --- /dev/null +++ b/pkg/golinters/goanalysis/runner_loadingpackage_ti.go @@ -0,0 +1,21 @@ +//go:build go1.18 +// +build go1.18 + +package goanalysis + +import ( + "go/ast" + "go/types" +) + +func newTypesInfo() *types.Info { + return &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Instances: make(map[*ast.Ident]types.Instance), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } +} diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go new file mode 100644 index 000000000000..096ac97c5f07 --- /dev/null +++ b/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go @@ -0,0 +1,20 @@ +//go:build go1.17 && !go1.18 +// +build go1.17,!go1.18 + +package goanalysis + +import ( + "go/ast" + "go/types" +) + +func newTypesInfo() *types.Info { + return &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } +} From 27f921fa14e5b7492a66b08c4c02c5c5bcc7f50e Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Fri, 15 Jul 2022 15:32:10 +0200 Subject: [PATCH 077/162] dev: use directives instead of comments for tests (#2978) --- pkg/config/linters_settings.go | 12 ++-- pkg/golinters/gofmt_test.go | 2 +- pkg/golinters/revive.go | 1 + pkg/golinters/scopelint.go | 2 + test/errchk.go | 2 + test/linters_test.go | 56 +++++++++++-------- test/testdata/asciicheck.go | 2 +- test/testdata/bidichk.go | 2 +- test/testdata/bodyclose.go | 2 +- test/testdata/containedctx.go | 2 +- test/testdata/contextcheck.go | 2 +- test/testdata/cyclop.go | 4 +- test/testdata/deadcode.go | 2 +- test/testdata/decorder.go | 4 +- test/testdata/decorder_default.go | 2 +- test/testdata/default_exclude.go | 4 +- test/testdata/depguard.go | 4 +- test/testdata/depguard_additional_guards.go | 4 +- test/testdata/depguard_ignore_file_rules.go | 4 +- test/testdata/dogsled.go | 2 +- test/testdata/dupl.go | 4 +- test/testdata/durationcheck.go | 2 +- test/testdata/errcheck.go | 2 +- test/testdata/errcheck_exclude.go | 6 +- test/testdata/errcheck_exclude_functions.go | 4 +- test/testdata/errcheck_ignore.go | 4 +- test/testdata/errcheck_ignore_default.go | 4 +- test/testdata/errcheck_type_assertions.go | 4 +- test/testdata/errchkjson.go | 4 +- .../errchkjson_check_error_free_encoding.go | 4 +- test/testdata/errchkjson_no_exported.go | 4 +- test/testdata/errname.go | 2 +- test/testdata/errorlint.go | 2 +- test/testdata/errorlint_asserts.go | 4 +- test/testdata/errorlint_comparison.go | 4 +- test/testdata/errorlint_errorf.go | 4 +- test/testdata/execinquery.go | 2 +- test/testdata/exhaustive.go | 2 +- test/testdata/exhaustive_default.go | 4 +- test/testdata/exhaustive_generated.go | 2 +- .../exhaustive_ignore_enum_members.go | 4 +- test/testdata/exhaustivestruct.go | 2 +- test/testdata/exhaustivestruct_custom.go | 4 +- test/testdata/exhaustruct.go | 2 +- test/testdata/exhaustruct_custom.go | 4 +- test/testdata/exportloopref.go | 2 +- test/testdata/fix/in/gci.go | 4 +- test/testdata/fix/in/gocritic.go | 4 +- test/testdata/fix/in/godot.go | 2 +- test/testdata/fix/in/gofmt.go | 2 +- test/testdata/fix/in/gofumpt.go | 4 +- test/testdata/fix/in/goimports.go | 2 +- test/testdata/fix/in/misspell.go | 2 +- test/testdata/fix/in/nolintlint.go | 6 +- test/testdata/fix/in/whitespace.go | 6 +- test/testdata/fix/out/gci.go | 4 +- test/testdata/fix/out/gocritic.go | 4 +- test/testdata/fix/out/godot.go | 2 +- test/testdata/fix/out/gofmt.go | 2 +- test/testdata/fix/out/gofumpt.go | 4 +- test/testdata/fix/out/goimports.go | 2 +- test/testdata/fix/out/misspell.go | 2 +- test/testdata/fix/out/nolintlint.go | 6 +- test/testdata/fix/out/whitespace.go | 6 +- test/testdata/forbidigo_example.go | 4 +- test/testdata/forbidigo_example_test.go | 4 +- .../forbidigo_include_godoc_examples_test.go | 4 +- test/testdata/forcetypeassert.go | 2 +- test/testdata/funlen.go | 6 +- test/testdata/gci.go | 4 +- test/testdata/gci/gci.go | 4 +- test/testdata/go-header_bad.go | 4 +- test/testdata/go-header_good.go | 4 +- test/testdata/gochecknoglobals.go | 2 +- test/testdata/gochecknoinits.go | 2 +- test/testdata/gocognit.go | 4 +- test/testdata/goconst.go | 2 +- test/testdata/goconst_calls_enabled.go | 4 +- test/testdata/goconst_dont_ignore_test.go | 4 +- test/testdata/goconst_ignore_test.go | 4 +- test/testdata/gocritic.go | 4 +- test/testdata/gocyclo.go | 4 +- test/testdata/godot.go | 2 +- test/testdata/godox.go | 4 +- test/testdata/goerr113.go | 2 +- test/testdata/gofmt.go | 2 +- test/testdata/gofmt_no_simplify.go | 4 +- test/testdata/gofumpt.go | 2 +- test/testdata/gofumpt_with_extra.go | 4 +- test/testdata/goimports.go | 2 +- test/testdata/goimports/goimports.go | 4 +- test/testdata/golint.go | 2 +- test/testdata/gomnd.go | 2 +- test/testdata/gomodguard.go | 4 +- test/testdata/goprintffuncname.go | 2 +- test/testdata/gosec.go | 2 +- test/testdata/gosec_rules_config.go | 4 +- test/testdata/gosec_severity_confidence.go | 4 +- test/testdata/gosimple.go | 2 +- test/testdata/govet.go | 4 +- test/testdata/govet_fieldalignment.go | 4 +- test/testdata/govet_ifaceassert.go | 4 +- test/testdata/ifshort.go | 2 +- test/testdata/importas.go | 4 +- test/testdata/importas_noalias.go | 4 +- test/testdata/importas_strict.go | 4 +- test/testdata/ineffassign.go | 2 +- test/testdata/interfacer.go | 2 +- test/testdata/ireturn_allow.go | 4 +- test/testdata/ireturn_default.go | 2 +- test/testdata/ireturn_reject_stdlib.go | 4 +- test/testdata/lll.go | 4 +- test/testdata/maintidx.go | 2 +- test/testdata/maintidx_under_100.go | 4 +- test/testdata/makezero.go | 2 +- test/testdata/makezero_always.go | 4 +- test/testdata/maligned.go | 2 +- test/testdata/misspell.go | 4 +- test/testdata/nakedret.go | 2 +- test/testdata/nestif.go | 4 +- test/testdata/nilerr.go | 2 +- test/testdata/nilnil.go | 2 +- test/testdata/nlreturn-block-size.go | 4 +- test/testdata/nlreturn.go | 2 +- test/testdata/noctx.go | 2 +- test/testdata/nolintlint.go | 10 ++-- test/testdata/nolintlint_unused.go | 6 +- test/testdata/nonamedreturns.go | 2 +- test/testdata/nonamedreturns_custom.go | 4 +- test/testdata/nosnakecase.go | 2 +- test/testdata/nosprintfhostport.go | 2 +- test/testdata/notcompiles/typecheck.go | 2 +- .../notcompiles/typecheck_many_issues.go | 2 +- test/testdata/paralleltest.go | 2 +- test/testdata/prealloc.go | 2 +- test/testdata/predeclared.go | 2 +- test/testdata/predeclared_custom.go | 4 +- test/testdata/promlinter.go | 2 +- test/testdata/revive.go | 4 +- test/testdata/revive_default.go | 2 +- test/testdata/rowserrcheck.go | 2 +- test/testdata/scopelint.go | 2 +- test/testdata/sqlclosecheck.go | 2 +- test/testdata/staticcheck.go | 2 +- test/testdata/staticcheck_in_megacheck.go | 2 +- test/testdata/structcheck.go | 2 +- test/testdata/stylecheck.go | 2 +- test/testdata/stylecheck_not_in_megacheck.go | 2 +- test/testdata/tagliatelle.go | 2 +- test/testdata/tenv.go | 4 +- test/testdata/tenv_all.go | 4 +- test/testdata/tenv_all_test.go | 4 +- test/testdata/tenv_go118.go | 2 +- test/testdata/tenv_test.go | 2 +- test/testdata/testpackage_test.go | 2 +- test/testdata/thelper.go | 2 +- test/testdata/thelper_go118.go | 2 +- test/testdata/thelper_with_options.go | 4 +- test/testdata/unconvert.go | 2 +- test/testdata/unparam.go | 2 +- test/testdata/unused.go | 2 +- test/testdata/varcheck.go | 2 +- test/testdata/varnamelen.go | 2 +- test/testdata/wastedassign.go | 2 +- test/testdata/wrapcheck.go | 2 +- test/testdata/wsl.go | 4 +- 166 files changed, 291 insertions(+), 278 deletions(-) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 8ff4fbd858ba..e696e54b887b 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -629,12 +629,12 @@ type WSLSettings struct { // CustomLinterSettings encapsulates the meta-data of a private linter. // For example, a private linter may be added to the golangci config file as shown below. // -// linters-settings: -// custom: -// example: -// path: /example.so -// description: The description of the linter -// original-url: github.com/golangci/example-linter +// linters-settings: +// custom: +// example: +// path: /example.so +// description: The description of the linter +// original-url: github.com/golangci/example-linter type CustomLinterSettings struct { // Path to a plugin *.so file that implements the private linter. Path string diff --git a/pkg/golinters/gofmt_test.go b/pkg/golinters/gofmt_test.go index 9c8148ad0e6a..c9be0b1ed4b5 100644 --- a/pkg/golinters/gofmt_test.go +++ b/pkg/golinters/gofmt_test.go @@ -310,7 +310,7 @@ index 2c9f78d..c0d5791 100644 --- a/gofmt.go +++ b/gofmt.go @@ -1,9 +1,9 @@ - //args: -Egofmt + //golangcitest:args -Egofmt package p - func gofmt(a, b int) int { diff --git a/pkg/golinters/revive.go b/pkg/golinters/revive.go index 30306b8ac197..6384f502c2dc 100644 --- a/pkg/golinters/revive.go +++ b/pkg/golinters/revive.go @@ -34,6 +34,7 @@ type jsonObject struct { } // NewRevive returns a new Revive linter. +// //nolint:dupl func NewRevive(settings *config.ReviveSettings) *goanalysis.Linter { var mu sync.Mutex diff --git a/pkg/golinters/scopelint.go b/pkg/golinters/scopelint.go index 4a2b1bf45ac1..7054ef33a596 100644 --- a/pkg/golinters/scopelint.go +++ b/pkg/golinters/scopelint.go @@ -84,6 +84,7 @@ type Node struct { // Visit method is invoked for each node encountered by Walk. // If the result visitor w is not nil, Walk visits each of the children // of node with the visitor w, followed by a call of w.Visit(nil). +// //nolint:gocyclo,gocritic func (f *Node) Visit(node ast.Node) ast.Visitor { switch typedNode := node.(type) { @@ -173,6 +174,7 @@ func (f *Node) Visit(node ast.Node) ast.Visitor { // The variadic arguments may start with link and category types, // and must end with a format string and any arguments. +// //nolint:interfacer func (f *Node) errorf(n ast.Node, format string, args ...interface{}) { pos := f.fset.Position(n.Pos()) diff --git a/test/errchk.go b/test/errchk.go index 09710a5f8ec3..d94a055b40ec 100644 --- a/test/errchk.go +++ b/test/errchk.go @@ -24,6 +24,7 @@ var errorLineRx = regexp.MustCompile(`^\S+?: (.*)\((\S+?)\)$`) // // Sources files are supplied as fullshort slice. // It consists of pairs: full path to source file and its base name. +// //nolint:gocyclo,funlen func errorCheck(outStr string, wantAuto bool, defaultWantedLinter string, fullshort ...string) (err error) { var errs []error @@ -179,6 +180,7 @@ var ( ) // wantedErrors parses expected errors from comments in a file. +// //nolint:nakedret func wantedErrors(file, short, defaultLinter string) (errs []wantedError) { cache := make(map[string]*regexp.Regexp) diff --git a/test/linters_test.go b/test/linters_test.go index d821a83847b8..a5d2a3c0ab7b 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -248,7 +248,7 @@ type runContext struct { func buildConfigFromShortRepr(t *testing.T, repr string, config map[string]interface{}) { kv := strings.Split(repr, "=") - require.Len(t, kv, 2) + require.Len(t, kv, 2, "repr: %s", repr) keyParts := strings.Split(kv[0], ".") require.True(t, len(keyParts) >= 2, len(keyParts)) @@ -308,47 +308,55 @@ func extractRunContextFromComments(t *testing.T, sourcePath string) *runContext continue } - line = strings.TrimLeft(strings.TrimPrefix(line, "//"), " ") - if strings.HasPrefix(line, "args: ") { + if !strings.HasPrefix(line, "//golangcitest:") { + require.Failf(t, "invalid prefix of comment line %s", line) + } + + // TODO(ldez) replace that by strings.Cut when we will drop go1.17 + var before string + var after string + if i := strings.Index(line, " "); i >= 0 { + before = line[:i] + after = strings.TrimSpace(line[i+len(" "):]) + } else { + require.Failf(t, "invalid prefix of comment line %s", line) + } + + switch before { + case "//golangcitest:args": require.Nil(t, rc.args) - args := strings.TrimPrefix(line, "args: ") - require.NotEmpty(t, args) - rc.args = strings.Split(args, " ") + require.NotEmpty(t, after) + rc.args = strings.Split(after, " ") continue - } - if strings.HasPrefix(line, "config: ") { - repr := strings.TrimPrefix(line, "config: ") - require.NotEmpty(t, repr) + case "//golangcitest:config": + require.NotEmpty(t, after) if rc.config == nil { rc.config = map[string]interface{}{} } - buildConfigFromShortRepr(t, repr, rc.config) + buildConfigFromShortRepr(t, after, rc.config) continue - } - if strings.HasPrefix(line, "config_path: ") { - configPath := strings.TrimPrefix(line, "config_path: ") - require.NotEmpty(t, configPath) - rc.configPath = configPath + case "//golangcitest:config_path": + require.NotEmpty(t, after) + rc.configPath = after continue - } - if strings.HasPrefix(line, "expected_linter: ") { - expectedLinter := strings.TrimPrefix(line, "expected_linter: ") - require.NotEmpty(t, expectedLinter) - rc.expectedLinter = expectedLinter + case "//golangcitest:expected_linter": + require.NotEmpty(t, after) + rc.expectedLinter = after continue - } - require.Fail(t, "invalid prefix of comment line %s", line) + default: + require.Failf(t, "invalid prefix of comment line %s", line) + } } // guess the expected linter if none is specified if rc.expectedLinter == "" { for _, arg := range rc.args { if strings.HasPrefix(arg, "-E") && !strings.Contains(arg, ",") { - require.Empty(t, rc.expectedLinter, "could not infer expected linter for errors because multiple linters are enabled. Please use the `expected_linter: ` directive in your test to indicate the linter-under-test.") //nolint:lll + require.Empty(t, rc.expectedLinter, "could not infer expected linter for errors because multiple linters are enabled. Please use the `//golangcitest:expected_linter ` directive in your test to indicate the linter-under-test.") //nolint:lll rc.expectedLinter = arg[2:] } } diff --git a/test/testdata/asciicheck.go b/test/testdata/asciicheck.go index 0eeb036f29b4..772cc9d6dba4 100644 --- a/test/testdata/asciicheck.go +++ b/test/testdata/asciicheck.go @@ -1,4 +1,4 @@ -//args: -Easciicheck +//golangcitest:args -Easciicheck package testdata import ( diff --git a/test/testdata/bidichk.go b/test/testdata/bidichk.go index 858839e6d4cb..05e971a0a35b 100644 --- a/test/testdata/bidichk.go +++ b/test/testdata/bidichk.go @@ -1,4 +1,4 @@ -//args: -Ebidichk +//golangcitest:args -Ebidichk package testdata import "fmt" diff --git a/test/testdata/bodyclose.go b/test/testdata/bodyclose.go index 4445715ecb20..ca12d777c874 100644 --- a/test/testdata/bodyclose.go +++ b/test/testdata/bodyclose.go @@ -1,4 +1,4 @@ -//args: -Ebodyclose +//golangcitest:args -Ebodyclose package testdata import ( diff --git a/test/testdata/containedctx.go b/test/testdata/containedctx.go index ef8fc9fce6db..c68aed5f1c70 100644 --- a/test/testdata/containedctx.go +++ b/test/testdata/containedctx.go @@ -1,4 +1,4 @@ -// args: -Econtainedctx +//golangcitest:args -Econtainedctx package testdata import "context" diff --git a/test/testdata/contextcheck.go b/test/testdata/contextcheck.go index 093e9337d0f7..c153b7718936 100644 --- a/test/testdata/contextcheck.go +++ b/test/testdata/contextcheck.go @@ -1,4 +1,4 @@ -//args: -Econtextcheck +//golangcitest:args -Econtextcheck package testdata import "context" diff --git a/test/testdata/cyclop.go b/test/testdata/cyclop.go index 50ce7e4b7969..23870aba4eda 100644 --- a/test/testdata/cyclop.go +++ b/test/testdata/cyclop.go @@ -1,5 +1,5 @@ -//args: -Ecyclop -//config: linters-settings.cyclop.max-complexity=15 +//golangcitest:args -Ecyclop +//golangcitest:config linters-settings.cyclop.max-complexity=15 package testdata func cyclopComplexFunc(s string) { // ERROR "calculated cyclomatic complexity for function cyclopComplexFunc is 22, max is 15" diff --git a/test/testdata/deadcode.go b/test/testdata/deadcode.go index 82379efdddca..1d2cdd9d1238 100644 --- a/test/testdata/deadcode.go +++ b/test/testdata/deadcode.go @@ -1,4 +1,4 @@ -//args: -Edeadcode +//golangcitest:args -Edeadcode package testdata var y int diff --git a/test/testdata/decorder.go b/test/testdata/decorder.go index 5cc325cce2e4..4f409db4074c 100644 --- a/test/testdata/decorder.go +++ b/test/testdata/decorder.go @@ -1,5 +1,5 @@ -// args: -Edecorder -// config_path: testdata/configs/decorder.yml +//golangcitest:args -Edecorder +//golangcitest:config_path testdata/configs/decorder.yml package testdata import "math" diff --git a/test/testdata/decorder_default.go b/test/testdata/decorder_default.go index 69e85a7dac10..a568cf4ca0bc 100644 --- a/test/testdata/decorder_default.go +++ b/test/testdata/decorder_default.go @@ -1,4 +1,4 @@ -// args: -Edecorder +//golangcitest:args -Edecorder package testdata import "math" diff --git a/test/testdata/default_exclude.go b/test/testdata/default_exclude.go index d5e4422886b2..3c2a13a919c3 100644 --- a/test/testdata/default_exclude.go +++ b/test/testdata/default_exclude.go @@ -1,5 +1,5 @@ -//args: -Estylecheck,golint --internal-cmd-test -//config_path: testdata/configs/default_exclude.yml +//golangcitest:args -Estylecheck,golint --internal-cmd-test +//golangcitest:config_path testdata/configs/default_exclude.yml /*Package testdata ...*/ package testdata diff --git a/test/testdata/depguard.go b/test/testdata/depguard.go index 1c3a4a858471..b5c2ec265681 100644 --- a/test/testdata/depguard.go +++ b/test/testdata/depguard.go @@ -1,5 +1,5 @@ -//args: -Edepguard -//config_path: testdata/configs/depguard.yml +//golangcitest:args -Edepguard +//golangcitest:config_path testdata/configs/depguard.yml package testdata import ( diff --git a/test/testdata/depguard_additional_guards.go b/test/testdata/depguard_additional_guards.go index d41ba42673d8..337b1bf21979 100644 --- a/test/testdata/depguard_additional_guards.go +++ b/test/testdata/depguard_additional_guards.go @@ -1,5 +1,5 @@ -//args: -Edepguard -//config_path: testdata/configs/depguard_additional_guards.yml +//golangcitest:args -Edepguard +//golangcitest:config_path testdata/configs/depguard_additional_guards.yml package testdata import ( diff --git a/test/testdata/depguard_ignore_file_rules.go b/test/testdata/depguard_ignore_file_rules.go index e5131cb7b421..cb3cdc438ade 100644 --- a/test/testdata/depguard_ignore_file_rules.go +++ b/test/testdata/depguard_ignore_file_rules.go @@ -1,5 +1,5 @@ -//args: -Edepguard -//config_path: testdata/configs/depguard_ignore_file_rules.yml +//golangcitest:args -Edepguard +//golangcitest:config_path testdata/configs/depguard_ignore_file_rules.yml package testdata // NOTE - No lint errors becuase this file is ignored diff --git a/test/testdata/dogsled.go b/test/testdata/dogsled.go index 8604a2d7944b..1d1ade7119a0 100644 --- a/test/testdata/dogsled.go +++ b/test/testdata/dogsled.go @@ -1,4 +1,4 @@ -//args: -Edogsled +//golangcitest:args -Edogsled package testdata func Dogsled() { diff --git a/test/testdata/dupl.go b/test/testdata/dupl.go index 14edae39bc80..109372f84355 100644 --- a/test/testdata/dupl.go +++ b/test/testdata/dupl.go @@ -1,5 +1,5 @@ -//args: -Edupl -//config: linters-settings.dupl.threshold=20 +//golangcitest:args -Edupl +//golangcitest:config linters-settings.dupl.threshold=20 package testdata type DuplLogger struct{} diff --git a/test/testdata/durationcheck.go b/test/testdata/durationcheck.go index 483f55c58488..b7cd68168e57 100644 --- a/test/testdata/durationcheck.go +++ b/test/testdata/durationcheck.go @@ -1,4 +1,4 @@ -//args: -Edurationcheck +//golangcitest:args -Edurationcheck package testdata import ( diff --git a/test/testdata/errcheck.go b/test/testdata/errcheck.go index dc4343507a09..a894ea3e9492 100644 --- a/test/testdata/errcheck.go +++ b/test/testdata/errcheck.go @@ -1,4 +1,4 @@ -//args: -Eerrcheck +//golangcitest:args -Eerrcheck package testdata import ( diff --git a/test/testdata/errcheck_exclude.go b/test/testdata/errcheck_exclude.go index 461fd48b1566..69af590a75a6 100644 --- a/test/testdata/errcheck_exclude.go +++ b/test/testdata/errcheck_exclude.go @@ -1,6 +1,6 @@ -//args: -Eerrcheck -//config: linters-settings.errcheck.check-blank=true -//config: linters-settings.errcheck.exclude=testdata/errcheck/exclude.txt +//golangcitest:args -Eerrcheck +//golangcitest:config linters-settings.errcheck.check-blank=true +//golangcitest:config linters-settings.errcheck.exclude=testdata/errcheck/exclude.txt package testdata import ( diff --git a/test/testdata/errcheck_exclude_functions.go b/test/testdata/errcheck_exclude_functions.go index 9ad8dda6cd97..ff17ab9a7198 100644 --- a/test/testdata/errcheck_exclude_functions.go +++ b/test/testdata/errcheck_exclude_functions.go @@ -1,5 +1,5 @@ -//args: -Eerrcheck -//config_path: testdata/errcheck/exclude_functions.yml +//golangcitest:args -Eerrcheck +//golangcitest:config_path testdata/errcheck/exclude_functions.yml package testdata import ( diff --git a/test/testdata/errcheck_ignore.go b/test/testdata/errcheck_ignore.go index 8528d78bae32..508101e85f66 100644 --- a/test/testdata/errcheck_ignore.go +++ b/test/testdata/errcheck_ignore.go @@ -1,5 +1,5 @@ -//args: -Eerrcheck -//config_path: testdata/errcheck/ignore_config.yml +//golangcitest:args -Eerrcheck +//golangcitest:config_path testdata/errcheck/ignore_config.yml package testdata import ( diff --git a/test/testdata/errcheck_ignore_default.go b/test/testdata/errcheck_ignore_default.go index 18b090c20eb8..961c9cdaabbe 100644 --- a/test/testdata/errcheck_ignore_default.go +++ b/test/testdata/errcheck_ignore_default.go @@ -1,5 +1,5 @@ -//args: -Eerrcheck -//config: linters-settings.errcheck.check-blank=true +//golangcitest:args -Eerrcheck +//golangcitest:config linters-settings.errcheck.check-blank=true package testdata import ( diff --git a/test/testdata/errcheck_type_assertions.go b/test/testdata/errcheck_type_assertions.go index a85d69ddfbfd..9a581fb2273b 100644 --- a/test/testdata/errcheck_type_assertions.go +++ b/test/testdata/errcheck_type_assertions.go @@ -1,5 +1,5 @@ -//args: -Eerrcheck -//config: linters-settings.errcheck.check-type-assertions=true +//golangcitest:args -Eerrcheck +//golangcitest:config linters-settings.errcheck.check-type-assertions=true package testdata func ErrorTypeAssertion(filter map[string]interface{}) bool { diff --git a/test/testdata/errchkjson.go b/test/testdata/errchkjson.go index e35a29454320..b74411a709d5 100644 --- a/test/testdata/errchkjson.go +++ b/test/testdata/errchkjson.go @@ -1,5 +1,5 @@ -// args: -Eerrchkjson -// config_path: testdata/configs/errchkjson.yml +//golangcitest:args -Eerrchkjson +//golangcitest:config_path testdata/configs/errchkjson.yml package testdata import ( diff --git a/test/testdata/errchkjson_check_error_free_encoding.go b/test/testdata/errchkjson_check_error_free_encoding.go index d19adf803ca4..fde6deee170b 100644 --- a/test/testdata/errchkjson_check_error_free_encoding.go +++ b/test/testdata/errchkjson_check_error_free_encoding.go @@ -1,5 +1,5 @@ -// args: -Eerrchkjson -// config_path: testdata/configs/errchkjson_check_error_free_encoding.yml +//golangcitest:args -Eerrchkjson +//golangcitest:config_path testdata/configs/errchkjson_check_error_free_encoding.yml package testdata import ( diff --git a/test/testdata/errchkjson_no_exported.go b/test/testdata/errchkjson_no_exported.go index 97880f502899..ef5cc42d8e8b 100644 --- a/test/testdata/errchkjson_no_exported.go +++ b/test/testdata/errchkjson_no_exported.go @@ -1,5 +1,5 @@ -// args: -Eerrchkjson -// config_path: testdata/configs/errchkjson_no_exported.yml +//golangcitest:args -Eerrchkjson +//golangcitest:config_path testdata/configs/errchkjson_no_exported.yml package testdata import ( diff --git a/test/testdata/errname.go b/test/testdata/errname.go index 8b44e0b78f56..a5ccd436f8aa 100644 --- a/test/testdata/errname.go +++ b/test/testdata/errname.go @@ -1,4 +1,4 @@ -//args: -Eerrname +//golangcitest:args -Eerrname package testdata import ( diff --git a/test/testdata/errorlint.go b/test/testdata/errorlint.go index 7d191cae0499..5dda3c864ad4 100644 --- a/test/testdata/errorlint.go +++ b/test/testdata/errorlint.go @@ -1,4 +1,4 @@ -//args: -Eerrorlint +//golangcitest:args -Eerrorlint package testdata import ( diff --git a/test/testdata/errorlint_asserts.go b/test/testdata/errorlint_asserts.go index 31f53a59abcc..a38a58f4bd05 100644 --- a/test/testdata/errorlint_asserts.go +++ b/test/testdata/errorlint_asserts.go @@ -1,5 +1,5 @@ -//args: -Eerrorlint -//config_path: testdata/configs/errorlint_asserts.yml +//golangcitest:args -Eerrorlint +//golangcitest:config_path testdata/configs/errorlint_asserts.yml package testdata import ( diff --git a/test/testdata/errorlint_comparison.go b/test/testdata/errorlint_comparison.go index 1bef52ed2b8f..0b37f988ad8e 100644 --- a/test/testdata/errorlint_comparison.go +++ b/test/testdata/errorlint_comparison.go @@ -1,5 +1,5 @@ -//args: -Eerrorlint -//config_path: testdata/configs/errorlint_comparison.yml +//golangcitest:args -Eerrorlint +//golangcitest:config_path testdata/configs/errorlint_comparison.yml package testdata import ( diff --git a/test/testdata/errorlint_errorf.go b/test/testdata/errorlint_errorf.go index 5d3cb85603d5..52ed9feb3fcb 100644 --- a/test/testdata/errorlint_errorf.go +++ b/test/testdata/errorlint_errorf.go @@ -1,5 +1,5 @@ -//args: -Eerrorlint -//config_path: testdata/configs/errorlint_errorf.yml +//golangcitest:args -Eerrorlint +//golangcitest:config_path testdata/configs/errorlint_errorf.yml package testdata import ( diff --git a/test/testdata/execinquery.go b/test/testdata/execinquery.go index 2c4c742fc412..bcf3ba83289d 100644 --- a/test/testdata/execinquery.go +++ b/test/testdata/execinquery.go @@ -1,4 +1,4 @@ -// args: -Eexecinquery +//golangcitest:args -Eexecinquery package testdata import ( diff --git a/test/testdata/exhaustive.go b/test/testdata/exhaustive.go index 171c6e817fc8..18b8a35b14df 100644 --- a/test/testdata/exhaustive.go +++ b/test/testdata/exhaustive.go @@ -1,4 +1,4 @@ -//args: -Eexhaustive +//golangcitest:args -Eexhaustive package testdata type Direction int diff --git a/test/testdata/exhaustive_default.go b/test/testdata/exhaustive_default.go index 50898eba2469..ff2fcf57fc8c 100644 --- a/test/testdata/exhaustive_default.go +++ b/test/testdata/exhaustive_default.go @@ -1,5 +1,5 @@ -//args: -Eexhaustive -//config_path: testdata/configs/exhaustive_default.yml +//golangcitest:args -Eexhaustive +//golangcitest:config_path testdata/configs/exhaustive_default.yml package testdata type Direction int diff --git a/test/testdata/exhaustive_generated.go b/test/testdata/exhaustive_generated.go index ab9a351d6192..82618d38e4ab 100644 --- a/test/testdata/exhaustive_generated.go +++ b/test/testdata/exhaustive_generated.go @@ -1,4 +1,4 @@ -//args: -Eexhaustive +//golangcitest:args -Eexhaustive package testdata // Code generated by some program. DO NOT EDIT. diff --git a/test/testdata/exhaustive_ignore_enum_members.go b/test/testdata/exhaustive_ignore_enum_members.go index 65bf8fc8d76f..da7a5b43010e 100644 --- a/test/testdata/exhaustive_ignore_enum_members.go +++ b/test/testdata/exhaustive_ignore_enum_members.go @@ -1,5 +1,5 @@ -//args: -Eexhaustive -//config_path: testdata/configs/exhaustive_ignore_enum_members.yml +//golangcitest:args -Eexhaustive +//golangcitest:config_path testdata/configs/exhaustive_ignore_enum_members.yml package testdata type Direction int diff --git a/test/testdata/exhaustivestruct.go b/test/testdata/exhaustivestruct.go index fde230dfdce1..000a8f494af6 100644 --- a/test/testdata/exhaustivestruct.go +++ b/test/testdata/exhaustivestruct.go @@ -1,4 +1,4 @@ -// args: -Eexhaustivestruct --internal-cmd-test +//golangcitest:args -Eexhaustivestruct --internal-cmd-test package testdata import "time" diff --git a/test/testdata/exhaustivestruct_custom.go b/test/testdata/exhaustivestruct_custom.go index 156b7b631552..55a9127ced78 100644 --- a/test/testdata/exhaustivestruct_custom.go +++ b/test/testdata/exhaustivestruct_custom.go @@ -1,5 +1,5 @@ -// args: -Eexhaustivestruct --internal-cmd-test -// config_path: testdata/configs/exhaustivestruct.yml +//golangcitest:args -Eexhaustivestruct --internal-cmd-test +//golangcitest:config_path testdata/configs/exhaustivestruct.yml package testdata import "time" diff --git a/test/testdata/exhaustruct.go b/test/testdata/exhaustruct.go index 6860e5e40e20..6da51f4f0acc 100644 --- a/test/testdata/exhaustruct.go +++ b/test/testdata/exhaustruct.go @@ -1,4 +1,4 @@ -// args: -Eexhaustruct +//golangcitest:args -Eexhaustruct package testdata import "time" diff --git a/test/testdata/exhaustruct_custom.go b/test/testdata/exhaustruct_custom.go index 27e7b6a74c22..352ea9110b1a 100644 --- a/test/testdata/exhaustruct_custom.go +++ b/test/testdata/exhaustruct_custom.go @@ -1,5 +1,5 @@ -// args: -Eexhaustruct -// config_path: testdata/configs/exhaustruct.yml +//golangcitest:args -Eexhaustruct +//golangcitest:config_path testdata/configs/exhaustruct.yml package testdata import "time" diff --git a/test/testdata/exportloopref.go b/test/testdata/exportloopref.go index f71a3902be53..0fe98b1acf52 100644 --- a/test/testdata/exportloopref.go +++ b/test/testdata/exportloopref.go @@ -1,4 +1,4 @@ -//args: -Eexportloopref +//golangcitest:args -Eexportloopref package testdata import "fmt" diff --git a/test/testdata/fix/in/gci.go b/test/testdata/fix/in/gci.go index 4efb0541063e..9a2be3fa59ab 100644 --- a/test/testdata/fix/in/gci.go +++ b/test/testdata/fix/in/gci.go @@ -1,5 +1,5 @@ -//args: -Egci -//config_path: testdata/configs/gci.yml +//golangcitest:args -Egci +//golangcitest:config_path testdata/configs/gci.yml package gci import ( diff --git a/test/testdata/fix/in/gocritic.go b/test/testdata/fix/in/gocritic.go index 80a42b5812f6..a3cecf045ba4 100644 --- a/test/testdata/fix/in/gocritic.go +++ b/test/testdata/fix/in/gocritic.go @@ -1,5 +1,5 @@ -// args: -Egocritic -// config_path: testdata/configs/gocritic-fix.yml +//golangcitest:args -Egocritic +//golangcitest:config_path testdata/configs/gocritic-fix.yml package p import ( diff --git a/test/testdata/fix/in/godot.go b/test/testdata/fix/in/godot.go index 01fc19e8de39..806978fbfe5a 100644 --- a/test/testdata/fix/in/godot.go +++ b/test/testdata/fix/in/godot.go @@ -1,4 +1,4 @@ -//args: -Egodot +//golangcitest:args -Egodot package p /* diff --git a/test/testdata/fix/in/gofmt.go b/test/testdata/fix/in/gofmt.go index 2c9f78d5b559..9c35dc4787be 100644 --- a/test/testdata/fix/in/gofmt.go +++ b/test/testdata/fix/in/gofmt.go @@ -1,4 +1,4 @@ -//args: -Egofmt +//golangcitest:args -Egofmt package p func gofmt(a, b int) int { diff --git a/test/testdata/fix/in/gofumpt.go b/test/testdata/fix/in/gofumpt.go index 0870f31fa674..1fc4a8d6ada6 100644 --- a/test/testdata/fix/in/gofumpt.go +++ b/test/testdata/fix/in/gofumpt.go @@ -1,5 +1,5 @@ -//args: -Egofumpt -//config: linters-settings.gofumpt.extra-rules=true +//golangcitest:args -Egofumpt +//golangcitest:config linters-settings.gofumpt.extra-rules=true package p import "fmt" diff --git a/test/testdata/fix/in/goimports.go b/test/testdata/fix/in/goimports.go index 975dc8839b8f..8e2248c587d5 100644 --- a/test/testdata/fix/in/goimports.go +++ b/test/testdata/fix/in/goimports.go @@ -1,4 +1,4 @@ -//args: -Egofmt,goimports +//golangcitest:args -Egofmt,goimports package p import ( diff --git a/test/testdata/fix/in/misspell.go b/test/testdata/fix/in/misspell.go index 171c6b9becc3..ac2ef6c1eaa3 100644 --- a/test/testdata/fix/in/misspell.go +++ b/test/testdata/fix/in/misspell.go @@ -1,4 +1,4 @@ -//args: -Emisspell +//golangcitest:args -Emisspell package p import "log" diff --git a/test/testdata/fix/in/nolintlint.go b/test/testdata/fix/in/nolintlint.go index b023113c915f..8b484ffbcf34 100644 --- a/test/testdata/fix/in/nolintlint.go +++ b/test/testdata/fix/in/nolintlint.go @@ -1,6 +1,6 @@ -//args: -Enolintlint -Elll -//expected_linter: nolintlint -//config: linters-settings.nolintlint.allow-leading-space=false +//golangcitest:args -Enolintlint -Elll +//golangcitest:expected_linter nolintlint +//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package p import "fmt" diff --git a/test/testdata/fix/in/whitespace.go b/test/testdata/fix/in/whitespace.go index 787ffbbbcc75..b720d3c3802a 100644 --- a/test/testdata/fix/in/whitespace.go +++ b/test/testdata/fix/in/whitespace.go @@ -1,6 +1,6 @@ -//args: -Ewhitespace -//config: linters-settings.whitespace.multi-if=true -//config: linters-settings.whitespace.multi-func=true +//golangcitest:args -Ewhitespace +//golangcitest:config linters-settings.whitespace.multi-if=true +//golangcitest:config linters-settings.whitespace.multi-func=true package p import "fmt" diff --git a/test/testdata/fix/out/gci.go b/test/testdata/fix/out/gci.go index c35c11ac7871..af4e2e80fc8a 100644 --- a/test/testdata/fix/out/gci.go +++ b/test/testdata/fix/out/gci.go @@ -1,5 +1,5 @@ -//args: -Egci -//config_path: testdata/configs/gci.yml +//golangcitest:args -Egci +//golangcitest:config_path testdata/configs/gci.yml package gci import ( diff --git a/test/testdata/fix/out/gocritic.go b/test/testdata/fix/out/gocritic.go index a4fa277d7d28..943e81425596 100644 --- a/test/testdata/fix/out/gocritic.go +++ b/test/testdata/fix/out/gocritic.go @@ -1,5 +1,5 @@ -// args: -Egocritic -// config_path: testdata/configs/gocritic-fix.yml +//golangcitest:args -Egocritic +//golangcitest:config_path testdata/configs/gocritic-fix.yml package p import ( diff --git a/test/testdata/fix/out/godot.go b/test/testdata/fix/out/godot.go index 5d78681bf4c6..7c29db76cf9b 100644 --- a/test/testdata/fix/out/godot.go +++ b/test/testdata/fix/out/godot.go @@ -1,4 +1,4 @@ -//args: -Egodot +//golangcitest:args -Egodot package p /* diff --git a/test/testdata/fix/out/gofmt.go b/test/testdata/fix/out/gofmt.go index c0d579101762..724fb76e5694 100644 --- a/test/testdata/fix/out/gofmt.go +++ b/test/testdata/fix/out/gofmt.go @@ -1,4 +1,4 @@ -//args: -Egofmt +//golangcitest:args -Egofmt package p func gofmt(a, b int) int { diff --git a/test/testdata/fix/out/gofumpt.go b/test/testdata/fix/out/gofumpt.go index 0ae95af95dee..a0ca50b05e66 100644 --- a/test/testdata/fix/out/gofumpt.go +++ b/test/testdata/fix/out/gofumpt.go @@ -1,5 +1,5 @@ -// args: -Egofumpt -// config: linters-settings.gofumpt.extra-rules=true +//golangcitest:args -Egofumpt +//golangcitest:config linters-settings.gofumpt.extra-rules=true package p import "fmt" diff --git a/test/testdata/fix/out/goimports.go b/test/testdata/fix/out/goimports.go index a5a698bb433a..21c25a69238e 100644 --- a/test/testdata/fix/out/goimports.go +++ b/test/testdata/fix/out/goimports.go @@ -1,4 +1,4 @@ -//args: -Egofmt,goimports +//golangcitest:args -Egofmt,goimports package p func goimports(a, b int) int { diff --git a/test/testdata/fix/out/misspell.go b/test/testdata/fix/out/misspell.go index 98ea5144f840..7f3649415227 100644 --- a/test/testdata/fix/out/misspell.go +++ b/test/testdata/fix/out/misspell.go @@ -1,4 +1,4 @@ -//args: -Emisspell +//golangcitest:args -Emisspell package p import "log" diff --git a/test/testdata/fix/out/nolintlint.go b/test/testdata/fix/out/nolintlint.go index 39f112d9d3bd..8858f3eeecbd 100644 --- a/test/testdata/fix/out/nolintlint.go +++ b/test/testdata/fix/out/nolintlint.go @@ -1,6 +1,6 @@ -//args: -Enolintlint -Elll -//expected_linter: nolintlint -//config: linters-settings.nolintlint.allow-leading-space=false +//golangcitest:args -Enolintlint -Elll +//golangcitest:expected_linter nolintlint +//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package p import "fmt" diff --git a/test/testdata/fix/out/whitespace.go b/test/testdata/fix/out/whitespace.go index a6856f25a056..df6e3fa68a97 100644 --- a/test/testdata/fix/out/whitespace.go +++ b/test/testdata/fix/out/whitespace.go @@ -1,6 +1,6 @@ -//args: -Ewhitespace -//config: linters-settings.whitespace.multi-if=true -//config: linters-settings.whitespace.multi-func=true +//golangcitest:args -Ewhitespace +//golangcitest:config linters-settings.whitespace.multi-if=true +//golangcitest:config linters-settings.whitespace.multi-func=true package p import "fmt" diff --git a/test/testdata/forbidigo_example.go b/test/testdata/forbidigo_example.go index 3e7c3b95040a..ef5de706d0e1 100644 --- a/test/testdata/forbidigo_example.go +++ b/test/testdata/forbidigo_example.go @@ -1,5 +1,5 @@ -//args: -Eforbidigo -//config_path: testdata/configs/forbidigo.yml +//golangcitest:args -Eforbidigo +//golangcitest:config_path testdata/configs/forbidigo.yml package testdata import ( diff --git a/test/testdata/forbidigo_example_test.go b/test/testdata/forbidigo_example_test.go index bf1f711d3fbc..8582c8d5d687 100644 --- a/test/testdata/forbidigo_example_test.go +++ b/test/testdata/forbidigo_example_test.go @@ -1,5 +1,5 @@ -//args: -Eforbidigo -//config_path: testdata/configs/forbidigo.yml +//golangcitest:args -Eforbidigo +//golangcitest:config_path testdata/configs/forbidigo.yml package testdata import "fmt" diff --git a/test/testdata/forbidigo_include_godoc_examples_test.go b/test/testdata/forbidigo_include_godoc_examples_test.go index 42049edc1514..9812af1ce152 100644 --- a/test/testdata/forbidigo_include_godoc_examples_test.go +++ b/test/testdata/forbidigo_include_godoc_examples_test.go @@ -1,5 +1,5 @@ -//args: -Eforbidigo -//config: linters-settings.forbidigo.exclude-godoc-examples=false +//golangcitest:args -Eforbidigo +//golangcitest:config linters-settings.forbidigo.exclude-godoc-examples=false package testdata import "fmt" diff --git a/test/testdata/forcetypeassert.go b/test/testdata/forcetypeassert.go index 6febae596907..7f415b2274e8 100644 --- a/test/testdata/forcetypeassert.go +++ b/test/testdata/forcetypeassert.go @@ -1,4 +1,4 @@ -//args: -Eforcetypeassert +//golangcitest:args -Eforcetypeassert package testdata import "fmt" diff --git a/test/testdata/funlen.go b/test/testdata/funlen.go index e37e35525525..5dbbf195d2f7 100644 --- a/test/testdata/funlen.go +++ b/test/testdata/funlen.go @@ -1,6 +1,6 @@ -//args: -Efunlen -//config: linters-settings.funlen.lines=20 -//config: linters-settings.funlen.statements=10 +//golangcitest:args -Efunlen +//golangcitest:config linters-settings.funlen.lines=20 +//golangcitest:config linters-settings.funlen.statements=10 package testdata func TooManyLines() { // ERROR `Function 'TooManyLines' is too long \(22 > 20\)` diff --git a/test/testdata/gci.go b/test/testdata/gci.go index 66effef786b6..a63de6b5465b 100644 --- a/test/testdata/gci.go +++ b/test/testdata/gci.go @@ -1,5 +1,5 @@ -//args: -Egci -//config_path: testdata/configs/gci.yml +//golangcitest:args -Egci +//golangcitest:config_path testdata/configs/gci.yml package testdata import ( diff --git a/test/testdata/gci/gci.go b/test/testdata/gci/gci.go index 2875032513e1..8f83dc21ebfb 100644 --- a/test/testdata/gci/gci.go +++ b/test/testdata/gci/gci.go @@ -1,5 +1,5 @@ -//args: -Egci -//config_path: testdata/configs/gci.yml +//golangcitest:args -Egci +//golangcitest:config_path testdata/configs/gci.yml package gci import ( diff --git a/test/testdata/go-header_bad.go b/test/testdata/go-header_bad.go index 2f24969b9e70..9c9de0b6a825 100644 --- a/test/testdata/go-header_bad.go +++ b/test/testdata/go-header_bad.go @@ -1,5 +1,5 @@ /*MY TITLE!*/ // ERROR `Expected:TITLE\., Actual: TITLE!` -// args: -Egoheader -// config_path: testdata/configs/go-header.yml +//golangcitest:args -Egoheader +//golangcitest:config_path testdata/configs/go-header.yml package testdata diff --git a/test/testdata/go-header_good.go b/test/testdata/go-header_good.go index e1586db3c092..744698111d86 100644 --- a/test/testdata/go-header_good.go +++ b/test/testdata/go-header_good.go @@ -1,5 +1,5 @@ /*MY TITLE.*/ -// args: -Egoheader -// config_path: testdata/configs/go-header.yml +//golangcitest:args -Egoheader +//golangcitest:config_path testdata/configs/go-header.yml package testdata diff --git a/test/testdata/gochecknoglobals.go b/test/testdata/gochecknoglobals.go index 02a1ab7b72e1..a2c1f82c1336 100644 --- a/test/testdata/gochecknoglobals.go +++ b/test/testdata/gochecknoglobals.go @@ -1,4 +1,4 @@ -//args: -Egochecknoglobals +//golangcitest:args -Egochecknoglobals package testdata import ( diff --git a/test/testdata/gochecknoinits.go b/test/testdata/gochecknoinits.go index 226fad451150..5ea8060d430b 100644 --- a/test/testdata/gochecknoinits.go +++ b/test/testdata/gochecknoinits.go @@ -1,4 +1,4 @@ -//args: -Egochecknoinits +//golangcitest:args -Egochecknoinits package testdata import "fmt" diff --git a/test/testdata/gocognit.go b/test/testdata/gocognit.go index dd18c0e82ac7..79a4a0f1ef6e 100644 --- a/test/testdata/gocognit.go +++ b/test/testdata/gocognit.go @@ -1,5 +1,5 @@ -//args: -Egocognit -//config: linters-settings.gocognit.min-complexity=2 +//golangcitest:args -Egocognit +//golangcitest:config linters-settings.gocognit.min-complexity=2 package testdata func GoCognit_CC4_GetWords(number int) string { // ERROR "cognitive complexity 4 of func .* is high .*" diff --git a/test/testdata/goconst.go b/test/testdata/goconst.go index 5942c5667201..6996acb845b8 100644 --- a/test/testdata/goconst.go +++ b/test/testdata/goconst.go @@ -1,4 +1,4 @@ -//args: -Egoconst +//golangcitest:args -Egoconst package testdata import "fmt" diff --git a/test/testdata/goconst_calls_enabled.go b/test/testdata/goconst_calls_enabled.go index dd1a0babb43a..d813ad236a2d 100644 --- a/test/testdata/goconst_calls_enabled.go +++ b/test/testdata/goconst_calls_enabled.go @@ -1,5 +1,5 @@ -//args: -Egoconst -//config: linters-settings.goconst.ignore-calls=false +//golangcitest:args -Egoconst +//golangcitest:config linters-settings.goconst.ignore-calls=false package testdata import "fmt" diff --git a/test/testdata/goconst_dont_ignore_test.go b/test/testdata/goconst_dont_ignore_test.go index a097ef8286f9..51ebd97ae555 100644 --- a/test/testdata/goconst_dont_ignore_test.go +++ b/test/testdata/goconst_dont_ignore_test.go @@ -1,5 +1,5 @@ -//args: -Egoconst -//config: linters-settings.goconst.ignore-tests=false +//golangcitest:args -Egoconst +//golangcitest:config linters-settings.goconst.ignore-tests=false package testdata import ( diff --git a/test/testdata/goconst_ignore_test.go b/test/testdata/goconst_ignore_test.go index 3d265dd54e46..9ef9eb129a94 100644 --- a/test/testdata/goconst_ignore_test.go +++ b/test/testdata/goconst_ignore_test.go @@ -1,5 +1,5 @@ -//args: -Egoconst -//config: linters-settings.goconst.ignore-tests=true +//golangcitest:args -Egoconst +//golangcitest:config linters-settings.goconst.ignore-tests=true package testdata import ( diff --git a/test/testdata/gocritic.go b/test/testdata/gocritic.go index 1768304d1a7f..d3b59fce3f22 100644 --- a/test/testdata/gocritic.go +++ b/test/testdata/gocritic.go @@ -1,5 +1,5 @@ -//args: -Egocritic -//config_path: testdata/configs/gocritic.yml +//golangcitest:args -Egocritic +//golangcitest:config_path testdata/configs/gocritic.yml package testdata import ( diff --git a/test/testdata/gocyclo.go b/test/testdata/gocyclo.go index a5a6b1a4fdd2..ca5b85ca8b44 100644 --- a/test/testdata/gocyclo.go +++ b/test/testdata/gocyclo.go @@ -1,5 +1,5 @@ -//args: -Egocyclo -//config: linters-settings.gocyclo.min-complexity=20 +//golangcitest:args -Egocyclo +//golangcitest:config linters-settings.gocyclo.min-complexity=20 package testdata import "net/http" diff --git a/test/testdata/godot.go b/test/testdata/godot.go index 819ce941c72f..ece6e3d22368 100644 --- a/test/testdata/godot.go +++ b/test/testdata/godot.go @@ -1,4 +1,4 @@ -//args: -Egodot +//golangcitest:args -Egodot package testdata // Godot checks top-level comments // ERROR "Comment should end in a period" diff --git a/test/testdata/godox.go b/test/testdata/godox.go index 59a751db5914..c86b9c26bff3 100644 --- a/test/testdata/godox.go +++ b/test/testdata/godox.go @@ -1,5 +1,5 @@ -//args: -Egodox -//config: linters-settings.godox.keywords=FIXME,TODO +//golangcitest:args -Egodox +//golangcitest:config linters-settings.godox.keywords=FIXME,TODO package testdata func todoLeftInCode() { diff --git a/test/testdata/goerr113.go b/test/testdata/goerr113.go index 6c76c232ef4a..28c13990696b 100644 --- a/test/testdata/goerr113.go +++ b/test/testdata/goerr113.go @@ -1,4 +1,4 @@ -//args: -Egoerr113 +//golangcitest:args -Egoerr113 package testdata import "os" diff --git a/test/testdata/gofmt.go b/test/testdata/gofmt.go index 61c93d286d03..cf4bef614b07 100644 --- a/test/testdata/gofmt.go +++ b/test/testdata/gofmt.go @@ -1,4 +1,4 @@ -//args: -Egofmt +//golangcitest:args -Egofmt package testdata import "fmt" diff --git a/test/testdata/gofmt_no_simplify.go b/test/testdata/gofmt_no_simplify.go index c5cfd58aef26..98267ad3abce 100644 --- a/test/testdata/gofmt_no_simplify.go +++ b/test/testdata/gofmt_no_simplify.go @@ -1,5 +1,5 @@ -//args: -Egofmt -//config: linters-settings.gofmt.simplify=false +//golangcitest:args -Egofmt +//golangcitest:config linters-settings.gofmt.simplify=false package testdata import "fmt" diff --git a/test/testdata/gofumpt.go b/test/testdata/gofumpt.go index b2a19546e8b0..4570a2bc1dd9 100644 --- a/test/testdata/gofumpt.go +++ b/test/testdata/gofumpt.go @@ -1,4 +1,4 @@ -// args: -Egofumpt +//golangcitest:args -Egofumpt package testdata import "fmt" diff --git a/test/testdata/gofumpt_with_extra.go b/test/testdata/gofumpt_with_extra.go index f2ed40af2676..00c7f21e13d6 100644 --- a/test/testdata/gofumpt_with_extra.go +++ b/test/testdata/gofumpt_with_extra.go @@ -1,5 +1,5 @@ -// args: -Egofumpt -// config: linters-settings.gofumpt.extra-rules=true +//golangcitest:args -Egofumpt +//golangcitest:config linters-settings.gofumpt.extra-rules=true package testdata import "fmt" diff --git a/test/testdata/goimports.go b/test/testdata/goimports.go index 48e0f0b15cb2..39eb0f6cf429 100644 --- a/test/testdata/goimports.go +++ b/test/testdata/goimports.go @@ -1,4 +1,4 @@ -//args: -Egoimports +//golangcitest:args -Egoimports package testdata import ( diff --git a/test/testdata/goimports/goimports.go b/test/testdata/goimports/goimports.go index 64021fa90a71..a614bb5921df 100644 --- a/test/testdata/goimports/goimports.go +++ b/test/testdata/goimports/goimports.go @@ -1,5 +1,5 @@ -//args: -Egoimports -//config: linters-settings.goimports.local-prefixes=github.com/golangci/golangci-lint +//golangcitest:args -Egoimports +//golangcitest:config linters-settings.goimports.local-prefixes=github.com/golangci/golangci-lint package goimports import ( diff --git a/test/testdata/golint.go b/test/testdata/golint.go index c4e1148e2205..2671f2e83b9f 100644 --- a/test/testdata/golint.go +++ b/test/testdata/golint.go @@ -1,4 +1,4 @@ -//args: -Egolint --internal-cmd-test +//golangcitest:args -Egolint --internal-cmd-test package testdata var Go_lint string // ERROR "don't use underscores in Go names; var `Go_lint` should be `GoLint`" diff --git a/test/testdata/gomnd.go b/test/testdata/gomnd.go index 204018b7a093..26e53f2999b8 100644 --- a/test/testdata/gomnd.go +++ b/test/testdata/gomnd.go @@ -1,4 +1,4 @@ -//args: -Egomnd +//golangcitest:args -Egomnd package testdata import ( diff --git a/test/testdata/gomodguard.go b/test/testdata/gomodguard.go index 45a47cd81f5e..5b98163959df 100644 --- a/test/testdata/gomodguard.go +++ b/test/testdata/gomodguard.go @@ -1,5 +1,5 @@ -//args: -Egomodguard -//config_path: testdata/configs/gomodguard.yml +//golangcitest:args -Egomodguard +//golangcitest:config_path testdata/configs/gomodguard.yml package testdata import ( diff --git a/test/testdata/goprintffuncname.go b/test/testdata/goprintffuncname.go index 100977c6eb26..4a80ba06e84e 100644 --- a/test/testdata/goprintffuncname.go +++ b/test/testdata/goprintffuncname.go @@ -1,4 +1,4 @@ -//args: -Egoprintffuncname +//golangcitest:args -Egoprintffuncname package testdata func PrintfLikeFuncWithBadName(format string, args ...interface{}) { // ERROR "printf-like formatting function 'PrintfLikeFuncWithBadName' should be named 'PrintfLikeFuncWithBadNamef'" diff --git a/test/testdata/gosec.go b/test/testdata/gosec.go index a5edb9658a28..f8282cfb629d 100644 --- a/test/testdata/gosec.go +++ b/test/testdata/gosec.go @@ -1,4 +1,4 @@ -//args: -Egosec +//golangcitest:args -Egosec package testdata import ( diff --git a/test/testdata/gosec_rules_config.go b/test/testdata/gosec_rules_config.go index e2b2b4555680..3eea8114eb4a 100644 --- a/test/testdata/gosec_rules_config.go +++ b/test/testdata/gosec_rules_config.go @@ -1,5 +1,5 @@ -//args: -Egosec -//config_path: testdata/configs/gosec.yml +//golangcitest:args -Egosec +//golangcitest:config_path testdata/configs/gosec.yml package testdata import "io/ioutil" diff --git a/test/testdata/gosec_severity_confidence.go b/test/testdata/gosec_severity_confidence.go index 1bf2bd3a69c8..1b72dceafd10 100644 --- a/test/testdata/gosec_severity_confidence.go +++ b/test/testdata/gosec_severity_confidence.go @@ -1,5 +1,5 @@ -//args: -Egosec -//config_path: testdata/configs/gosec_severity_confidence.yml +//golangcitest:args -Egosec +//golangcitest:config_path testdata/configs/gosec_severity_confidence.yml package testdata import ( diff --git a/test/testdata/gosimple.go b/test/testdata/gosimple.go index 258402da51e0..51ebf15dd046 100644 --- a/test/testdata/gosimple.go +++ b/test/testdata/gosimple.go @@ -1,4 +1,4 @@ -//args: -Egosimple +//golangcitest:args -Egosimple package testdata import ( diff --git a/test/testdata/govet.go b/test/testdata/govet.go index b48056fe8730..05f2777a9e39 100644 --- a/test/testdata/govet.go +++ b/test/testdata/govet.go @@ -1,5 +1,5 @@ -//args: -Egovet -//config: linters-settings.govet.check-shadowing=true +//golangcitest:args -Egovet +//golangcitest:config linters-settings.govet.check-shadowing=true package testdata import ( diff --git a/test/testdata/govet_fieldalignment.go b/test/testdata/govet_fieldalignment.go index 618e3f6e1fc7..20e3790da3f3 100644 --- a/test/testdata/govet_fieldalignment.go +++ b/test/testdata/govet_fieldalignment.go @@ -1,5 +1,5 @@ -//args: -Egovet -//config: linters-settings.govet.enable=fieldalignment +//golangcitest:args -Egovet +//golangcitest:config linters-settings.govet.enable=fieldalignment package testdata type gvfaGood struct { diff --git a/test/testdata/govet_ifaceassert.go b/test/testdata/govet_ifaceassert.go index 9a4253aa0465..3e2020ccd3e2 100644 --- a/test/testdata/govet_ifaceassert.go +++ b/test/testdata/govet_ifaceassert.go @@ -1,5 +1,5 @@ -//args: -Egovet -//config: linters-settings.govet.enable=ifaceassert +//golangcitest:args -Egovet +//golangcitest:config linters-settings.govet.enable=ifaceassert package testdata import ( diff --git a/test/testdata/ifshort.go b/test/testdata/ifshort.go index 448636f0cd6f..a960b6de0644 100644 --- a/test/testdata/ifshort.go +++ b/test/testdata/ifshort.go @@ -1,4 +1,4 @@ -//args: -Eifshort +//golangcitest:args -Eifshort package testdata func DontUseShortSyntaxWhenPossible() { diff --git a/test/testdata/importas.go b/test/testdata/importas.go index f363c7e7b345..259d82262d74 100644 --- a/test/testdata/importas.go +++ b/test/testdata/importas.go @@ -1,5 +1,5 @@ -//args: -Eimportas -//config_path: testdata/configs/importas.yml +//golangcitest:args -Eimportas +//golangcitest:config_path testdata/configs/importas.yml package testdata import ( diff --git a/test/testdata/importas_noalias.go b/test/testdata/importas_noalias.go index 64bd349131ea..29554fce5212 100644 --- a/test/testdata/importas_noalias.go +++ b/test/testdata/importas_noalias.go @@ -1,5 +1,5 @@ -//args: -Eimportas -//config_path: testdata/configs/importas_noalias.yml +//golangcitest:args -Eimportas +//golangcitest:config_path testdata/configs/importas_noalias.yml package testdata import ( diff --git a/test/testdata/importas_strict.go b/test/testdata/importas_strict.go index 6f23ac720d7e..ce801870b2e8 100644 --- a/test/testdata/importas_strict.go +++ b/test/testdata/importas_strict.go @@ -1,5 +1,5 @@ -//args: -Eimportas -//config_path: testdata/configs/importas_strict.yml +//golangcitest:args -Eimportas +//golangcitest:config_path testdata/configs/importas_strict.yml package testdata import ( diff --git a/test/testdata/ineffassign.go b/test/testdata/ineffassign.go index 69d3cc81c9c1..96f7c9491d73 100644 --- a/test/testdata/ineffassign.go +++ b/test/testdata/ineffassign.go @@ -1,4 +1,4 @@ -//args: -Eineffassign +//golangcitest:args -Eineffassign package testdata import "math" diff --git a/test/testdata/interfacer.go b/test/testdata/interfacer.go index ef8010aa229f..c53b84a54b44 100644 --- a/test/testdata/interfacer.go +++ b/test/testdata/interfacer.go @@ -1,4 +1,4 @@ -//args: -Einterfacer --internal-cmd-test +//golangcitest:args -Einterfacer --internal-cmd-test package testdata import "io" diff --git a/test/testdata/ireturn_allow.go b/test/testdata/ireturn_allow.go index d6b968a2e244..3667f1c985dd 100644 --- a/test/testdata/ireturn_allow.go +++ b/test/testdata/ireturn_allow.go @@ -1,5 +1,5 @@ -// args: -Eireturn -// config_path: testdata/configs/ireturn.yml +//golangcitest:args -Eireturn +//golangcitest:config_path testdata/configs/ireturn.yml package testdata type ( diff --git a/test/testdata/ireturn_default.go b/test/testdata/ireturn_default.go index 0f9afd48f3a8..0b6fb80dbc40 100644 --- a/test/testdata/ireturn_default.go +++ b/test/testdata/ireturn_default.go @@ -1,4 +1,4 @@ -// args: -Eireturn +//golangcitest:args -Eireturn package testdata type ( diff --git a/test/testdata/ireturn_reject_stdlib.go b/test/testdata/ireturn_reject_stdlib.go index d57d81639904..3bda7febc9e6 100644 --- a/test/testdata/ireturn_reject_stdlib.go +++ b/test/testdata/ireturn_reject_stdlib.go @@ -1,5 +1,5 @@ -// args: -Eireturn -// config_path: testdata/configs/ireturn_stdlib_reject.yml +//golangcitest:args -Eireturn +//golangcitest:config_path testdata/configs/ireturn_stdlib_reject.yml package testdata import ( diff --git a/test/testdata/lll.go b/test/testdata/lll.go index 7c3adaab83c2..e961c7b0f150 100644 --- a/test/testdata/lll.go +++ b/test/testdata/lll.go @@ -1,5 +1,5 @@ -//args: -Elll -//config: linters-settings.lll.tab-width=4 +//golangcitest:args -Elll +//golangcitest:config linters-settings.lll.tab-width=4 package testdata func Lll() { diff --git a/test/testdata/maintidx.go b/test/testdata/maintidx.go index 51f95235040c..68106aa090d9 100644 --- a/test/testdata/maintidx.go +++ b/test/testdata/maintidx.go @@ -1,4 +1,4 @@ -//args: -Emaintidx +//golangcitest:args -Emaintidx package testdata func over20() { diff --git a/test/testdata/maintidx_under_100.go b/test/testdata/maintidx_under_100.go index ce80be08d667..d8fe448663cf 100644 --- a/test/testdata/maintidx_under_100.go +++ b/test/testdata/maintidx_under_100.go @@ -1,5 +1,5 @@ -// args: -Emaintidx -// config_path: testdata/configs/maintidx_under_100.yml +//golangcitest:args -Emaintidx +//golangcitest:config_path testdata/configs/maintidx_under_100.yml package testdata func over20() { // ERROR "Function name: over20, Cyclomatic Complexity: 1, Halstead Volume: 8.00, Maintainability Index: 86" diff --git a/test/testdata/makezero.go b/test/testdata/makezero.go index 40b2ef3cd806..125603595c59 100644 --- a/test/testdata/makezero.go +++ b/test/testdata/makezero.go @@ -1,4 +1,4 @@ -//args: -Emakezero +//golangcitest:args -Emakezero package testdata import "math" diff --git a/test/testdata/makezero_always.go b/test/testdata/makezero_always.go index 633fb65c2416..622c49c5104c 100644 --- a/test/testdata/makezero_always.go +++ b/test/testdata/makezero_always.go @@ -1,5 +1,5 @@ -//args: -Emakezero -//config: linters-settings.makezero.always=true +//golangcitest:args -Emakezero +//golangcitest:config linters-settings.makezero.always=true package testdata import "math" diff --git a/test/testdata/maligned.go b/test/testdata/maligned.go index 7dbc781fb164..74586588744d 100644 --- a/test/testdata/maligned.go +++ b/test/testdata/maligned.go @@ -1,4 +1,4 @@ -//args: -Emaligned --internal-cmd-test +//golangcitest:args -Emaligned --internal-cmd-test package testdata type BadAlignedStruct struct { // ERROR "struct of size 24 bytes could be of size 16 bytes" diff --git a/test/testdata/misspell.go b/test/testdata/misspell.go index 83afb5bb6788..3e9f43d1c97c 100644 --- a/test/testdata/misspell.go +++ b/test/testdata/misspell.go @@ -1,5 +1,5 @@ -//args: -Emisspell -//config_path: testdata/configs/misspell.yml +//golangcitest:args -Emisspell +//golangcitest:config_path testdata/configs/misspell.yml package testdata func Misspell() { diff --git a/test/testdata/nakedret.go b/test/testdata/nakedret.go index 3b78c823e636..eac9ff533a24 100644 --- a/test/testdata/nakedret.go +++ b/test/testdata/nakedret.go @@ -1,4 +1,4 @@ -//args: -Enakedret +//golangcitest:args -Enakedret package testdata func NakedretIssue() (a int, b string) { diff --git a/test/testdata/nestif.go b/test/testdata/nestif.go index 6c111b252aa5..219635545601 100644 --- a/test/testdata/nestif.go +++ b/test/testdata/nestif.go @@ -1,5 +1,5 @@ -//args: -Enestif -//config: linters-settings.nestif.min-complexity=1 +//golangcitest:args -Enestif +//golangcitest:config linters-settings.nestif.min-complexity=1 package testdata func _() { diff --git a/test/testdata/nilerr.go b/test/testdata/nilerr.go index 6475f663faa2..1b71ce19cf4b 100644 --- a/test/testdata/nilerr.go +++ b/test/testdata/nilerr.go @@ -1,4 +1,4 @@ -//args: -Enilerr +//golangcitest:args -Enilerr package testdata import "os" diff --git a/test/testdata/nilnil.go b/test/testdata/nilnil.go index 34c4c8feec82..0a174d5b693e 100644 --- a/test/testdata/nilnil.go +++ b/test/testdata/nilnil.go @@ -1,4 +1,4 @@ -//args: -Enilnil +//golangcitest:args -Enilnil package testdata import ( diff --git a/test/testdata/nlreturn-block-size.go b/test/testdata/nlreturn-block-size.go index 5cf9563446b7..1321ab630af6 100644 --- a/test/testdata/nlreturn-block-size.go +++ b/test/testdata/nlreturn-block-size.go @@ -1,5 +1,5 @@ -// args: -Enlreturn -// config_path: testdata/configs/nlreturn.yml +//golangcitest:args -Enlreturn +//golangcitest:config_path testdata/configs/nlreturn.yml package testdata func foo0(n int) int { diff --git a/test/testdata/nlreturn.go b/test/testdata/nlreturn.go index 4637a65d11ba..884ef7756c42 100644 --- a/test/testdata/nlreturn.go +++ b/test/testdata/nlreturn.go @@ -1,4 +1,4 @@ -//args: -Enlreturn +//golangcitest:args -Enlreturn package testdata func cha() { diff --git a/test/testdata/noctx.go b/test/testdata/noctx.go index d29169ff6a73..70323c4f574c 100644 --- a/test/testdata/noctx.go +++ b/test/testdata/noctx.go @@ -1,4 +1,4 @@ -//args: -Enoctx +//golangcitest:args -Enoctx package testdata import ( diff --git a/test/testdata/nolintlint.go b/test/testdata/nolintlint.go index 94a882f265c2..6d3bf0539e29 100644 --- a/test/testdata/nolintlint.go +++ b/test/testdata/nolintlint.go @@ -1,8 +1,8 @@ -//args: -Enolintlint -Emisspell -//expected_linter: nolintlint -//config: linters-settings.nolintlint.require-explanation=true -//config: linters-settings.nolintlint.require-specific=true -//config: linters-settings.nolintlint.allow-leading-space=false +//golangcitest:args -Enolintlint -Emisspell +//golangcitest:expected_linter nolintlint +//golangcitest:config linters-settings.nolintlint.require-explanation=true +//golangcitest:config linters-settings.nolintlint.require-specific=true +//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package testdata import "fmt" diff --git a/test/testdata/nolintlint_unused.go b/test/testdata/nolintlint_unused.go index df323bb55ed9..a343cc99960c 100644 --- a/test/testdata/nolintlint_unused.go +++ b/test/testdata/nolintlint_unused.go @@ -1,6 +1,6 @@ -//args: -Enolintlint -Evarcheck -//config: linters-settings.nolintlint.allow-unused=false -//expected_linter: nolintlint +//golangcitest:args -Enolintlint -Evarcheck +//golangcitest:config linters-settings.nolintlint.allow-unused=false +//golangcitest:expected_linter nolintlint package testdata import "fmt" diff --git a/test/testdata/nonamedreturns.go b/test/testdata/nonamedreturns.go index c2afbd27ed7d..8de01ae121bd 100644 --- a/test/testdata/nonamedreturns.go +++ b/test/testdata/nonamedreturns.go @@ -1,4 +1,4 @@ -// args: -Enonamedreturns +//golangcitest:args -Enonamedreturns package testdata import "errors" diff --git a/test/testdata/nonamedreturns_custom.go b/test/testdata/nonamedreturns_custom.go index c9289e1e9960..c4bb4f6f87be 100644 --- a/test/testdata/nonamedreturns_custom.go +++ b/test/testdata/nonamedreturns_custom.go @@ -1,5 +1,5 @@ -// args: -Enonamedreturns -// config_path: testdata/configs/nonamedreturns.yml +//golangcitest:args -Enonamedreturns +//golangcitest:config_path testdata/configs/nonamedreturns.yml package testdata import "fmt" diff --git a/test/testdata/nosnakecase.go b/test/testdata/nosnakecase.go index d52c474dd057..05d48a1d9677 100644 --- a/test/testdata/nosnakecase.go +++ b/test/testdata/nosnakecase.go @@ -1,4 +1,4 @@ -//args: -Enosnakecase +//golangcitest:args -Enosnakecase package testdata import ( diff --git a/test/testdata/nosprintfhostport.go b/test/testdata/nosprintfhostport.go index e298e5a637b8..36f23a4a3653 100644 --- a/test/testdata/nosprintfhostport.go +++ b/test/testdata/nosprintfhostport.go @@ -1,4 +1,4 @@ -//args: -Enosprintfhostport +//golangcitest:args -Enosprintfhostport package testdata import ( diff --git a/test/testdata/notcompiles/typecheck.go b/test/testdata/notcompiles/typecheck.go index 46d96c3185f7..ec8a56b53a40 100644 --- a/test/testdata/notcompiles/typecheck.go +++ b/test/testdata/notcompiles/typecheck.go @@ -1,4 +1,4 @@ -//args: -Etypecheck +//golangcitest:args -Etypecheck package testdata fun NotCompiles() { // ERROR "expected declaration, found.* fun" diff --git a/test/testdata/notcompiles/typecheck_many_issues.go b/test/testdata/notcompiles/typecheck_many_issues.go index d2dfc29a77cf..10cf5e03b916 100644 --- a/test/testdata/notcompiles/typecheck_many_issues.go +++ b/test/testdata/notcompiles/typecheck_many_issues.go @@ -1,4 +1,4 @@ -//args: -Etypecheck +//golangcitest:args -Etypecheck package testdata func TypeCheckBadCalls() { diff --git a/test/testdata/paralleltest.go b/test/testdata/paralleltest.go index 3634aac942d6..5f3dac31379d 100644 --- a/test/testdata/paralleltest.go +++ b/test/testdata/paralleltest.go @@ -1,4 +1,4 @@ -//args: -Eparalleltest +//golangcitest:args -Eparalleltest package testdata import ( diff --git a/test/testdata/prealloc.go b/test/testdata/prealloc.go index 17900b773e41..8c55b9cf08f3 100644 --- a/test/testdata/prealloc.go +++ b/test/testdata/prealloc.go @@ -1,4 +1,4 @@ -// args: -Eprealloc +//golangcitest:args -Eprealloc package testdata func Prealloc(source []int) []int { diff --git a/test/testdata/predeclared.go b/test/testdata/predeclared.go index 41bbc10151cd..b68e0893b866 100644 --- a/test/testdata/predeclared.go +++ b/test/testdata/predeclared.go @@ -1,4 +1,4 @@ -//args: -Epredeclared +//golangcitest:args -Epredeclared package testdata func hello() { diff --git a/test/testdata/predeclared_custom.go b/test/testdata/predeclared_custom.go index f5b6c0c89428..656c1f1bb4ec 100644 --- a/test/testdata/predeclared_custom.go +++ b/test/testdata/predeclared_custom.go @@ -1,5 +1,5 @@ -//args: -Epredeclared -//config_path: testdata/configs/predeclared.yml +//golangcitest:args -Epredeclared +//golangcitest:config_path testdata/configs/predeclared.yml package testdata func hello() { diff --git a/test/testdata/promlinter.go b/test/testdata/promlinter.go index 2d2c40583848..269744531715 100644 --- a/test/testdata/promlinter.go +++ b/test/testdata/promlinter.go @@ -1,4 +1,4 @@ -//args: -Epromlinter +//golangcitest:args -Epromlinter package testdata import ( diff --git a/test/testdata/revive.go b/test/testdata/revive.go index 814d7ae9046e..82bc267245ca 100644 --- a/test/testdata/revive.go +++ b/test/testdata/revive.go @@ -1,5 +1,5 @@ -//args: -Erevive -//config_path: testdata/configs/revive.yml +//golangcitest:args -Erevive +//golangcitest:config_path testdata/configs/revive.yml package testdata import ( diff --git a/test/testdata/revive_default.go b/test/testdata/revive_default.go index dff44f881a77..e8986b1b3d74 100644 --- a/test/testdata/revive_default.go +++ b/test/testdata/revive_default.go @@ -1,4 +1,4 @@ -//args: -Erevive +//golangcitest:args -Erevive package testdata import ( diff --git a/test/testdata/rowserrcheck.go b/test/testdata/rowserrcheck.go index 554760a7b9af..95c597afb1e5 100644 --- a/test/testdata/rowserrcheck.go +++ b/test/testdata/rowserrcheck.go @@ -1,4 +1,4 @@ -//args: -Erowserrcheck +//golangcitest:args -Erowserrcheck package testdata import ( diff --git a/test/testdata/scopelint.go b/test/testdata/scopelint.go index 1404841a6bc0..931e31eaa1a4 100644 --- a/test/testdata/scopelint.go +++ b/test/testdata/scopelint.go @@ -1,4 +1,4 @@ -//args: -Escopelint --internal-cmd-test +//golangcitest:args -Escopelint --internal-cmd-test package testdata import "fmt" diff --git a/test/testdata/sqlclosecheck.go b/test/testdata/sqlclosecheck.go index 40d67f66818d..8ad73a93c8fa 100644 --- a/test/testdata/sqlclosecheck.go +++ b/test/testdata/sqlclosecheck.go @@ -1,4 +1,4 @@ -//args: -Esqlclosecheck +//golangcitest:args -Esqlclosecheck package testdata import ( diff --git a/test/testdata/staticcheck.go b/test/testdata/staticcheck.go index d20f26efdb8c..da775618139b 100644 --- a/test/testdata/staticcheck.go +++ b/test/testdata/staticcheck.go @@ -1,4 +1,4 @@ -//args: -Estaticcheck +//golangcitest:args -Estaticcheck package testdata import ( diff --git a/test/testdata/staticcheck_in_megacheck.go b/test/testdata/staticcheck_in_megacheck.go index 8c8cde4255b5..7c98412727b6 100644 --- a/test/testdata/staticcheck_in_megacheck.go +++ b/test/testdata/staticcheck_in_megacheck.go @@ -1,4 +1,4 @@ -//args: -Emegacheck +//golangcitest:args -Emegacheck package testdata import "fmt" diff --git a/test/testdata/structcheck.go b/test/testdata/structcheck.go index 7f6d1b78e0f8..8e403b9e27fa 100644 --- a/test/testdata/structcheck.go +++ b/test/testdata/structcheck.go @@ -1,4 +1,4 @@ -//args: -Estructcheck +//golangcitest:args -Estructcheck package testdata type t struct { diff --git a/test/testdata/stylecheck.go b/test/testdata/stylecheck.go index a0d73053dfd9..9df377ee8fd1 100644 --- a/test/testdata/stylecheck.go +++ b/test/testdata/stylecheck.go @@ -1,4 +1,4 @@ -//args: -Estylecheck +//golangcitest:args -Estylecheck package testdata func Stylecheck(x int) { diff --git a/test/testdata/stylecheck_not_in_megacheck.go b/test/testdata/stylecheck_not_in_megacheck.go index d23fb5f11400..f1379efe07d3 100644 --- a/test/testdata/stylecheck_not_in_megacheck.go +++ b/test/testdata/stylecheck_not_in_megacheck.go @@ -1,4 +1,4 @@ -//args: -Emegacheck +//golangcitest:args -Emegacheck package testdata func StylecheckNotInMegacheck(x int) { diff --git a/test/testdata/tagliatelle.go b/test/testdata/tagliatelle.go index 42823516b1b2..bc3320f1d554 100644 --- a/test/testdata/tagliatelle.go +++ b/test/testdata/tagliatelle.go @@ -1,4 +1,4 @@ -// args: -Etagliatelle +//golangcitest:args -Etagliatelle package testdata import "time" diff --git a/test/testdata/tenv.go b/test/testdata/tenv.go index 45bebd129ba1..3ae19de9243b 100644 --- a/test/testdata/tenv.go +++ b/test/testdata/tenv.go @@ -1,5 +1,5 @@ -// args: -Etenv -// config_path: testdata/configs/tenv_all.yml +//golangcitest:args -Etenv +//golangcitest:config_path testdata/configs/tenv_all.yml package testdata import ( diff --git a/test/testdata/tenv_all.go b/test/testdata/tenv_all.go index 45bebd129ba1..3ae19de9243b 100644 --- a/test/testdata/tenv_all.go +++ b/test/testdata/tenv_all.go @@ -1,5 +1,5 @@ -// args: -Etenv -// config_path: testdata/configs/tenv_all.yml +//golangcitest:args -Etenv +//golangcitest:config_path testdata/configs/tenv_all.yml package testdata import ( diff --git a/test/testdata/tenv_all_test.go b/test/testdata/tenv_all_test.go index c870c29ba0dd..d39c27eb61e9 100644 --- a/test/testdata/tenv_all_test.go +++ b/test/testdata/tenv_all_test.go @@ -1,5 +1,5 @@ -// args: -Etenv -// config_path: testdata/configs/tenv_all.yml +//golangcitest:args -Etenv +//golangcitest:config_path testdata/configs/tenv_all.yml package testdata import ( diff --git a/test/testdata/tenv_go118.go b/test/testdata/tenv_go118.go index b99e15a9b555..0f143f72cfb1 100644 --- a/test/testdata/tenv_go118.go +++ b/test/testdata/tenv_go118.go @@ -1,7 +1,7 @@ //go:build go1.18 // +build go1.18 -// args: -Etenv +//golangcitest:args -Etenv package testdata import ( diff --git a/test/testdata/tenv_test.go b/test/testdata/tenv_test.go index 03977d482d8c..0e2a1d048404 100644 --- a/test/testdata/tenv_test.go +++ b/test/testdata/tenv_test.go @@ -1,4 +1,4 @@ -// args: -Etenv +//golangcitest:args -Etenv package testdata import ( diff --git a/test/testdata/testpackage_test.go b/test/testdata/testpackage_test.go index 13deccb00974..c5be3346a21a 100644 --- a/test/testdata/testpackage_test.go +++ b/test/testdata/testpackage_test.go @@ -1,2 +1,2 @@ -//args: -Etestpackage +//golangcitest:args -Etestpackage package testdata // ERROR "package should be `testdata_test` instead of `testdata`" diff --git a/test/testdata/thelper.go b/test/testdata/thelper.go index a9ec1bde6ab5..c5a4760e6728 100644 --- a/test/testdata/thelper.go +++ b/test/testdata/thelper.go @@ -1,4 +1,4 @@ -//args: -Ethelper +//golangcitest:args -Ethelper package testdata import "testing" diff --git a/test/testdata/thelper_go118.go b/test/testdata/thelper_go118.go index 1fa8c268743a..e61c68ee5ad4 100644 --- a/test/testdata/thelper_go118.go +++ b/test/testdata/thelper_go118.go @@ -1,7 +1,7 @@ //go:build go1.18 // +build go1.18 -//args: -Ethelper +//golangcitest:args -Ethelper package testdata import "testing" diff --git a/test/testdata/thelper_with_options.go b/test/testdata/thelper_with_options.go index da835b536164..83c1586eb490 100644 --- a/test/testdata/thelper_with_options.go +++ b/test/testdata/thelper_with_options.go @@ -1,5 +1,5 @@ -// args: -Ethelper -// config_path: testdata/configs/thelper.yml +//golangcitest:args -Ethelper +//golangcitest:config_path testdata/configs/thelper.yml package testdata import "testing" diff --git a/test/testdata/unconvert.go b/test/testdata/unconvert.go index 4e3184154c38..ce72581e2a3c 100644 --- a/test/testdata/unconvert.go +++ b/test/testdata/unconvert.go @@ -1,4 +1,4 @@ -//args: -Eunconvert +//golangcitest:args -Eunconvert package testdata import "log" diff --git a/test/testdata/unparam.go b/test/testdata/unparam.go index 75f5f602fce5..1cba338f82e9 100644 --- a/test/testdata/unparam.go +++ b/test/testdata/unparam.go @@ -1,4 +1,4 @@ -//args: -Eunparam +//golangcitest:args -Eunparam package testdata func unparamUnused(a, b uint) uint { // ERROR "`unparamUnused` - `b` is unused" diff --git a/test/testdata/unused.go b/test/testdata/unused.go index 1fa3c0b80a19..97aa39d59ca6 100644 --- a/test/testdata/unused.go +++ b/test/testdata/unused.go @@ -1,4 +1,4 @@ -//args: -Eunused +//golangcitest:args -Eunused package testdata func fn1() {} // ERROR "func `fn1` is unused" diff --git a/test/testdata/varcheck.go b/test/testdata/varcheck.go index 39b3c5a9b439..654b7bbbce09 100644 --- a/test/testdata/varcheck.go +++ b/test/testdata/varcheck.go @@ -1,4 +1,4 @@ -//args: -Evarcheck +//golangcitest:args -Evarcheck package testdata var v string // ERROR "`v` is unused" diff --git a/test/testdata/varnamelen.go b/test/testdata/varnamelen.go index 3a49c396d798..b1f9053a6850 100644 --- a/test/testdata/varnamelen.go +++ b/test/testdata/varnamelen.go @@ -1,4 +1,4 @@ -//args: -Evarnamelen +//golangcitest:args -Evarnamelen package testdata import "math" diff --git a/test/testdata/wastedassign.go b/test/testdata/wastedassign.go index 09d658f1e564..f781d0fc9e15 100644 --- a/test/testdata/wastedassign.go +++ b/test/testdata/wastedassign.go @@ -1,4 +1,4 @@ -//args: -Ewastedassign +//golangcitest:args -Ewastedassign package testdata import "strings" diff --git a/test/testdata/wrapcheck.go b/test/testdata/wrapcheck.go index 501b0de9d5e9..386fec9f6b40 100644 --- a/test/testdata/wrapcheck.go +++ b/test/testdata/wrapcheck.go @@ -1,4 +1,4 @@ -//args: -Ewrapcheck +//golangcitest:args -Ewrapcheck package testdata import ( diff --git a/test/testdata/wsl.go b/test/testdata/wsl.go index 89fb5f732dd7..03b6988d4d70 100644 --- a/test/testdata/wsl.go +++ b/test/testdata/wsl.go @@ -1,5 +1,5 @@ -//args: -Ewsl -//config: linters-settings.wsl.tests=1 +//golangcitest:args -Ewsl +//golangcitest:config linters-settings.wsl.tests=1 package testdata import ( From e60937a179e0b60ce2cbcf2c386ee7537cb7c141 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Jul 2022 14:14:34 +0300 Subject: [PATCH 078/162] build(deps): bump github.com/daixiang0/gci from 0.4.1 to 0.4.2 (#2979) Bumps [github.com/daixiang0/gci](https://github.com/daixiang0/gci) from 0.4.1 to 0.4.2. - [Release notes](https://github.com/daixiang0/gci/releases) - [Commits](https://github.com/daixiang0/gci/compare/v0.4.1...v0.4.2) --- updated-dependencies: - dependency-name: github.com/daixiang0/gci dependency-type: direct:production update-type: version-update:semver-patch ... 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 87001c2ac3a8..fbe060e81fcb 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.4.1 + github.com/daixiang0/gci v0.4.2 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index 859cc373e0f5..73ff89d1a7a1 100644 --- a/go.sum +++ b/go.sum @@ -129,8 +129,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.4.1 h1:X2S5Vvlm24kiptIVY6+zKZD9pqI9qKww6JgAfbciSRE= -github.com/daixiang0/gci v0.4.1/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= +github.com/daixiang0/gci v0.4.2 h1:PyT/Y4a265wDhPCZo2ip/YH33M4zEuFA3nDMdAvcKSA= +github.com/daixiang0/gci v0.4.2/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= From b415402720aa2f54f85993669d264cdae703bd7a Mon Sep 17 00:00:00 2001 From: alingse Date: Mon, 18 Jul 2022 15:17:27 +0800 Subject: [PATCH 079/162] Add linter `asasalint` to lint pass []any as any (#2968) --- .golangci.reference.yml | 18 ++++++++++++++++++ go.mod | 1 + go.sum | 2 ++ pkg/config/linters_settings.go | 10 ++++++++++ pkg/golinters/asasalint.go | 30 ++++++++++++++++++++++++++++++ pkg/lint/lintersdb/manager.go | 8 ++++++++ test/testdata/asasalint.go | 20 ++++++++++++++++++++ 7 files changed, 89 insertions(+) create mode 100644 pkg/golinters/asasalint.go create mode 100644 test/testdata/asasalint.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 0b09a14d5324..13647bb36c32 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -107,6 +107,22 @@ output: # All available settings of specific linters. linters-settings: + asasalint: + # To specify a set of function names to exclude. + # The values are merged with the builtin exclusions. + # The builtin exclusions can be disabled by setting `use-builtin-exclusions` to `false`. + # Default: ["^(fmt|log|logger)\.(Print|Fprint|Sprint|Fatal|Panic|Error|Warn|Warning|Info|Debug)(|f|ln)$"] + exclude: + - Append + - \.Wrapf + # To enable/disable the asasalint builtin exclusions of function names. + # See the default value of `exclude` to get the builtin exclusions. + # Default: true + use-builtin-exclusions: false + # Ignore *_test.go files. + # Default: false + ignore-test: true + bidichk: # The following configurations check for all mentioned invisible unicode runes. # All runes are enabled by default. @@ -1823,6 +1839,7 @@ linters: # Enable specific linter # https://golangci-lint.run/usage/linters/#enabled-by-default-linters enable: + - asasalint - asciicheck - bidichk - bodyclose @@ -1922,6 +1939,7 @@ linters: # Disable specific linter # https://golangci-lint.run/usage/linters/#disabled-by-default-linters--e--enable disable: + - asasalint - asciicheck - bidichk - bodyclose diff --git a/go.mod b/go.mod index fbe060e81fcb..5235b63bb380 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,7 @@ require ( github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 github.com/OpenPeeDeeP/depguard v1.1.0 github.com/alexkohler/prealloc v1.0.0 + github.com/alingse/asasalint v0.0.10 github.com/ashanbrown/forbidigo v1.3.0 github.com/ashanbrown/makezero v1.1.1 github.com/bkielbasa/cyclop v1.2.0 diff --git a/go.sum b/go.sum index 73ff89d1a7a1..83cfab25c3bf 100644 --- a/go.sum +++ b/go.sum @@ -70,6 +70,8 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alingse/asasalint v0.0.10 h1:qqGPDTV0ff0tWHN/nnIlSdjlU/EwRPaUY4SfpE1rnms= +github.com/alingse/asasalint v0.0.10/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index e696e54b887b..b0bc1ac82ffd 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -7,6 +7,9 @@ import ( ) var defaultLintersSettings = LintersSettings{ + Asasalint: AsasalintSettings{ + UseBuiltinExclusions: true, + }, Decorder: DecorderSettings{ DecOrder: []string{"type", "const", "var", "func"}, DisableDecNumCheck: true, @@ -113,6 +116,7 @@ var defaultLintersSettings = LintersSettings{ } type LintersSettings struct { + Asasalint AsasalintSettings BiDiChk BiDiChkSettings Cyclop Cyclop Decorder DecorderSettings @@ -184,6 +188,12 @@ type LintersSettings struct { Custom map[string]CustomLinterSettings } +type AsasalintSettings struct { + Exclude []string `mapstructure:"exclude"` + UseBuiltinExclusions bool `mapstructure:"use-builtin-exclusions"` + IgnoreTest bool `mapstructure:"ignore-test"` +} + type BiDiChkSettings struct { LeftToRightEmbedding bool `mapstructure:"left-to-right-embedding"` RightToLeftEmbedding bool `mapstructure:"right-to-left-embedding"` diff --git a/pkg/golinters/asasalint.go b/pkg/golinters/asasalint.go new file mode 100644 index 000000000000..67dde79918b2 --- /dev/null +++ b/pkg/golinters/asasalint.go @@ -0,0 +1,30 @@ +package golinters + +import ( + "github.com/alingse/asasalint" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewAsasalint(setting *config.AsasalintSettings) *goanalysis.Linter { + cfg := asasalint.LinterSetting{} + if setting != nil { + cfg.Exclude = setting.Exclude + cfg.NoBuiltinExclusions = !setting.UseBuiltinExclusions + cfg.IgnoreTest = setting.IgnoreTest + } + + a, err := asasalint.NewAnalyzer(cfg) + if err != nil { + linterLogger.Fatalf("asasalint: create analyzer: %v", err) + } + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index f85a0b16681e..b55d05a4ead7 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -101,6 +101,7 @@ func enableLinterConfigs(lcs []*linter.Config, isEnabled func(lc *linter.Config) //nolint:funlen func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { var ( + asasalintCfg *config.AsasalintSettings bidichkCfg *config.BiDiChkSettings cyclopCfg *config.Cyclop decorderCfg *config.DecorderSettings @@ -171,6 +172,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { ) if m.cfg != nil { + asasalintCfg = &m.cfg.LintersSettings.Asasalint bidichkCfg = &m.cfg.LintersSettings.BiDiChk cyclopCfg = &m.cfg.LintersSettings.Cyclop decorderCfg = &m.cfg.LintersSettings.Decorder @@ -266,6 +268,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { // The linters are sorted in the alphabetical order (case-insensitive). // When a new linter is added the version in `WithSince(...)` must be the next minor version of golangci-lint. lcs := []*linter.Config{ + linter.NewConfig(golinters.NewAsasalint(asasalintCfg)). + WithSince("1.47.0"). + WithPresets(linter.PresetBugs). + WithLoadForGoAnalysis(). + WithURL("https://github.com/alingse/asasalint"), + linter.NewConfig(golinters.NewAsciicheck()). WithSince("v1.26.0"). WithPresets(linter.PresetBugs, linter.PresetStyle). diff --git a/test/testdata/asasalint.go b/test/testdata/asasalint.go new file mode 100644 index 000000000000..7dcc68397249 --- /dev/null +++ b/test/testdata/asasalint.go @@ -0,0 +1,20 @@ +//golangcitest:args -Easasalint +package testdata + +import "fmt" + +func getArgsLength(args ...interface{}) int { + // this line will not report as error + fmt.Println(args) + return len(args) +} + +func checkArgsLength(args ...interface{}) int { + return getArgsLength(args) // ERROR `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` +} + +func someCall() { + var a = []interface{}{1, 2, 3} + fmt.Println(checkArgsLength(a...) == getArgsLength(a)) // ERROR `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` + fmt.Println(checkArgsLength(a...) == getArgsLength(a...)) +} From a913b3e955bcbf6822c5aea303c92da7a4cb5b19 Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Mon, 18 Jul 2022 16:04:44 +0300 Subject: [PATCH 080/162] docs: Update documentation and assets (#2981) Co-authored-by: Fernandez Ludovic --- CHANGELOG.md | 39 ++++++ README.md | 233 ++++++++++++++++--------------- assets/github-action-config.json | 8 +- docs/template_data.state | 2 +- 4 files changed, 167 insertions(+), 115 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83806169e465..e3ee079eee47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,45 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.47.0 + +1. new linters: + * `asasalint`: https://github.com/alingse/asasalint + * `nosnakecase`: https://github.com/sivchari/nosnakecase +2. updated linters: + * `errname`: from 0.1.6 to 0.1.7 + * `gci`: from 0.3.4 to 0.4.2 + * `nonamedreturns`: from 1.0.1 to 1.0.4 + * `gocyclo`: from 0.5.1 to 0.6.0 + * `go-exhaustruct`: from 2.1.0 to 2.2.0 + * `errcheck`: from 1.6.0 to 1.6.1 + * `thelper`: from 0.6.2 to 0.6.3 + * `paralleltest`: from 1.0.3 to 1.0.6 + * `testpackage`: from 1.0.1 to 1.1.0 + * `exhaustive`: from 0.7.11 to 0.8.1 + * `go-ruleguard`: from 0.3.19 to 0.3.21 + * `gosec`: from 2.11.0 to 2.12.0 + * `tenv`: from 1.5.0 to 1.6.0 + * `wrapcheck`: from 2.6.1 to 2.6.2 + * `gocognit`: from 1.0.5 to 1.0.6 + * `decorder`: from 0.2.1 to 0.2.2 + * `honnef.co/go/tools`: from 0.3.1 to 0.3.2 + * `golang.org/x/tools`: bump to HEAD + * `gci`: fix issues and re-enable autofix + * `gosec`: allow `global` config + * `staticcheck`: fix generics +3. documentation: + * add thanks page + * add a clear explanation about the `staticcheck` integration. + * `depguard`: add `ignore-file-rules` + * `depguard`: adjust phrasing + * `gocritic`: add `enable` and `disable` ruleguard settings + * `gomnd`: fix typo + * `gosec`: add configs for all existing rules + * `govet`: add settings for `shadow` and `unusedresult` + * `thelper`: add `fuzz` config and description + * linters: add defaults + ### v1.46.2 1. updated linters: diff --git a/README.md b/README.md index c10d23ac896c..660f8fb860d4 100644 --- a/README.md +++ b/README.md @@ -70,153 +70,153 @@ The Core Team has the following responsibilities:
Simon Sawert

Loong Dai

Oleg Butuzov
-
Sascha Grunert
+
Kamil Samigullin
+
Sascha Grunert

@iwankgb
-
Kamil Samigullin

Andrew Shannon Brown

Ryan Currah

Pierre Durand

Denis Tingaikin
-
Sebastien Rosset
+
sivchari
-
sivchari
+
Sebastien Rosset
+
@golangci-releaser

David Lobe

Alexey Palazhchenko
-
@golangci-releaser
+
Marat Reymers

Duco van Amstel
-
Nishanth Shanmugham
-
Kensei Nakada
+
Nishanth Shanmugham
+
Kensei Nakada

Melvin

Denis Krivak

Iskander (Alex) Sharipov

Steve Coffman

Maik Schreiber

Matouš Dzivjak
-
Alec Thomas
+
Alec Thomas
+
Sasha Melentyev

Will Dixon

Anton Telyshev

Mateusz Gozdek

Michael Mulligan

Nuruddin Ashr
-
Joe Wilner
-
@leonklingele
-And 310 more our team members +And 317 more our team members + + - - + + - + + + + - - - - - + + + + + - - - - - + + - - + + - + - - + + - - - + + + - - + + - - + - + - @@ -225,294 +225,303 @@ The Core Team has the following responsibilities: + - - + - - + + + - - + + + - - - + - + + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - + - - + + - + - - + + - - + + - - + + - - + - + - + - - + + - - + + + - - + + - - - + + + - - + - + - + + - - + + + + + - - - - - - + + + + + + + - - - + + + - - + + + - - + + - - + + - - + + - + + + - +

Joe Wilner

@leonklingele

Soichiro Kashima

Lucas Bremgartner

Mitsuo Heijo

Tim Heckman

James

Colin Arnott

Dan Kortschak

Colin Arnott

Luke Shumaker

Márk Sági-Kazár

Kir Kolyshkin

Ryan Boehning

Sasha Melentyev

@alingse

Gustavo Bazan

Aliaksandr Mianzhynski

Aleksey Bakin

Peter Mescalchin

Rski

sonatard

Aneesh Agrawal

Gustavo Bazan

Vladimir Evgrafov

ZhangYunHao

Anton Zinovyev

ZhangYunHao

Anton Zinovyev

gaojingyu

@odidev

NiseVoid

Christian Mehlmauer

Sean DuBois

Viktoras

Florian Bosdorff

Agniva De Sarker

Eugene Simonov

SystemGlitch

Henrik Johansson

Tom Arrell

Christian Mehlmauer

John Starich

Koichi Shiraishi

John Starich

Koichi Shiraishi

Bart

Neha Viswanathan

Oleksandr Redko

David Braley

Chris Bandy

Patrick Kuca

Viacheslav Poturaev

Patrick Kuca

Viacheslav Poturaev

Lukas Malkmus

Nate Finch

Kir Kolyshkin

Ville Skyttä

Zik

Robert Liebowitz

Tim Kral

Hiroyuki Yagihashi

Tim Kral

Hiroyuki Yagihashi

Zeal Wierslee

Kunwardeep

Pierre R

Stephan Renatus

Diego Pontoriero

Daniel Helfand

Faisal Alam

Diego Pontoriero

Daniel Helfand

Faisal Alam

Alex Collins

Ryo Nakao

Tommy Mühle

@kyoh86

Sebastiaan van Stijn

@Dominik-K

Craig Silverstein

@Dominik-K

Craig Silverstein

tdakkota

Bartłomiej Klimczak

ferhat elmas

Denis Limarev

M. Ángel Jimeno

Chris Drew

Marat Reymers

Chris Drew

Teiva Harsanyi

Chris Suszynski

Kailun Qin

Ariel Mashraki

Denis Isaev

Tom Payne

@fsouza

@fsouza

Ryan Olds

Hiroki Suezawa

Ville Skyttä

Fabrice

Christoph Blecker

Mateusz Bilski

Ben Ye

lufe

@sg0hsmt

Stephanie Wilde-Hobbs

Cory LaNou

Pete Wagner

Sindre Røkenes Myren

Jakub Chábek

Vitaly Isaev

Vitaly Isaev

Shulhan

Pete Wagner

Jakub Chábek

Shulhan

Renato Suero

Ben Wells

Jonathan Chappelow

Brian Flad

Lauris BH

Sean McGinnis

Lauris BH

Sean McGinnis

Eric Wohltman

Borja Clemente

Ethan Reesor

masibw

Gianguido Sorà

Derek Perkins

Sonia Hamilton

sylvia

sylvia

Gianguido Sorà

Derek Perkins

Sonia Hamilton

Berezhnoy Pavel

Henry

Aofei Sheng

Maksym Pavlenko

Ivan

@ngehrsitz

Ivan

@ngehrsitz

John Reese

James Lucktaylor

Dale Hui

Ondrej Fabry

Kishan B

proton

Ghvst Code

proton

Ghvst Code

Son Luong Ngoc

Markus

Sebastian Spaink

Andrew Lavery

Tariq Ibrahim

Peter Štibraný

kaixiang zhong

Peter Štibraný

kaixiang zhong

@ced42

David Bariod

Stephen Benjamin

Yuki Okushi

Eldar Rakhimberdin

Toon Schoenmakers

Cezar Sá Espinola

Toon Schoenmakers

Cezar Sá Espinola

Ben Paxton

Connor Adams

Draven

David Cuadrado

Martins Irbe

Craig Furman

Rodrigo Brito

Craig Furman

Rodrigo Brito

@techknowlogick

takaya

Mark Sart

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

Linus Arver

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

Linus Arver

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

subham sarkar

smantic

sarkar

smantic

Ryan Leung

Donal Byrne

Donal Byrne

Marko

Chris Lewis

David Gleich

Muhammad Ikhsan

Denis Titusov

Muhammad Ikhsan

Denis Titusov

Terdunov Vyacheslav

Sean Chittenden

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

Anton Antonov

@hn8

Anton Antonov

@hn8

Kevin Gillette

Milas Bowman

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Fisher Xu

Matthew Poer

Fisher Xu

Matthew Poer

Cody Ley-Han

@pohang

@darklore

@to6ka

@evalexpr

Collin Kreklow

Marcin Owsiany

Collin Kreklow

Marcin Owsiany

C.J. Jameson

Jack

paul fisher

@ofw

Rafik Draoui

Miles Delahunty

@sg0hsmt

Miles Delahunty

Ryo Sato

Eric Zimanyi

Boban Acimovic

Dima

David Hill

Troy Ronda

Jared Allard

Jared Allard

Osamu TONOMORI

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Eran Levy

Roman Leventov

Eric Jain

Hugo

Eric Jain

Hugo

Mathias Weber

Naveen

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Daniel Caballero

Chris Nesbitt-Smith

Daniel Caballero

Igor Zibarev

Carlton Henderson

Shintaro Ikeda

Matt Braymer-Hayes

@ttys3

Tomas Dabasinskas

@xuri

Charl Matthee

@xuri

Charl Matthee

Sriram Venkatesh

Peter Schuller

David Golub

Alexander Morozov

@hbandura

Liam White

Alex Dupre

Juanito

Liam White

Alex Dupre

Juanito

Jinming Yue

Igor Zibarev

@wxdao

Kévin Dunglas

Sijie Yang

Stephen

Stephen

Thang Minh Vu

Julia Ogris

Greg Curtis

@ac-rappi

Dudás Ádám

Abhishek | अभिषेक

Daniele

Daniele

Takumasa Sakao

Ben Drucker

Stephen Brown II

Matthew Cobbing

@Darlez

Kirill Danshin

mook

mook

Kyungmin Bae

Dylan Arbour

Cory Miller

@andreykuchin

Irina

Petr Pučil

Aaron Bennett

失眠是真滴难受

Aaron Bennett

失眠是真滴难受

Daniil Suvorov

Alexandre Vilain

Thirukumaran Vaseeharan

Alessio Treglia

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

Matias Lahti

Sebastian Crane

Alexander Else

Vlado Pajić

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Vlado Pajić

Florian Gessner

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Mateus Esdras

Hilário Coelho

Tibo Delor

Francois Parquet

Robert Kopaczewski

Marc Tudurí

Marc Tudurí

@opennota

Cyrille Meichel

neglect-yp

Felix

Adrien

Joe Bergevin

Guillaume JG

cnmade

Anirudh Sylendranath

@jumpeiMano

Federico Guerinoni

Alex Rodin

Arjen van der Ende

Oliver Gugger

Devin Gunay

Wei Jian Gan

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

@srdhoni

@derekhuizhang

le0tk0k

Sean Schneeweiss

@connorszczepaniak-wk

pprzekwas

@madflow

Axetroy

Arman Tarkhanian

John Adler

@licraft2019

@mlueckest

Lucas Ramage

Lucas Ramage

@malteehrlen

Thomas Bonfort

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy
diff --git a/assets/github-action-config.json b/assets/github-action-config.json index ca5f94c5327b..003af4739609 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.46.2", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" + "TargetVersion": "v1.47.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.0/golangci-lint-1.47.0-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -154,6 +154,10 @@ "TargetVersion": "v1.46.2", "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, + "v1.47": { + "TargetVersion": "v1.47.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.0/golangci-lint-1.47.0-linux-amd64.tar.gz" + }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" }, diff --git a/docs/template_data.state b/docs/template_data.state index 8ae98789ece0..aa8c5906dcc2 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -6fa4da42d81d503161d378e42adb1c519c5a4297eae650cf15da61ac96334587 \ No newline at end of file +45b0d066f944f36e3c84d3bb0d847aa7042211d038b48aa14ff1c7d5d207fe4f \ No newline at end of file From fd87bd1efb52e726d329905dd705b2b2fd59f90b Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 18 Jul 2022 20:04:33 +0200 Subject: [PATCH 081/162] gci: remove the use of stdin (#2984) Co-authored-by: Tom Moulard --- go.mod | 2 +- pkg/golinters/gci.go | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 5235b63bb380..349b648ec8c0 100644 --- a/go.mod +++ b/go.mod @@ -44,6 +44,7 @@ require ( github.com/gostaticanalysis/nilerr v0.1.1 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-version v1.6.0 + github.com/hexops/gotextdiff v1.0.3 github.com/jgautheron/goconst v1.5.1 github.com/jingyugao/rowserrcheck v1.1.1 github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af @@ -132,7 +133,6 @@ require ( github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hexops/gotextdiff v1.0.3 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/kisielk/gotool v1.0.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index 72c1776fde0b..199bf948865a 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -7,6 +7,11 @@ import ( gcicfg "github.com/daixiang0/gci/pkg/config" "github.com/daixiang0/gci/pkg/gci" + "github.com/daixiang0/gci/pkg/io" + "github.com/daixiang0/gci/pkg/log" + "github.com/hexops/gotextdiff" + "github.com/hexops/gotextdiff/myers" + "github.com/hexops/gotextdiff/span" "github.com/pkg/errors" "golang.org/x/tools/go/analysis" @@ -81,7 +86,7 @@ func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lo } var diffs []string - err := gci.DiffFormattedFilesToArray(fileNames, *cfg, &diffs, lock) + err := diffFormattedFilesToArray(fileNames, *cfg, &diffs, lock) if err != nil { return nil, err } @@ -106,6 +111,25 @@ func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lo return issues, nil } +// diffFormattedFilesToArray is a copy of gci.DiffFormattedFilesToArray without io.StdInGenerator. +// gci.DiffFormattedFilesToArray uses gci.processStdInAndGoFilesInPaths that uses io.StdInGenerator but stdin is not active on CI. +// https://github.com/daixiang0/gci/blob/6f5cb16718ba07f0342a58de9b830ec5a6d58790/pkg/gci/gci.go#L63-L75 +// https://github.com/daixiang0/gci/blob/6f5cb16718ba07f0342a58de9b830ec5a6d58790/pkg/gci/gci.go#L80 +func diffFormattedFilesToArray(paths []string, cfg gcicfg.Config, diffs *[]string, lock *sync.Mutex) error { + log.InitLogger() + defer func() { _ = log.L().Sync() }() + + return gci.ProcessFiles(io.GoFilesInPathsGenerator(paths), cfg, func(filePath string, unmodifiedFile, formattedFile []byte) error { + fileURI := span.URIFromPath(filePath) + edits := myers.ComputeEdits(fileURI, string(unmodifiedFile), string(formattedFile)) + unifiedEdits := gotextdiff.ToUnified(filePath, filePath, string(unmodifiedFile), edits) + lock.Lock() + *diffs = append(*diffs, fmt.Sprint(unifiedEdits)) + lock.Unlock() + return nil + }) +} + func getErrorTextForGci(settings config.GciSettings) string { text := "File is not `gci`-ed" From 4c8bdc70cc3d074ad741fb2abe8106399cbfc619 Mon Sep 17 00:00:00 2001 From: sivchari Date: Tue, 19 Jul 2022 03:27:20 +0900 Subject: [PATCH 082/162] build(deps): bump github.com/sivchari/tenv from 1.6.0 to 1.7.0 (#2988) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 349b648ec8c0..4890739d4a14 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( github.com/shirou/gopsutil/v3 v3.22.6 github.com/sirupsen/logrus v1.8.1 github.com/sivchari/containedctx v1.0.2 - github.com/sivchari/tenv v1.6.0 + github.com/sivchari/tenv v1.7.0 github.com/sonatard/noctx v0.0.1 github.com/sourcegraph/go-diff v0.6.1 github.com/spf13/cobra v1.5.0 diff --git a/go.sum b/go.sum index 83cfab25c3bf..e09fca57a288 100644 --- a/go.sum +++ b/go.sum @@ -621,8 +621,8 @@ github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYI github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= github.com/sivchari/nosnakecase v1.5.0 h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M= github.com/sivchari/nosnakecase v1.5.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= -github.com/sivchari/tenv v1.6.0 h1:FyE4WysxLwYljKqWhTfOMjgKjBSnmzzg7lWOmpDiAcc= -github.com/sivchari/tenv v1.6.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= +github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= From 4e60e8a894f113c23492c074c187e9bec1479463 Mon Sep 17 00:00:00 2001 From: Oscar <1570691+oscr@users.noreply.github.com> Date: Tue, 19 Jul 2022 01:56:22 +0200 Subject: [PATCH 083/162] gci: fix options display (#2989) --- pkg/golinters/gci.go | 2 +- test/testdata/gci.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index 199bf948865a..0b086c88dc46 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -141,7 +141,7 @@ func getErrorTextForGci(settings config.GciSettings) string { text += " with" if settings.SkipGenerated { - text += " -skip-generated" + text += " --skip-generated" } if len(settings.Sections) > 0 { diff --git a/test/testdata/gci.go b/test/testdata/gci.go index a63de6b5465b..d29e85b0da49 100644 --- a/test/testdata/gci.go +++ b/test/testdata/gci.go @@ -5,9 +5,9 @@ package testdata import ( "fmt" - "github.com/golangci/golangci-lint/pkg/config" // ERROR "File is not \\`gci\\`-ed with -skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" + "github.com/golangci/golangci-lint/pkg/config" // ERROR "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" - "github.com/pkg/errors" // ERROR "File is not \\`gci\\`-ed with -skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" + "github.com/pkg/errors" // ERROR "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" ) func GoimportsLocalTest() { From eb16e701db3a34156e39774a9a9cf943fde14bac Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 19 Jul 2022 09:12:58 +0200 Subject: [PATCH 084/162] fix: generics (#2991) --- .golangci.reference.yml | 2 ++ go.mod | 6 +++--- go.sum | 15 ++++++--------- pkg/lint/lintersdb/manager.go | 33 +++++++++++---------------------- 4 files changed, 22 insertions(+), 34 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 13647bb36c32..1b35c1017396 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1905,6 +1905,7 @@ linters: - noctx - nolintlint - nonamedreturns + - nosnakecase - nosprintfhostport - paralleltest - prealloc @@ -2005,6 +2006,7 @@ linters: - noctx - nolintlint - nonamedreturns + - nosnakecase - nosprintfhostport - paralleltest - prealloc diff --git a/go.mod b/go.mod index 4890739d4a14..8aa4c85c2b65 100644 --- a/go.mod +++ b/go.mod @@ -101,12 +101,12 @@ require ( github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 gitlab.com/bosi/decorder v0.2.2 - golang.org/x/tools v0.1.11 + golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 mvdan.cc/gofumpt v0.3.1 mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed - mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5 + mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 ) require ( @@ -169,7 +169,7 @@ require ( go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.17.0 // indirect - golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect + golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sys v0.0.0-20220702020025-31831981b65f // indirect diff --git a/go.sum b/go.sum index e09fca57a288..a09295c19481 100644 --- a/go.sum +++ b/go.sum @@ -534,7 +534,6 @@ github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuw github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= 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= @@ -590,7 +589,6 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -782,8 +780,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 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-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM= -golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic= +golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= 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= @@ -951,7 +949,6 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211213223007-03aa0b5f6827/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1063,12 +1060,12 @@ golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0t golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1 h1:NHLFZ56qCjD+0hYY3kE5Wl40Z7q4Gn9Ln/7YU0lsGko= +golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= 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= @@ -1223,8 +1220,8 @@ mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wp mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5 h1:Jh3LAeMt1eGpxomyu3jVkmVZWW2MxZ1qIIV2TZ/nRio= -mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5/go.mod h1:b8RRCBm0eeiWR8cfN88xeq2G5SG3VKGO+5UPWi5FSOY= +mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk= +mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2YjFf5CaW0Bw4RL8RfbEf4GRggJk= 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= diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index b55d05a4ead7..9939d60c65f3 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -288,8 +288,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.18.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/timakin/bodyclose"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/timakin/bodyclose"), linter.NewConfig(golinters.NewContainedCtx()). WithSince("1.44.0"). @@ -300,8 +299,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.43.0"). WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). - WithURL("https://github.com/sylvia7788/contextcheck"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sylvia7788/contextcheck"), linter.NewConfig(golinters.NewCyclop(cyclopCfg)). WithSince("v1.37.0"). @@ -561,8 +559,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). WithURL("https://github.com/mvdan/interfacer"). - Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""). - WithNoopFallback(m.cfg), + Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""), linter.NewConfig(golinters.NewIreturn(ireturnCfg)). WithSince("v1.43.0"). @@ -612,8 +609,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.38.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs). - WithURL("https://github.com/gostaticanalysis/nilerr"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/gostaticanalysis/nilerr"), linter.NewConfig(golinters.NewNilNil(nilNilCfg)). WithSince("v1.43.0"). @@ -630,8 +626,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.28.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/sonatard/noctx"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sonatard/noctx"), linter.NewConfig(golinters.NewNoNamedReturns(noNamedReturnsCfg)). WithSince("v1.46.0"). @@ -680,8 +675,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.23.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs, linter.PresetSQL). - WithURL("https://github.com/jingyugao/rowserrcheck"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/jingyugao/rowserrcheck"), linter.NewConfig(golinters.NewScopelint()). WithSince("v1.12.0"). @@ -693,8 +687,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.28.0"). WithPresets(linter.PresetBugs, linter.PresetSQL). WithLoadForGoAnalysis(). - WithURL("https://github.com/ryanrolds/sqlclosecheck"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/ryanrolds/sqlclosecheck"), linter.NewConfig(golinters.NewStaticcheck(staticcheckCfg)). WithSince("v1.0.0"). @@ -707,8 +700,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). - WithURL("https://github.com/opennota/check"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/opennota/check"), linter.NewConfig(golinters.NewStylecheck(stylecheckCfg)). WithSince("v1.20.0"). @@ -742,8 +734,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.32.0"). WithPresets(linter.PresetStyle, linter.PresetTest). WithLoadForGoAnalysis(). - WithURL("https://github.com/moricho/tparallel"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/moricho/tparallel"), linter.NewConfig(golinters.NewTypecheck()). WithSince("v1.3.0"). @@ -761,8 +752,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.9.0"). WithPresets(linter.PresetUnused). WithLoadForGoAnalysis(). - WithURL("https://github.com/mvdan/unparam"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/mvdan/unparam"), linter.NewConfig(golinters.NewUnused(unusedCfg)). WithSince("v1.20.0"). @@ -789,8 +779,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.38.0"). WithPresets(linter.PresetStyle). WithLoadForGoAnalysis(). - WithURL("https://github.com/sanposhiho/wastedassign"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sanposhiho/wastedassign"), linter.NewConfig(golinters.NewWhitespace(whitespaceCfg)). WithSince("v1.19.0"). From a91463cde4de1bf3257940c7fa21fccce917c8dd Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 19 Jul 2022 09:50:14 +0200 Subject: [PATCH 085/162] build(deps): bump github.com/daixiang0/gci from 0.4.2 to 0.4.3 (#2992) --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 8aa4c85c2b65..b3d969ceb4a1 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.4.2 + github.com/daixiang0/gci v0.4.3 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index a09295c19481..6d54de0c8765 100644 --- a/go.sum +++ b/go.sum @@ -131,8 +131,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.4.2 h1:PyT/Y4a265wDhPCZo2ip/YH33M4zEuFA3nDMdAvcKSA= -github.com/daixiang0/gci v0.4.2/go.mod h1:d0f+IJhr9loBtIq+ebwhRoTt1LGbPH96ih8bKlsRT9E= +github.com/daixiang0/gci v0.4.3 h1:wf7x0xRjQqTlA2dzHTI0A/xPyp7VcBatBG9nwGatwbQ= +github.com/daixiang0/gci v0.4.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -681,7 +681,6 @@ github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= -github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= From c39bf96129a5e49abeeb909674fe351704a89e06 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 19 Jul 2022 12:32:33 +0200 Subject: [PATCH 086/162] fix: disable structcheck for go >= 1.18 (#2994) --- pkg/lint/lintersdb/manager.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 9939d60c65f3..782e286d4130 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -700,7 +700,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). - WithURL("https://github.com/opennota/check"), + WithURL("https://github.com/opennota/check"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewStylecheck(stylecheckCfg)). WithSince("v1.20.0"). From ebd6dcbf92973d7102593b5f4eec2ab10dac1e2c Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 19 Jul 2022 13:29:54 +0200 Subject: [PATCH 087/162] Revert 'fix: generics (#2991)' (#2995) --- pkg/lint/lintersdb/manager.go | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 782e286d4130..0d1f37e611a6 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -288,7 +288,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.18.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/timakin/bodyclose"), + WithURL("https://github.com/timakin/bodyclose"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewContainedCtx()). WithSince("1.44.0"). @@ -299,7 +300,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.43.0"). WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). - WithURL("https://github.com/sylvia7788/contextcheck"), + WithURL("https://github.com/sylvia7788/contextcheck"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewCyclop(cyclopCfg)). WithSince("v1.37.0"). @@ -559,7 +561,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). WithURL("https://github.com/mvdan/interfacer"). - Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""), + Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewIreturn(ireturnCfg)). WithSince("v1.43.0"). @@ -609,7 +612,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.38.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs). - WithURL("https://github.com/gostaticanalysis/nilerr"), + WithURL("https://github.com/gostaticanalysis/nilerr"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewNilNil(nilNilCfg)). WithSince("v1.43.0"). @@ -626,7 +630,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.28.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/sonatard/noctx"), + WithURL("https://github.com/sonatard/noctx"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewNoNamedReturns(noNamedReturnsCfg)). WithSince("v1.46.0"). @@ -675,7 +680,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.23.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs, linter.PresetSQL). - WithURL("https://github.com/jingyugao/rowserrcheck"), + WithURL("https://github.com/jingyugao/rowserrcheck"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewScopelint()). WithSince("v1.12.0"). @@ -687,7 +693,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.28.0"). WithPresets(linter.PresetBugs, linter.PresetSQL). WithLoadForGoAnalysis(). - WithURL("https://github.com/ryanrolds/sqlclosecheck"), + WithURL("https://github.com/ryanrolds/sqlclosecheck"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewStaticcheck(staticcheckCfg)). WithSince("v1.0.0"). @@ -735,7 +742,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.32.0"). WithPresets(linter.PresetStyle, linter.PresetTest). WithLoadForGoAnalysis(). - WithURL("https://github.com/moricho/tparallel"), + WithURL("https://github.com/moricho/tparallel"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewTypecheck()). WithSince("v1.3.0"). @@ -780,7 +788,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.38.0"). WithPresets(linter.PresetStyle). WithLoadForGoAnalysis(). - WithURL("https://github.com/sanposhiho/wastedassign"), + WithURL("https://github.com/sanposhiho/wastedassign"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewWhitespace(whitespaceCfg)). WithSince("v1.19.0"). From dc0237854f928ca14e37df07823335b62aaa577a Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Tue, 19 Jul 2022 19:22:38 +0300 Subject: [PATCH 088/162] docs: Update documentation and assets (#2996) Co-authored-by: ldez --- CHANGELOG.md | 9 ++++++ README.md | 50 +++++++++++++++++--------------- assets/github-action-config.json | 8 ++--- docs/template_data.state | 2 +- 4 files changed, 40 insertions(+), 29 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3ee079eee47..b408bb472bd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.47.1 + +1. updated linters: + * `gci`: from 0.4.2 to 0.4.3 + * `gci`: remove the use of stdin + * `gci`: fix options display + * `tenv`: from 1.6.0 to 1.7.0 + * `unparam`: bump to HEAD + ### v1.47.0 1. new linters: diff --git a/README.md b/README.md index 660f8fb860d4..9f586f55c7e7 100644 --- a/README.md +++ b/README.md @@ -76,10 +76,10 @@ The Core Team has the following responsibilities:
Sascha Grunert

@iwankgb

Andrew Shannon Brown
+
sivchari

Ryan Currah

Pierre Durand

Denis Tingaikin
-
sivchari

Sebastien Rosset
@@ -88,7 +88,7 @@ The Core Team has the following responsibilities:
Alexey Palazhchenko

Marat Reymers

Duco van Amstel
-
Nishanth Shanmugham
+
Nishanth Shanmugham

Kensei Nakada
@@ -102,16 +102,16 @@ The Core Team has the following responsibilities:
Alec Thomas

Sasha Melentyev
+
Mateusz Gozdek

Will Dixon

Anton Telyshev
-
Mateusz Gozdek

Michael Mulligan

Nuruddin Ashr
-And 317 more our team members +And 319 more our team members @@ -134,8 +134,8 @@ The Core Team has the following responsibilities: - + @@ -207,38 +207,38 @@ The Core Team has the following responsibilities: + - + - + - + - @@ -391,135 +391,137 @@ The Core Team has the following responsibilities: - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + diff --git a/assets/github-action-config.json b/assets/github-action-config.json index 003af4739609..5e465c555f85 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.47.0", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.0/golangci-lint-1.47.0-linux-amd64.tar.gz" + "TargetVersion": "v1.47.1", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.1/golangci-lint-1.47.1-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -155,8 +155,8 @@ "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, "v1.47": { - "TargetVersion": "v1.47.0", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.0/golangci-lint-1.47.0-linux-amd64.tar.gz" + "TargetVersion": "v1.47.1", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.1/golangci-lint-1.47.1-linux-amd64.tar.gz" }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" diff --git a/docs/template_data.state b/docs/template_data.state index aa8c5906dcc2..4af4ad53949d 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -45b0d066f944f36e3c84d3bb0d847aa7042211d038b48aa14ff1c7d5d207fe4f \ No newline at end of file +ba0e0f68315c94781e4f718e5dbc0fb26ee120d5043191fd242e63bdd0c825ca \ No newline at end of file From 3fb60a3e8ac54f27e48755823c8c588337596c5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 23:50:09 +0200 Subject: [PATCH 089/162] build(deps): bump terser from 5.12.0 to 5.14.2 in /docs (#2998) --- docs/package-lock.json | 124 ++++++++++++++++++++++++++++++++++------- 1 file changed, 103 insertions(+), 21 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 06bc4eac19bb..b9135cfe1362 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -3952,6 +3952,58 @@ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@lezer/common": { "version": "0.15.12", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", @@ -23222,13 +23274,13 @@ } }, "node_modules/terser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", - "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dependencies": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { @@ -23350,14 +23402,6 @@ "node": ">=0.4.0" } }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -28626,6 +28670,49 @@ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@lezer/common": { "version": "0.15.12", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", @@ -43382,13 +43469,13 @@ "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "terser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", - "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "requires": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "dependencies": { @@ -43396,11 +43483,6 @@ "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" } } }, From 61673b34362ae2a8af6cd1d74f69c22b091bf00b Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 21 Jul 2022 01:39:54 +0200 Subject: [PATCH 090/162] revive: ignore slow rules (#2999) --- CHANGELOG.md | 26 ++++++++++----------- pkg/golinters/revive.go | 52 +++++++++++++++++++++++++++++++++-------- 2 files changed, 55 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b408bb472bd1..723705db45ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,27 +16,27 @@ There is the most valuable changes log: * `asasalint`: https://github.com/alingse/asasalint * `nosnakecase`: https://github.com/sivchari/nosnakecase 2. updated linters: + * `decorder`: from 0.2.1 to 0.2.2 + * `errcheck`: from 1.6.0 to 1.6.1 * `errname`: from 0.1.6 to 0.1.7 + * `exhaustive`: from 0.7.11 to 0.8.1 + * `gci`: fix issues and re-enable autofix * `gci`: from 0.3.4 to 0.4.2 - * `nonamedreturns`: from 1.0.1 to 1.0.4 - * `gocyclo`: from 0.5.1 to 0.6.0 * `go-exhaustruct`: from 2.1.0 to 2.2.0 - * `errcheck`: from 1.6.0 to 1.6.1 - * `thelper`: from 0.6.2 to 0.6.3 - * `paralleltest`: from 1.0.3 to 1.0.6 - * `testpackage`: from 1.0.1 to 1.1.0 - * `exhaustive`: from 0.7.11 to 0.8.1 * `go-ruleguard`: from 0.3.19 to 0.3.21 - * `gosec`: from 2.11.0 to 2.12.0 - * `tenv`: from 1.5.0 to 1.6.0 - * `wrapcheck`: from 2.6.1 to 2.6.2 * `gocognit`: from 1.0.5 to 1.0.6 - * `decorder`: from 0.2.1 to 0.2.2 - * `honnef.co/go/tools`: from 0.3.1 to 0.3.2 + * `gocyclo`: from 0.5.1 to 0.6.0 * `golang.org/x/tools`: bump to HEAD - * `gci`: fix issues and re-enable autofix * `gosec`: allow `global` config + * `gosec`: from 2.11.0 to 2.12.0 + * `nonamedreturns`: from 1.0.1 to 1.0.4 + * `paralleltest`: from 1.0.3 to 1.0.6 * `staticcheck`: fix generics + * `staticcheck`: from 0.3.1 to 0.3.2 + * `tenv`: from 1.5.0 to 1.6.0 + * `testpackage`: from 1.0.1 to 1.1.0 + * `thelper`: from 0.6.2 to 0.6.3 + * `wrapcheck`: from 2.6.1 to 2.6.2 3. documentation: * add thanks page * add a clear explanation about the `staticcheck` integration. diff --git a/pkg/golinters/revive.go b/pkg/golinters/revive.go index 6384f502c2dc..0e150720c50c 100644 --- a/pkg/golinters/revive.go +++ b/pkg/golinters/revive.go @@ -7,6 +7,7 @@ import ( "go/token" "os" "reflect" + "strings" "sync" "github.com/BurntSushi/toml" @@ -186,6 +187,7 @@ func getReviveConfig(cfg *config.ReviveSettings) (*lint.Config, error) { } normalizeConfig(conf) + ignoreRules(conf) reviveDebugf("revive configuration: %#v", conf) @@ -254,7 +256,7 @@ func safeTomlSlice(r []interface{}) []interface{} { // This element is not exported by revive, so we need copy the code. // Extracted from https://github.com/mgechev/revive/blob/v1.1.4/config/config.go#L15 var defaultRules = []lint.Rule{ - &rule.VarDeclarationsRule{}, + // &rule.VarDeclarationsRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (var-declaration) &rule.PackageCommentsRule{}, &rule.DotImportsRule{}, &rule.BlankImportsRule{}, @@ -262,15 +264,15 @@ var defaultRules = []lint.Rule{ &rule.VarNamingRule{}, &rule.IndentErrorFlowRule{}, &rule.RangeRule{}, - &rule.ErrorfRule{}, + // &rule.ErrorfRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (errorf &rule.ErrorNamingRule{}, &rule.ErrorStringsRule{}, &rule.ReceiverNamingRule{}, &rule.IncrementDecrementRule{}, &rule.ErrorReturnRule{}, - &rule.UnexportedReturnRule{}, - &rule.TimeNamingRule{}, - &rule.ContextKeysType{}, + // &rule.UnexportedReturnRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (unexported-return) + // &rule.TimeNamingRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (time-naming) + // &rule.ContextKeysType{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (context-keys-type) &rule.ContextAsArgumentRule{}, } @@ -291,7 +293,7 @@ var allRules = append([]lint.Rule{ &rule.FlagParamRule{}, &rule.UnnecessaryStmtRule{}, &rule.StructTagRule{}, - &rule.ModifiesValRecRule{}, + // &rule.ModifiesValRecRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (modifies-value-receiver) &rule.ConstantLogicalExprRule{}, &rule.BoolLiteralRule{}, &rule.RedefinesBuiltinIDRule{}, @@ -299,7 +301,7 @@ var allRules = append([]lint.Rule{ &rule.FunctionResultsLimitRule{}, &rule.MaxPublicStructsRule{}, &rule.RangeValInClosureRule{}, - &rule.RangeValAddress{}, + // &rule.RangeValAddress{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (range-val-address) &rule.WaitGroupByValueRule{}, &rule.AtomicRule{}, &rule.EmptyLinesRule{}, @@ -309,9 +311,9 @@ var allRules = append([]lint.Rule{ &rule.ImportShadowingRule{}, &rule.BareReturnRule{}, &rule.UnusedReceiverRule{}, - &rule.UnhandledErrorRule{}, + // &rule.UnhandledErrorRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (unhandled-error) &rule.CognitiveComplexityRule{}, - &rule.StringOfIntRule{}, + // &rule.StringOfIntRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (string-of-int) &rule.StringFormatRule{}, &rule.EarlyReturnRule{}, &rule.UnconditionalRecursionRule{}, @@ -322,7 +324,7 @@ var allRules = append([]lint.Rule{ &rule.NestedStructs{}, &rule.IfReturnRule{}, &rule.UselessBreak{}, - &rule.TimeEqualRule{}, + // &rule.TimeEqualRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (time-equal) &rule.BannedCharsRule{}, &rule.OptimizeOperandsOrderRule{}, }, defaultRules...) @@ -388,3 +390,33 @@ func defaultConfig() *lint.Config { } return &defaultConfig } + +// TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 +func ignoreRules(conf *lint.Config) { + f := []string{ + "context-keys-type", + "errorf", + "modifies-value-receiver", + "range-val-address", + "string-of-int", + "time-equal", + "time-naming", + "unexported-return", + "unhandled-error", + "var-declaration", + } + + var ignored []string + for _, s := range f { + if _, ok := conf.Rules[s]; ok { + delete(conf.Rules, s) + ignored = append(ignored, s) + } + } + + if len(ignored) > 0 { + linterLogger.Warnf("revive: the following rules (%s) are ignored due to a performance problem "+ + "(https://github.com/golangci/golangci-lint/issues/2997)", + strings.Join(ignored, ",")) + } +} From eddfdbba7c57372f2bdccd90bd4a709c69583f7b Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Thu, 21 Jul 2022 14:57:08 +0300 Subject: [PATCH 091/162] docs: Update documentation and assets (#3000) Co-authored-by: Fernandez Ludovic --- CHANGELOG.md | 5 +++++ README.md | 31 ++++++++++++++++--------------- assets/github-action-config.json | 8 ++++---- docs/template_data.state | 2 +- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 723705db45ea..65efd9e7635d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.47.2 + +1. updated linters: + * `revive`: ignore slow rules + ### v1.47.1 1. updated linters: diff --git a/README.md b/README.md index 9f586f55c7e7..410a03667cf6 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,8 @@ The Core Team has the following responsibilities: - + @@ -111,7 +111,7 @@ The Core Team has the following responsibilities:

Aliaksandr Mianzhynski

Aleksey Bakin

Peter Mescalchin

Aleksey Bakin

Rski

sonatard

Aneesh Agrawal

Chris Drew

Teiva Harsanyi

Brian Flad

Chris Suszynski

Kailun Qin

Ariel Mashraki

Denis Isaev

Tom Payne

Tom Payne

@fsouza

Ryan Olds

Hiroki Suezawa

Fabrice

Christoph Blecker

Mateusz Bilski

Benjamin Wang

Benjamin Wang

Ben Ye

lufe

@sg0hsmt

Stephanie Wilde-Hobbs

Cory LaNou

Sindre Røkenes Myren

Vitaly Isaev

Vitaly Isaev

Pete Wagner

Jakub Chábek

Shulhan

Renato Suero

Ben Wells

Jonathan Chappelow

Brian Flad

Lauris BH

Shintaro Ikeda

Matt Braymer-Hayes

@ttys3

Tomas Dabasinskas

Oscar

Tomas Dabasinskas

@xuri

Charl Matthee

Sriram Venkatesh

Peter Schuller

David Golub

Alexander Morozov

@hbandura

@hbandura

Liam White

Alex Dupre

Juanito

Jinming Yue

@wxdao

Kévin Dunglas

Sijie Yang

Sijie Yang

Stephen

Thang Minh Vu

Julia Ogris

Greg Curtis

@ac-rappi

Dudás Ádám

Abhishek | अभिषेक

Abhishek | अभिषेक

Daniele

Takumasa Sakao

Ben Drucker

Stephen Brown II

Matthew Cobbing

@Darlez

Kirill Danshin

Kirill Danshin

mook

Kyungmin Bae

Dylan Arbour

Cory Miller

@andreykuchin

Irina

Petr Pučil

Petr Pučil

Aaron Bennett

失眠是真滴难受

Daniil Suvorov

Alexandre Vilain

Thirukumaran Vaseeharan

Alessio Treglia

Alay Patel

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

Matias Lahti

Sebastian Crane

Alexander Else

Vlado Pajić

Vlado Pajić

Florian Gessner

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Mateus Esdras

Hilário Coelho

Hilário Coelho

Tibo Delor

Francois Parquet

Robert Kopaczewski

Marc Tudurí

@opennota

Cyrille Meichel

neglect-yp

neglect-yp

Felix

Adrien

Joe Bergevin

Guillaume JG

cnmade

Anirudh Sylendranath

@jumpeiMano

@jumpeiMano

Federico Guerinoni

Alex Rodin

Arjen van der Ende

Oliver Gugger

Devin Gunay

Wei Jian Gan

Tamás Gulácsi

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

@srdhoni

@srdhoni

@derekhuizhang

le0tk0k

Sean Schneeweiss

@connorszczepaniak-wk

pprzekwas

@madflow

Axetroy

Axetroy

Arman Tarkhanian

John Adler

@licraft2019

@mlueckest

Lucas Ramage

@malteehrlen

Thomas Bonfort

@golangaccount

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy

Denis Tingaikin

Sebastien Rosset

@golangci-releaser

Sebastien Rosset

David Lobe

Alexey Palazhchenko

Marat Reymers
-And 319 more our team members +And 320 more our team members @@ -136,8 +136,8 @@ The Core Team has the following responsibilities: - + @@ -209,7 +209,7 @@ The Core Team has the following responsibilities: - + @@ -305,92 +305,92 @@ The Core Team has the following responsibilities: + - - + + - + - + - + - + - + - + - + - + - @@ -524,6 +524,7 @@ The Core Team has the following responsibilities: +

Aliaksandr Mianzhynski

Peter Mescalchin

Aleksey Bakin

Rski

sonatard

Rski

Aneesh Agrawal

Vladimir Evgrafov

Teiva Harsanyi

Brian Flad

Chris Suszynski

Kailun Qin

Kailun Qin

Ariel Mashraki

Denis Isaev

Rafael Franco

@ttys3

Linus Arver

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

sarkar

@xxpxxxxp

subham sarkar

smantic

Ryan Leung

Donal Byrne

Marko

Chris Lewis

David Gleich

David Gleich

Muhammad Ikhsan

Denis Titusov

Terdunov Vyacheslav

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

rinsuki

Anton Antonov

@hn8

Kevin Gillette

Milas Bowman

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Martin Etmajer

Fisher Xu

Matthew Poer

Cody Ley-Han

@pohang

@darklore

@to6ka

@evalexpr

@evalexpr

Collin Kreklow

Marcin Owsiany

C.J. Jameson

Jack

paul fisher

@ofw

Rafik Draoui

Rafik Draoui

Miles Delahunty

Ryo Sato

Eric Zimanyi

Boban Acimovic

Dima

David Hill

Troy Ronda

Troy Ronda

Jared Allard

Osamu TONOMORI

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Roman Leventov

Roman Leventov

Eric Jain

Hugo

Mathias Weber

Naveen

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Chris Nesbitt-Smith

Daniel Caballero

Igor Zibarev

Carlton Henderson

Shintaro Ikeda

Matt Braymer-Hayes

@ttys3

Oscar

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy

Jared Szechy
diff --git a/assets/github-action-config.json b/assets/github-action-config.json index 5e465c555f85..f1f8fa00bc71 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.47.1", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.1/golangci-lint-1.47.1-linux-amd64.tar.gz" + "TargetVersion": "v1.47.2", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.2/golangci-lint-1.47.2-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -155,8 +155,8 @@ "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, "v1.47": { - "TargetVersion": "v1.47.1", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.1/golangci-lint-1.47.1-linux-amd64.tar.gz" + "TargetVersion": "v1.47.2", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.2/golangci-lint-1.47.2-linux-amd64.tar.gz" }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" diff --git a/docs/template_data.state b/docs/template_data.state index 4af4ad53949d..e2892c4f501e 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -ba0e0f68315c94781e4f718e5dbc0fb26ee120d5043191fd242e63bdd0c825ca \ No newline at end of file +a0383a6267cbdc191073668a4e3254db52739a33586dcb5c69588cc8f67b1515 \ No newline at end of file From d44cd49a20bf3ddb0243c38a20480ca0fa0a7883 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 21 Jul 2022 16:52:06 +0200 Subject: [PATCH 092/162] feat: remove some go1.18 limitations (#3001) * fix: restore some linters - govet(nilness,unusedwrite) - bodyclose - contextcheck - nilerr - noctx - tparallel * fix: remove structcheck from the default linters. --- pkg/golinters/govet.go | 5 ----- pkg/lint/lintersdb/manager.go | 19 ++++++------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/pkg/golinters/govet.go b/pkg/golinters/govet.go index 3f005c1d5cc2..4991160a8b3c 100644 --- a/pkg/golinters/govet.go +++ b/pkg/golinters/govet.go @@ -155,11 +155,6 @@ func analyzersFromConfig(settings *config.GovetSettings) []*analysis.Analyzer { } func isAnalyzerEnabled(name string, cfg *config.GovetSettings, defaultAnalyzers []*analysis.Analyzer) bool { - if (name == nilness.Analyzer.Name || name == unusedwrite.Analyzer.Name) && - config.IsGreaterThanOrEqualGo118(cfg.Go) { - return false - } - if cfg.EnableAll { for _, n := range cfg.Disable { if n == name { diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 0d1f37e611a6..048143018dc4 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -288,8 +288,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.18.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/timakin/bodyclose"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/timakin/bodyclose"), linter.NewConfig(golinters.NewContainedCtx()). WithSince("1.44.0"). @@ -300,8 +299,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.43.0"). WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). - WithURL("https://github.com/sylvia7788/contextcheck"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sylvia7788/contextcheck"), linter.NewConfig(golinters.NewCyclop(cyclopCfg)). WithSince("v1.37.0"). @@ -561,8 +559,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithPresets(linter.PresetStyle). WithURL("https://github.com/mvdan/interfacer"). - Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""). - WithNoopFallback(m.cfg), + Deprecated("The repository of the linter has been archived by the owner.", "v1.38.0", ""), linter.NewConfig(golinters.NewIreturn(ireturnCfg)). WithSince("v1.43.0"). @@ -612,8 +609,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.38.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetBugs). - WithURL("https://github.com/gostaticanalysis/nilerr"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/gostaticanalysis/nilerr"), linter.NewConfig(golinters.NewNilNil(nilNilCfg)). WithSince("v1.43.0"). @@ -630,8 +626,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.28.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetPerformance, linter.PresetBugs). - WithURL("https://github.com/sonatard/noctx"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sonatard/noctx"), linter.NewConfig(golinters.NewNoNamedReturns(noNamedReturnsCfg)). WithSince("v1.46.0"). @@ -742,8 +737,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.32.0"). WithPresets(linter.PresetStyle, linter.PresetTest). WithLoadForGoAnalysis(). - WithURL("https://github.com/moricho/tparallel"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/moricho/tparallel"), linter.NewConfig(golinters.NewTypecheck()). WithSince("v1.3.0"). @@ -821,7 +815,6 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { golinters.NewStaticcheck(staticcheckCfg).Name(): true, golinters.NewUnused(unusedCfg).Name(): true, golinters.NewGosimple(gosimpleCfg).Name(): true, - golinters.NewStructcheck(structcheckCfg).Name(): true, golinters.NewVarcheck(varcheckCfg).Name(): true, golinters.NewIneffassign().Name(): true, golinters.NewDeadcode().Name(): true, From 9cb17e4f8f14840d09aed70393ba529b60b83302 Mon Sep 17 00:00:00 2001 From: alingse Date: Fri, 22 Jul 2022 21:40:23 +0800 Subject: [PATCH 093/162] build(deps): bump github.com/alingse/asasalint from 0.0.10 to 0.0.11 (#3003) * upgrade asasalint update default builtin * Update .golangci.reference.yml Co-authored-by: Ludovic Fernandez Co-authored-by: Ludovic Fernandez --- .golangci.reference.yml | 2 +- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 1b35c1017396..dd1459c6b2e5 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -111,7 +111,7 @@ linters-settings: # To specify a set of function names to exclude. # The values are merged with the builtin exclusions. # The builtin exclusions can be disabled by setting `use-builtin-exclusions` to `false`. - # Default: ["^(fmt|log|logger)\.(Print|Fprint|Sprint|Fatal|Panic|Error|Warn|Warning|Info|Debug)(|f|ln)$"] + # Default: ["^(fmt|log|logger|t|)\.(Print|Fprint|Sprint|Fatal|Panic|Error|Warn|Warning|Info|Debug|Log)(|f|ln)$"] exclude: - Append - \.Wrapf diff --git a/go.mod b/go.mod index b3d969ceb4a1..fe5e2c7ffc14 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 github.com/OpenPeeDeeP/depguard v1.1.0 github.com/alexkohler/prealloc v1.0.0 - github.com/alingse/asasalint v0.0.10 + github.com/alingse/asasalint v0.0.11 github.com/ashanbrown/forbidigo v1.3.0 github.com/ashanbrown/makezero v1.1.1 github.com/bkielbasa/cyclop v1.2.0 diff --git a/go.sum b/go.sum index 6d54de0c8765..89b396283887 100644 --- a/go.sum +++ b/go.sum @@ -72,6 +72,8 @@ github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pO github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= github.com/alingse/asasalint v0.0.10 h1:qqGPDTV0ff0tWHN/nnIlSdjlU/EwRPaUY4SfpE1rnms= github.com/alingse/asasalint v0.0.10/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= +github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= From a768760ce72709f2f03dd2a2435c39b1cb1f60dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 23 Jul 2022 01:55:25 +0300 Subject: [PATCH 094/162] dev: clean commands (#3007) Co-authored-by: Fernandez Ludovic --- pkg/commands/cache.go | 46 ++++++++++++++++------------------------- pkg/commands/config.go | 25 ++++++++-------------- pkg/commands/help.go | 28 ++++++++----------------- pkg/commands/linters.go | 22 ++++++++------------ pkg/commands/root.go | 43 +++++++++++++++++++------------------- pkg/commands/run.go | 5 +++-- pkg/commands/version.go | 18 +++++++++------- 7 files changed, 80 insertions(+), 107 deletions(-) diff --git a/pkg/commands/cache.go b/pkg/commands/cache.go index 904c2a1fc5c1..f95fdfaec614 100644 --- a/pkg/commands/cache.go +++ b/pkg/commands/cache.go @@ -8,7 +8,6 @@ import ( "github.com/spf13/cobra" "github.com/golangci/golangci-lint/internal/cache" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/fsutils" "github.com/golangci/golangci-lint/pkg/logutils" ) @@ -17,57 +16,48 @@ func (e *Executor) initCache() { cacheCmd := &cobra.Command{ Use: "cache", Short: "Cache control and information", - Run: func(cmd *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint cache") - } - if err := cmd.Help(); err != nil { - e.log.Fatalf("Can't run cache: %s", err) - } + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, _ []string) error { + return cmd.Help() }, } e.rootCmd.AddCommand(cacheCmd) cacheCmd.AddCommand(&cobra.Command{ - Use: "clean", - Short: "Clean cache", - Run: e.executeCleanCache, + Use: "clean", + Short: "Clean cache", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, + RunE: e.executeCleanCache, }) cacheCmd.AddCommand(&cobra.Command{ - Use: "status", - Short: "Show cache status", - Run: e.executeCacheStatus, + Use: "status", + Short: "Show cache status", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, + Run: e.executeCacheStatus, }) // TODO: add trim command? } -func (e *Executor) executeCleanCache(_ *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint cache clean") - } - +func (e *Executor) executeCleanCache(_ *cobra.Command, _ []string) error { cacheDir := cache.DefaultDir() if err := os.RemoveAll(cacheDir); err != nil { - e.log.Fatalf("Failed to remove dir %s: %s", cacheDir, err) + return fmt.Errorf("failed to remove dir %s: %w", cacheDir, err) } - os.Exit(exitcodes.Success) + return nil } -func (e *Executor) executeCacheStatus(_ *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint cache status") - } - +func (e *Executor) executeCacheStatus(_ *cobra.Command, _ []string) { cacheDir := cache.DefaultDir() fmt.Fprintf(logutils.StdOut, "Dir: %s\n", cacheDir) + cacheSizeBytes, err := dirSizeBytes(cacheDir) if err == nil { fmt.Fprintf(logutils.StdOut, "Size: %s\n", fsutils.PrettifyBytesCount(cacheSizeBytes)) } - - os.Exit(exitcodes.Success) } func dirSizeBytes(path string) (int64, error) { diff --git a/pkg/commands/config.go b/pkg/commands/config.go index e9546d328fa6..a16ef63106c1 100644 --- a/pkg/commands/config.go +++ b/pkg/commands/config.go @@ -15,21 +15,19 @@ func (e *Executor) initConfig() { cmd := &cobra.Command{ Use: "config", Short: "Config", - Run: func(cmd *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint config") - } - if err := cmd.Help(); err != nil { - e.log.Fatalf("Can't run help: %s", err) - } + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, _ []string) error { + return cmd.Help() }, } e.rootCmd.AddCommand(cmd) pathCmd := &cobra.Command{ - Use: "path", - Short: "Print used config path", - Run: e.executePathCmd, + Use: "path", + Short: "Print used config path", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, + Run: e.executePathCmd, } e.initRunConfiguration(pathCmd) // allow --config cmd.AddCommand(pathCmd) @@ -52,11 +50,7 @@ func (e *Executor) getUsedConfig() string { return prettyUsedConfigFile } -func (e *Executor) executePathCmd(_ *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint config path") - } - +func (e *Executor) executePathCmd(_ *cobra.Command, _ []string) { usedConfigFile := e.getUsedConfig() if usedConfigFile == "" { e.log.Warnf("No config file detected") @@ -64,5 +58,4 @@ func (e *Executor) executePathCmd(_ *cobra.Command, args []string) { } fmt.Println(usedConfigFile) - os.Exit(exitcodes.Success) } diff --git a/pkg/commands/help.go b/pkg/commands/help.go index a6ed4c84fe01..61d362e7d2be 100644 --- a/pkg/commands/help.go +++ b/pkg/commands/help.go @@ -2,14 +2,12 @@ package commands import ( "fmt" - "os" "sort" "strings" "github.com/fatih/color" "github.com/spf13/cobra" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/lint/linter" "github.com/golangci/golangci-lint/pkg/logutils" ) @@ -18,21 +16,19 @@ func (e *Executor) initHelp() { helpCmd := &cobra.Command{ Use: "help", Short: "Help", - Run: func(cmd *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint help") - } - if err := cmd.Help(); err != nil { - e.log.Fatalf("Can't run help: %s", err) - } + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, _ []string) error { + return cmd.Help() }, } e.rootCmd.SetHelpCommand(helpCmd) lintersHelpCmd := &cobra.Command{ - Use: "linters", - Short: "Help about linters", - Run: e.executeLintersHelp, + Use: "linters", + Short: "Help about linters", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, + Run: e.executeLintersHelp, } helpCmd.AddCommand(lintersHelpCmd) } @@ -64,11 +60,7 @@ func printLinterConfigs(lcs []*linter.Config) { } } -func (e *Executor) executeLintersHelp(_ *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint help linters") - } - +func (e *Executor) executeLintersHelp(_ *cobra.Command, _ []string) { var enabledLCs, disabledLCs []*linter.Config for _, lc := range e.DBManager.GetAllSupportedLinterConfigs() { if lc.EnabledByDefault { @@ -93,6 +85,4 @@ func (e *Executor) executeLintersHelp(_ *cobra.Command, args []string) { sort.Strings(linterNames) fmt.Fprintf(logutils.StdOut, "%s: %s\n", color.YellowString(p), strings.Join(linterNames, ", ")) } - - os.Exit(exitcodes.Success) } diff --git a/pkg/commands/linters.go b/pkg/commands/linters.go index 63328e4e9494..13bb944d8a2c 100644 --- a/pkg/commands/linters.go +++ b/pkg/commands/linters.go @@ -1,35 +1,31 @@ package commands import ( - "log" - "os" + "fmt" "github.com/fatih/color" "github.com/spf13/cobra" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/lint/linter" ) func (e *Executor) initLinters() { e.lintersCmd = &cobra.Command{ - Use: "linters", - Short: "List current linters configuration", - Run: e.executeLinters, + Use: "linters", + Short: "List current linters configuration", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, + RunE: e.executeLinters, } e.rootCmd.AddCommand(e.lintersCmd) e.initRunConfiguration(e.lintersCmd) } // executeLinters runs the 'linters' CLI command, which displays the supported linters. -func (e *Executor) executeLinters(_ *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint linters") - } - +func (e *Executor) executeLinters(_ *cobra.Command, _ []string) error { enabledLintersMap, err := e.EnabledLintersSet.GetEnabledLintersMap() if err != nil { - log.Fatalf("Can't get enabled linters: %s", err) + return fmt.Errorf("can't get enabled linters: %w", err) } color.Green("Enabled by your configuration linters:\n") @@ -49,5 +45,5 @@ func (e *Executor) executeLinters(_ *cobra.Command, args []string) { color.Red("\nDisabled by your configuration linters:\n") printLinterConfigs(disabledLCs) - os.Exit(exitcodes.Success) + return nil } diff --git a/pkg/commands/root.go b/pkg/commands/root.go index 141fc87f2bfd..8ab119608dc7 100644 --- a/pkg/commands/root.go +++ b/pkg/commands/root.go @@ -12,14 +12,13 @@ import ( "github.com/spf13/pflag" "github.com/golangci/golangci-lint/pkg/config" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/logutils" ) -func (e *Executor) persistentPreRun(_ *cobra.Command, _ []string) { +func (e *Executor) persistentPreRun(_ *cobra.Command, _ []string) error { if e.cfg.Run.PrintVersion { - fmt.Fprintf(logutils.StdOut, "golangci-lint has version %s built from %s on %s\n", e.version, e.commit, e.date) - os.Exit(exitcodes.Success) + _, _ = fmt.Fprintf(logutils.StdOut, "golangci-lint has version %s built from %s on %s\n", e.version, e.commit, e.date) + return nil } runtime.GOMAXPROCS(e.cfg.Run.Concurrency) @@ -27,10 +26,10 @@ func (e *Executor) persistentPreRun(_ *cobra.Command, _ []string) { if e.cfg.Run.CPUProfilePath != "" { f, err := os.Create(e.cfg.Run.CPUProfilePath) if err != nil { - e.log.Fatalf("Can't create file %s: %s", e.cfg.Run.CPUProfilePath, err) + return fmt.Errorf("can't create file %s: %w", e.cfg.Run.CPUProfilePath, err) } if err := pprof.StartCPUProfile(f); err != nil { - e.log.Fatalf("Can't start CPU profiling: %s", err) + return fmt.Errorf("can't start CPU profiling: %w", err) } } @@ -43,22 +42,25 @@ func (e *Executor) persistentPreRun(_ *cobra.Command, _ []string) { if e.cfg.Run.TracePath != "" { f, err := os.Create(e.cfg.Run.TracePath) if err != nil { - e.log.Fatalf("Can't create file %s: %s", e.cfg.Run.TracePath, err) + return fmt.Errorf("can't create file %s: %w", e.cfg.Run.TracePath, err) } if err = trace.Start(f); err != nil { - e.log.Fatalf("Can't start tracing: %s", err) + return fmt.Errorf("can't start tracing: %w", err) } } + + return nil } -func (e *Executor) persistentPostRun(_ *cobra.Command, _ []string) { +func (e *Executor) persistentPostRun(_ *cobra.Command, _ []string) error { if e.cfg.Run.CPUProfilePath != "" { pprof.StopCPUProfile() } + if e.cfg.Run.MemProfilePath != "" { f, err := os.Create(e.cfg.Run.MemProfilePath) if err != nil { - e.log.Fatalf("Can't create file %s: %s", e.cfg.Run.MemProfilePath, err) + return fmt.Errorf("can't create file %s: %w", e.cfg.Run.MemProfilePath, err) } var ms runtime.MemStats @@ -66,15 +68,18 @@ func (e *Executor) persistentPostRun(_ *cobra.Command, _ []string) { printMemStats(&ms, e.log) if err := pprof.WriteHeapProfile(f); err != nil { - e.log.Fatalf("Can't write heap profile: %s", err) + return fmt.Errorf("cCan't write heap profile: %w", err) } - f.Close() + _ = f.Close() } + if e.cfg.Run.TracePath != "" { trace.Stop() } os.Exit(e.exitCode) + + return nil } func printMemStats(ms *runtime.MemStats, logger logutils.Log) { @@ -120,16 +125,12 @@ func (e *Executor) initRoot() { Use: "golangci-lint", Short: "golangci-lint is a smart linters runner.", Long: `Smart, fast linters runner. Run it in cloud for every GitHub pull request on https://golangci.com`, - Run: func(cmd *cobra.Command, args []string) { - if len(args) != 0 { - e.log.Fatalf("Usage: golangci-lint") - } - if err := cmd.Help(); err != nil { - e.log.Fatalf("Can't run help: %s", err) - } + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, _ []string) error { + return cmd.Help() }, - PersistentPreRun: e.persistentPreRun, - PersistentPostRun: e.persistentPostRun, + PersistentPreRunE: e.persistentPreRun, + PersistentPostRunE: e.persistentPostRun, } initRootFlagSet(rootCmd.PersistentFlags(), e.cfg, e.needVersionOption()) diff --git a/pkg/commands/run.go b/pkg/commands/run.go index f4716d184819..c6b729122e27 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -279,10 +279,11 @@ func (e *Executor) initRun() { Use: "run", Short: "Run the linters", Run: e.executeRun, - PreRun: func(_ *cobra.Command, _ []string) { + PreRunE: func(_ *cobra.Command, _ []string) error { if ok := e.acquireFileLock(); !ok { - e.log.Fatalf("Parallel golangci-lint is running") + return fmt.Errorf("parallel golangci-lint is running") } + return nil }, PostRun: func(_ *cobra.Command, _ []string) { e.releaseFileLock() diff --git a/pkg/commands/version.go b/pkg/commands/version.go index 8b48e515bff3..93e4a8ed90ec 100644 --- a/pkg/commands/version.go +++ b/pkg/commands/version.go @@ -3,6 +3,7 @@ package commands import ( "encoding/json" "fmt" + "os" "strings" "github.com/spf13/cobra" @@ -31,27 +32,28 @@ func initVersionFlagSet(fs *pflag.FlagSet, cfg *config.Config) { func (e *Executor) initVersion() { versionCmd := &cobra.Command{ - Use: "version", - Short: "Version", + Use: "version", + Short: "Version", + Args: cobra.NoArgs, + ValidArgsFunction: cobra.NoFileCompletions, RunE: func(cmd *cobra.Command, _ []string) error { switch strings.ToLower(e.cfg.Version.Format) { case "short": fmt.Println(e.version) + return nil + case "json": ver := jsonVersion{ Version: e.version, Commit: e.commit, Date: e.date, } - data, err := json.Marshal(&ver) - if err != nil { - return err - } - fmt.Println(string(data)) + return json.NewEncoder(os.Stdout).Encode(&ver) + default: fmt.Printf("golangci-lint has version %s built from %s on %s\n", e.version, e.commit, e.date) + return nil } - return nil }, } From e55f22c7a5acd44e749317e10a4afae298897fc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 24 Jul 2022 15:21:05 +0300 Subject: [PATCH 095/162] build(deps): bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#3010) Bumps [github.com/sirupsen/logrus](https://github.com/sirupsen/logrus) from 1.8.1 to 1.9.0. - [Release notes](https://github.com/sirupsen/logrus/releases) - [Changelog](https://github.com/sirupsen/logrus/blob/master/CHANGELOG.md) - [Commits](https://github.com/sirupsen/logrus/compare/v1.8.1...v1.9.0) --- updated-dependencies: - dependency-name: github.com/sirupsen/logrus dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[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 fe5e2c7ffc14..b439f507b9f0 100644 --- a/go.mod +++ b/go.mod @@ -77,7 +77,7 @@ require ( github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.6 - github.com/sirupsen/logrus v1.8.1 + github.com/sirupsen/logrus v1.9.0 github.com/sivchari/containedctx v1.0.2 github.com/sivchari/tenv v1.7.0 github.com/sonatard/noctx v0.0.1 @@ -172,7 +172,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220702020025-31831981b65f // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index 89b396283887..67c3c592f998 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,6 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/alingse/asasalint v0.0.10 h1:qqGPDTV0ff0tWHN/nnIlSdjlU/EwRPaUY4SfpE1rnms= -github.com/alingse/asasalint v0.0.10/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= @@ -615,8 +613,8 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx 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.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= github.com/sivchari/nosnakecase v1.5.0 h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M= @@ -957,8 +955,9 @@ golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f h1:xdsejrW/0Wf2diT5CPp3XmKUNbr7Xvw8kYilQ+6qjRY= golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/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= From 72fc41ceb19a36559ea0addb6b222979f79fa411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 24 Jul 2022 15:22:31 +0300 Subject: [PATCH 096/162] build(deps): bump github.com/BurntSushi/toml from 1.1.0 to 1.2.0 (#3009) Bumps [github.com/BurntSushi/toml](https://github.com/BurntSushi/toml) from 1.1.0 to 1.2.0. - [Release notes](https://github.com/BurntSushi/toml/releases) - [Commits](https://github.com/BurntSushi/toml/compare/v1.1.0...v1.2.0) --- updated-dependencies: - dependency-name: github.com/BurntSushi/toml dependency-type: direct:production update-type: version-update:semver-minor ... 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 b439f507b9f0..7743955db6b6 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( 4d63.com/gochecknoglobals v0.1.0 github.com/Antonboom/errname v0.1.7 github.com/Antonboom/nilnil v0.1.1 - github.com/BurntSushi/toml v1.1.0 + github.com/BurntSushi/toml v1.2.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 github.com/OpenPeeDeeP/depguard v1.1.0 diff --git a/go.sum b/go.sum index 67c3c592f998..e68f5bd13d6f 100644 --- a/go.sum +++ b/go.sum @@ -48,8 +48,9 @@ github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0S github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= 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.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= +github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= From c7ed8b67a765509a024cf6e1220c1274688a9901 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 24 Jul 2022 16:21:15 +0300 Subject: [PATCH 097/162] build(deps): bump github.com/sivchari/nosnakecase from 1.5.0 to 1.7.0 (#3008) Bumps [github.com/sivchari/nosnakecase](https://github.com/sivchari/nosnakecase) from 1.5.0 to 1.7.0. - [Release notes](https://github.com/sivchari/nosnakecase/releases) - [Commits](https://github.com/sivchari/nosnakecase/compare/v1.5.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/sivchari/nosnakecase dependency-type: direct:production update-type: version-update:semver-minor ... 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 7743955db6b6..b8a76694618f 100644 --- a/go.mod +++ b/go.mod @@ -156,7 +156,7 @@ require ( github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 // indirect github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/sivchari/nosnakecase v1.5.0 + github.com/sivchari/nosnakecase v1.7.0 github.com/spf13/afero v1.8.2 // 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 e68f5bd13d6f..80931b84c0e2 100644 --- a/go.sum +++ b/go.sum @@ -618,8 +618,8 @@ github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0 github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/nosnakecase v1.5.0 h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M= -github.com/sivchari/nosnakecase v1.5.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= +github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= +github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= From a9dc1ce17821d9802053c9433a35cf0161374c5b Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sun, 24 Jul 2022 19:24:01 +0300 Subject: [PATCH 098/162] dev: change format like function without args (#3012) Co-authored-by: Fernandez Ludovic --- internal/cache/cache.go | 4 +- internal/cache/default.go | 3 +- pkg/commands/run.go | 2 +- pkg/config/linters_settings_gocritic_test.go | 37 +++++++++++-------- pkg/config/reader.go | 6 +-- pkg/golinters/goanalysis/linter.go | 2 +- pkg/lint/lintersdb/validator.go | 7 ++-- .../processors/autogenerated_exclude.go | 3 +- pkg/result/processors/nolint.go | 4 +- scripts/expand_website_templates/main.go | 2 +- test/bench/bench_test.go | 3 +- test/errchk.go | 2 +- test/testdata_etc/abspath/with_issue.go | 2 +- 13 files changed, 42 insertions(+), 35 deletions(-) diff --git a/internal/cache/cache.go b/internal/cache/cache.go index cc6606a39c19..fefb3998bfd0 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -58,7 +58,7 @@ func Open(dir string) (*Cache, error) { return nil, err } if !info.IsDir() { - return nil, &os.PathError{Op: "open", Path: dir, Err: fmt.Errorf("not a directory")} + return nil, &os.PathError{Op: "open", Path: dir, Err: errors.New("not a directory")} } for i := 0; i < 256; i++ { name := filepath.Join(dir, fmt.Sprintf("%02x", i)) @@ -504,7 +504,7 @@ func (c *Cache) copyFile(file io.ReadSeeker, out OutputID, size int64) error { sum := h.Sum(nil) if !bytes.Equal(sum, out[:]) { _ = f.Truncate(0) - return fmt.Errorf("file content changed underfoot") + return errors.New("file content changed underfoot") } // Commit cache file entry. diff --git a/internal/cache/default.go b/internal/cache/default.go index 6695006298aa..4558fb2664a7 100644 --- a/internal/cache/default.go +++ b/internal/cache/default.go @@ -5,6 +5,7 @@ package cache import ( + "errors" "fmt" "log" "os" @@ -69,7 +70,7 @@ func DefaultDir() string { return } if defaultDir != "" { - defaultDirErr = fmt.Errorf("GOLANGCI_LINT_CACHE is not an absolute path") + defaultDirErr = errors.New("GOLANGCI_LINT_CACHE is not an absolute path") return } diff --git a/pkg/commands/run.go b/pkg/commands/run.go index c6b729122e27..9f9d5ea47bb1 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -281,7 +281,7 @@ func (e *Executor) initRun() { Run: e.executeRun, PreRunE: func(_ *cobra.Command, _ []string) error { if ok := e.acquireFileLock(); !ok { - return fmt.Errorf("parallel golangci-lint is running") + return errors.New("parallel golangci-lint is running") } return nil }, diff --git a/pkg/config/linters_settings_gocritic_test.go b/pkg/config/linters_settings_gocritic_test.go index 98ad608e0a87..6b961a7379dd 100644 --- a/pkg/config/linters_settings_gocritic_test.go +++ b/pkg/config/linters_settings_gocritic_test.go @@ -1,7 +1,7 @@ package config import ( - "fmt" + "log" "sort" "testing" @@ -10,45 +10,50 @@ import ( "github.com/golangci/golangci-lint/pkg/logutils" ) -func TestUtils(t *testing.T) { +func Test_intersectStringSlice(t *testing.T) { s1 := []string{"diagnostic", "experimental", "opinionated"} s2 := []string{"opinionated", "experimental"} + s3 := intersectStringSlice(s1, s2) + sort.Strings(s3) + assert.Equal(t, s3, []string{"experimental", "opinionated"}) } +func Test_filterByDisableTags(t *testing.T) { + disabledTags := []string{"experimental", "opinionated"} + enabledChecks := []string{"appendAssign", "sortSlice", "caseOrder", "dupImport"} + + filterEnabledChecks := filterByDisableTags(enabledChecks, disabledTags, &tLog{}) + + sort.Strings(filterEnabledChecks) + + assert.Equal(t, []string{"appendAssign", "caseOrder"}, filterEnabledChecks) +} + type tLog struct{} func (l *tLog) Fatalf(format string, args ...interface{}) { - fmt.Printf(fmt.Sprintf(format, args...) + "\n") + log.Printf(format, args...) } func (l *tLog) Panicf(format string, args ...interface{}) { - fmt.Printf(fmt.Sprintf(format, args...) + "\n") + log.Printf(format, args...) } func (l *tLog) Errorf(format string, args ...interface{}) { - fmt.Printf(fmt.Sprintf(format, args...) + "\n") + log.Printf(format, args...) } func (l *tLog) Warnf(format string, args ...interface{}) { - fmt.Printf(fmt.Sprintf(format, args...) + "\n") + log.Printf(format, args...) } func (l *tLog) Infof(format string, args ...interface{}) { - fmt.Printf(fmt.Sprintf(format, args...) + "\n") + log.Printf(format, args...) } func (l *tLog) Child(name string) logutils.Log { return nil } func (l *tLog) SetLevel(level logutils.LogLevel) {} - -func TestFilterByDisableTags(t *testing.T) { - testLog := &tLog{} - disabledTags := []string{"experimental", "opinionated"} - enabledChecks := []string{"appendAssign", "sortSlice", "caseOrder", "dupImport"} - filterEnabledChecks := filterByDisableTags(enabledChecks, disabledTags, testLog) - sort.Strings(filterEnabledChecks) - assert.Equal(t, []string{"appendAssign", "caseOrder"}, filterEnabledChecks) -} diff --git a/pkg/config/reader.go b/pkg/config/reader.go index c2c73e6f6f08..2dfd3c06c9b0 100644 --- a/pkg/config/reader.go +++ b/pkg/config/reader.go @@ -79,7 +79,7 @@ func (r *FileReader) parseConfig() error { r.log.Infof("Used config file %s", usedConfigFile) usedConfigDir := filepath.Dir(usedConfigFile) if usedConfigDir, err = filepath.Abs(usedConfigDir); err != nil { - return fmt.Errorf("can't get config directory") + return errors.New("can't get config directory") } r.cfg.cfgDir = usedConfigDir @@ -216,7 +216,7 @@ func (r *FileReader) parseConfigOption() (string, error) { configFile := cfg.Run.Config if cfg.Run.NoConfig && configFile != "" { - return "", fmt.Errorf("can't combine option --config and --no-config") + return "", errors.New("can't combine option --config and --no-config") } if cfg.Run.NoConfig { @@ -225,7 +225,7 @@ func (r *FileReader) parseConfigOption() (string, error) { configFile, err := homedir.Expand(configFile) if err != nil { - return "", fmt.Errorf("failed to expand configuration path") + return "", errors.New("failed to expand configuration path") } return configFile, nil diff --git a/pkg/golinters/goanalysis/linter.go b/pkg/golinters/goanalysis/linter.go index eb27130cc9f4..50a4ca088ee9 100644 --- a/pkg/golinters/goanalysis/linter.go +++ b/pkg/golinters/goanalysis/linter.go @@ -108,7 +108,7 @@ func (lnt *Linter) configureAnalyzer(a *analysis.Analyzer, cfg map[string]interf if f == nil { validFlagNames := allFlagNames(&a.Flags) if len(validFlagNames) == 0 { - return fmt.Errorf("analyzer doesn't have settings") + return errors.New("analyzer doesn't have settings") } return fmt.Errorf("analyzer doesn't have setting %q, valid settings: %v", diff --git a/pkg/lint/lintersdb/validator.go b/pkg/lint/lintersdb/validator.go index 2f00351857a0..52a70d85900d 100644 --- a/pkg/lint/lintersdb/validator.go +++ b/pkg/lint/lintersdb/validator.go @@ -1,6 +1,7 @@ package lintersdb import ( + "errors" "fmt" "strings" @@ -47,7 +48,7 @@ func (v Validator) validatePresets(cfg *config.Linters) error { } if len(cfg.Presets) != 0 && cfg.EnableAll { - return fmt.Errorf("--presets is incompatible with --enable-all") + return errors.New("--presets is incompatible with --enable-all") } return nil @@ -55,12 +56,12 @@ func (v Validator) validatePresets(cfg *config.Linters) error { func (v Validator) validateAllDisableEnableOptions(cfg *config.Linters) error { if cfg.EnableAll && cfg.DisableAll { - return fmt.Errorf("--enable-all and --disable-all options must not be combined") + return errors.New("--enable-all and --disable-all options must not be combined") } if cfg.DisableAll { if len(cfg.Enable) == 0 && len(cfg.Presets) == 0 { - return fmt.Errorf("all linters were disabled, but no one linter was enabled: must enable at least one") + return errors.New("all linters were disabled, but no one linter was enabled: must enable at least one") } if len(cfg.Disable) != 0 { diff --git a/pkg/result/processors/autogenerated_exclude.go b/pkg/result/processors/autogenerated_exclude.go index 57388f64fa48..a11b68f77c94 100644 --- a/pkg/result/processors/autogenerated_exclude.go +++ b/pkg/result/processors/autogenerated_exclude.go @@ -1,7 +1,6 @@ package processors import ( - "fmt" "go/parser" "go/token" "path/filepath" @@ -103,7 +102,7 @@ func (p *AutogeneratedExclude) getOrCreateFileSummary(i *result.Issue) (*ageFile p.fileSummaryCache[i.FilePath()] = fs if i.FilePath() == "" { - return nil, fmt.Errorf("no file path for issue") + return nil, errors.New("no file path for issue") } doc, err := getDoc(i.FilePath()) diff --git a/pkg/result/processors/nolint.go b/pkg/result/processors/nolint.go index 01f597e94d5b..43115b9cf2a0 100644 --- a/pkg/result/processors/nolint.go +++ b/pkg/result/processors/nolint.go @@ -1,7 +1,7 @@ package processors import ( - "fmt" + "errors" "go/ast" "go/parser" "go/token" @@ -105,7 +105,7 @@ func (p *Nolint) getOrCreateFileData(i *result.Issue) (*fileData, error) { p.cache[i.FilePath()] = fd if i.FilePath() == "" { - return nil, fmt.Errorf("no file path for issue") + return nil, errors.New("no file path for issue") } // TODO: migrate this parsing to go/analysis facts diff --git a/scripts/expand_website_templates/main.go b/scripts/expand_website_templates/main.go index 4e8e2dcc3f21..3b78bbdefd65 100644 --- a/scripts/expand_website_templates/main.go +++ b/scripts/expand_website_templates/main.go @@ -50,7 +50,7 @@ func main() { if err := rewriteDocs(replacements); err != nil { log.Fatalf("Failed to rewrite docs: %s", err) } - log.Printf("Successfully expanded templates") + log.Print("Successfully expanded templates") } func updateStateFile(replacements map[string]string) error { diff --git a/test/bench/bench_test.go b/test/bench/bench_test.go index 4b43ff89b31a..a6e83212bb93 100644 --- a/test/bench/bench_test.go +++ b/test/bench/bench_test.go @@ -2,6 +2,7 @@ package bench import ( "bytes" + "errors" "fmt" "go/build" "log" @@ -123,7 +124,7 @@ func getLinterMemoryMB(b *testing.B, progName string) (int, error) { } } if progPID == 0 { - return 0, fmt.Errorf("no process") + return 0, errors.New("no process") } allProgPIDs := []int{progPID} diff --git a/test/errchk.go b/test/errchk.go index d94a055b40ec..76bb96ce1112 100644 --- a/test/errchk.go +++ b/test/errchk.go @@ -96,7 +96,7 @@ func errorCheck(outStr string, wantAuto bool, defaultWantedLinter string, fullsh } if len(out) > 0 { - errs = append(errs, fmt.Errorf("unmatched errors")) + errs = append(errs, errors.New("unmatched errors")) for _, errLine := range out { errs = append(errs, fmt.Errorf("%s", errLine)) } diff --git a/test/testdata_etc/abspath/with_issue.go b/test/testdata_etc/abspath/with_issue.go index e68f3ab0bcda..4ca09a58321f 100644 --- a/test/testdata_etc/abspath/with_issue.go +++ b/test/testdata_etc/abspath/with_issue.go @@ -6,6 +6,6 @@ func f() { if true { return } else { - fmt.Printf("") + fmt.Print("") } } From d03608f452ce96ebec880e6b7145a1652974b95e Mon Sep 17 00:00:00 2001 From: Yilong Li Date: Mon, 25 Jul 2022 18:21:36 +0800 Subject: [PATCH 099/162] doc: add Bytebase info the trusted-by page (#3013) --- docs/src/docs/product/trusted-by.mdx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/src/docs/product/trusted-by.mdx b/docs/src/docs/product/trusted-by.mdx index c3b3268ec6cc..2574591ee379 100644 --- a/docs/src/docs/product/trusted-by.mdx +++ b/docs/src/docs/product/trusted-by.mdx @@ -4,20 +4,21 @@ title: Trusted By The following companies/products use `golangci-lint`: -- [AWS](https://github.com/aws/aws-xray-sdk-go) -- [Facebook](https://github.com/facebookincubator/fbender) -- [Google](https://github.com/GoogleContainerTools/skaffold) -- [Netflix](https://github.com/Netflix/titus-executor) - [Arduino](https://github.com/arduino/arduino-cli) +- [AWS](https://github.com/aws/aws-xray-sdk-go) - [Baidu](https://github.com/baidu/bfe) +- [Bytebase](https://github.com/bytebase/bytebase) - [Eclipse Foundation](https://github.com/eclipse/che-go-jsonrpc) +- [Facebook](https://github.com/facebookincubator/fbender) +- [Google](https://github.com/GoogleContainerTools/skaffold) - [IBM](https://github.com/ibm-developer/ibm-cloud-env-golang) - [Istio](https://github.com/istio/istio) +- [Netflix](https://github.com/Netflix/titus-executor) - [Percona](https://github.com/percona/pmm-managed) - [Red Hat OpenShift](https://github.com/openshift/telemeter) - [Samsung](https://github.com/samsung-cnct/cluster-api-provider-ssh) -- [Serverless](https://github.com/serverless/event-gateway) - [ScyllaDB](https://github.com/scylladb/gocqlx) +- [Serverless](https://github.com/serverless/event-gateway) - [SoundCloud](https://github.com/soundcloud/periskop) - [The New York Times](https://github.com/NYTimes/encoding-wrapper) - [WooCart](https://github.com/woocart/gsutil) From 886fbd71a864ef8943f51dd911b8d1e57dd26545 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Wed, 27 Jul 2022 09:14:33 +0200 Subject: [PATCH 100/162] gci: fix panic with invalid configuration option (#3019) --- pkg/golinters/gci.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index 0b086c88dc46..82eba2ff0ef6 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -46,7 +46,11 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter { rawCfg.SectionStrings = prefix } - cfg, _ = rawCfg.Parse() + var err error + cfg, err = rawCfg.Parse() + if err != nil { + linterLogger.Fatalf("gci: configuration parsing: %v", err) + } } var lock sync.Mutex From 846fab81b93caec135e8642be782bdaffe8fe2db Mon Sep 17 00:00:00 2001 From: Sven Anderson Date: Sat, 30 Jul 2022 22:26:33 +0200 Subject: [PATCH 101/162] cgo: fix linters ignoring Cgo files (#3025) --- pkg/golinters/dupl.go | 6 +----- pkg/golinters/gci.go | 6 +----- pkg/golinters/gofmt.go | 6 +----- pkg/golinters/gofumpt.go | 6 +----- pkg/golinters/goimports.go | 6 +----- pkg/golinters/gomodguard.go | 7 +------ pkg/golinters/lll.go | 6 +----- pkg/golinters/misspell.go | 7 +------ pkg/golinters/revive.go | 6 +----- pkg/golinters/util.go | 17 +++++++++++++++++ pkg/golinters/wsl.go | 6 +----- test/run_test.go | 8 ++++++-- test/testdata/cgo_with_issues/main.go | 12 ++++++++++++ 13 files changed, 45 insertions(+), 54 deletions(-) diff --git a/pkg/golinters/dupl.go b/pkg/golinters/dupl.go index 8c8d8fe4f310..fe7b12773542 100644 --- a/pkg/golinters/dupl.go +++ b/pkg/golinters/dupl.go @@ -55,11 +55,7 @@ func NewDupl(settings *config.DuplSettings) *goanalysis.Linter { } func runDupl(pass *analysis.Pass, settings *config.DuplSettings) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) issues, err := duplAPI.Run(fileNames, settings.Threshold) if err != nil { diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index 82eba2ff0ef6..0f719513d794 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -83,11 +83,7 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter { } func runGci(pass *analysis.Pass, lintCtx *linter.Context, cfg *gcicfg.Config, lock *sync.Mutex) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) var diffs []string err := diffFormattedFilesToArray(fileNames, *cfg, &diffs, lock) diff --git a/pkg/golinters/gofmt.go b/pkg/golinters/gofmt.go index 1d50bfc55be9..e8c02411c389 100644 --- a/pkg/golinters/gofmt.go +++ b/pkg/golinters/gofmt.go @@ -53,11 +53,7 @@ func NewGofmt(settings *config.GoFmtSettings) *goanalysis.Linter { } func runGofmt(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoFmtSettings) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) var issues []goanalysis.Issue diff --git a/pkg/golinters/gofumpt.go b/pkg/golinters/gofumpt.go index 60d97b944b08..312dfd6d93ba 100644 --- a/pkg/golinters/gofumpt.go +++ b/pkg/golinters/gofumpt.go @@ -73,11 +73,7 @@ func NewGofumpt(settings *config.GofumptSettings) *goanalysis.Linter { } func runGofumpt(lintCtx *linter.Context, pass *analysis.Pass, diff differ, options format.Options) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) var issues []goanalysis.Issue diff --git a/pkg/golinters/goimports.go b/pkg/golinters/goimports.go index e59ee3dd5bad..42aa69b41819 100644 --- a/pkg/golinters/goimports.go +++ b/pkg/golinters/goimports.go @@ -55,11 +55,7 @@ func NewGoimports(settings *config.GoImportsSettings) *goanalysis.Linter { } func runGoiImports(lintCtx *linter.Context, pass *analysis.Pass) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) var issues []goanalysis.Issue diff --git a/pkg/golinters/gomodguard.go b/pkg/golinters/gomodguard.go index 76dd67012b56..e21658d5d2a3 100644 --- a/pkg/golinters/gomodguard.go +++ b/pkg/golinters/gomodguard.go @@ -73,12 +73,7 @@ func NewGomodguard(settings *config.GoModGuardSettings) *goanalysis.Linter { } analyzer.Run = func(pass *analysis.Pass) (interface{}, error) { - var files []string - for _, file := range pass.Files { - files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) - } - - gomodguardIssues := processor.ProcessFiles(files) + gomodguardIssues := processor.ProcessFiles(getFileNames(pass)) mu.Lock() defer mu.Unlock() diff --git a/pkg/golinters/lll.go b/pkg/golinters/lll.go index 65d4c15a3784..25b767a0b58a 100644 --- a/pkg/golinters/lll.go +++ b/pkg/golinters/lll.go @@ -56,11 +56,7 @@ func NewLLL(settings *config.LllSettings) *goanalysis.Linter { } func runLll(pass *analysis.Pass, settings *config.LllSettings) ([]goanalysis.Issue, error) { - var fileNames []string - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) spaces := strings.Repeat(" ", settings.TabWidth) diff --git a/pkg/golinters/misspell.go b/pkg/golinters/misspell.go index 47eb7a7b924f..b5cc5c8a89d4 100644 --- a/pkg/golinters/misspell.go +++ b/pkg/golinters/misspell.go @@ -61,12 +61,7 @@ func NewMisspell(settings *config.MisspellSettings) *goanalysis.Linter { } func runMisspell(lintCtx *linter.Context, pass *analysis.Pass, replacer *misspell.Replacer) ([]goanalysis.Issue, error) { - var fileNames []string - - for _, f := range pass.Files { - pos := pass.Fset.PositionFor(f.Pos(), false) - fileNames = append(fileNames, pos.Filename) - } + fileNames := getFileNames(pass) var issues []goanalysis.Issue for _, filename := range fileNames { diff --git a/pkg/golinters/revive.go b/pkg/golinters/revive.go index 0e150720c50c..906e1c3ef44d 100644 --- a/pkg/golinters/revive.go +++ b/pkg/golinters/revive.go @@ -75,11 +75,7 @@ func NewRevive(settings *config.ReviveSettings) *goanalysis.Linter { } func runRevive(lintCtx *linter.Context, pass *analysis.Pass, settings *config.ReviveSettings) ([]goanalysis.Issue, error) { - var files []string - for _, file := range pass.Files { - files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) - } - packages := [][]string{files} + packages := [][]string{getFileNames(pass)} conf, err := getReviveConfig(settings) if err != nil { diff --git a/pkg/golinters/util.go b/pkg/golinters/util.go index 1940f30e3ffd..1044567a951b 100644 --- a/pkg/golinters/util.go +++ b/pkg/golinters/util.go @@ -2,8 +2,11 @@ package golinters import ( "fmt" + "path/filepath" "strings" + "golang.org/x/tools/go/analysis" + "github.com/golangci/golangci-lint/pkg/config" ) @@ -22,3 +25,17 @@ func formatCodeBlock(code string, _ *config.Config) string { return fmt.Sprintf("```\n%s\n```", code) } + +func getFileNames(pass *analysis.Pass) []string { + var fileNames []string + for _, f := range pass.Files { + fileName := pass.Fset.PositionFor(f.Pos(), true).Filename + ext := filepath.Ext(fileName) + if ext != "" && ext != ".go" { + // position has been adjusted to a non-go file, revert to original file + fileName = pass.Fset.PositionFor(f.Pos(), false).Filename + } + fileNames = append(fileNames, fileName) + } + return fileNames +} diff --git a/pkg/golinters/wsl.go b/pkg/golinters/wsl.go index 0b10798eb629..9d7060b0b3d6 100644 --- a/pkg/golinters/wsl.go +++ b/pkg/golinters/wsl.go @@ -67,15 +67,11 @@ func NewWSL(settings *config.WSLSettings) *goanalysis.Linter { } func runWSL(pass *analysis.Pass, conf *wsl.Configuration) []goanalysis.Issue { - var files = make([]string, 0, len(pass.Files)) - for _, file := range pass.Files { - files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) - } - if conf == nil { return nil } + files := getFileNames(pass) wslErrors, _ := wsl.NewProcessorWithConfig(*conf).ProcessFiles(files) if len(wslErrors) == 0 { return nil diff --git a/test/run_test.go b/test/run_test.go index 254f659787b9..cf1f55496912 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -95,7 +95,7 @@ func TestTestsAreLintedByDefault(t *testing.T) { } func TestCgoOk(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--enable-all", "-D", "nosnakecase", getTestDataDir("cgo")).ExpectNoIssues() + testshared.NewLintRunner(t).Run("--no-config", "--enable-all", "-D", "nosnakecase,gci", getTestDataDir("cgo")).ExpectNoIssues() } func TestCgoWithIssues(t *testing.T) { @@ -104,6 +104,10 @@ func TestCgoWithIssues(t *testing.T) { ExpectHasIssue("Printf format %t has arg cs of wrong type") r.Run("--no-config", "--disable-all", "-Estaticcheck", getTestDataDir("cgo_with_issues")). ExpectHasIssue("SA5009: Printf format %t has arg #1 of wrong type") + r.Run("--no-config", "--disable-all", "-Egofmt", getTestDataDir("cgo_with_issues")). + ExpectHasIssue("File is not `gofmt`-ed with `-s` (gofmt)") + r.Run("--no-config", "--disable-all", "-Erevive", getTestDataDir("cgo_with_issues")). + ExpectHasIssue("indent-error-flow: if block ends with a return statement") } func TestUnsafeOk(t *testing.T) { @@ -127,7 +131,7 @@ func TestLineDirectiveProcessedFilesLiteLoading(t *testing.T) { } func TestSortedResults(t *testing.T) { - var testCases = []struct { + testCases := []struct { opt string want string }{ diff --git a/test/testdata/cgo_with_issues/main.go b/test/testdata/cgo_with_issues/main.go index 6eab19a25e18..3e880bf5ce56 100644 --- a/test/testdata/cgo_with_issues/main.go +++ b/test/testdata/cgo_with_issues/main.go @@ -21,3 +21,15 @@ func Example() { fmt.Printf("bad format %t", cs) C.free(unsafe.Pointer(cs)) } + +func notFormattedForGofmt() { +} + +func errorForRevive(p *int) error { + if p == nil { + return nil + } else { + return nil + } +} + From cee90e3a4012627761b282fad489075cb2f8cd53 Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Sun, 31 Jul 2022 05:00:49 +0300 Subject: [PATCH 102/162] docs: fix broken license link (#3028) --- docs/src/docs/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/docs/index.mdx b/docs/src/docs/index.mdx index 4f3142db483c..537e1e87c4a9 100644 --- a/docs/src/docs/index.mdx +++ b/docs/src/docs/index.mdx @@ -6,7 +6,7 @@ import { FaTwitter, FaSlack } from "react-icons/fa"; import { IconContainer } from "lib/icons"; ![Build Status](https://github.com/golangci/golangci-lint/workflows/CI/badge.svg) -[![License](https://img.shields.io/github/license/golangci/golangci-lint)](/LICENSE) +[![License](https://img.shields.io/github/license/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/blob/master/LICENSE) [![Release](https://img.shields.io/github/release/golangci/golangci-lint.svg)](https://github.com/golangci/golangci-lint/releases/latest) [![Docker](https://img.shields.io/docker/pulls/golangci/golangci-lint)](https://hub.docker.com/r/golangci/golangci-lint) [![GitHub Releases Stats of golangci-lint](https://img.shields.io/github/downloads/golangci/golangci-lint/total.svg?logo=github)](https://somsubhra.github.io/github-release-stats/?username=golangci&repository=golangci-lint) From 03d9b11369c71b7315a3ee1e1fb01046e73149fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 Jul 2022 15:50:54 +0200 Subject: [PATCH 103/162] build(deps): bump github.com/ryancurrah/gomodguard from 1.2.3 to 1.2.4 (#3029) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b8a76694618f..ec0fddd66343 100644 --- a/go.mod +++ b/go.mod @@ -71,7 +71,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/polyfloyd/go-errorlint v1.0.0 github.com/quasilyte/go-ruleguard/dsl v0.3.21 - github.com/ryancurrah/gomodguard v1.2.3 + github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 github.com/securego/gosec/v2 v2.12.0 diff --git a/go.sum b/go.sum index 80931b84c0e2..c3ae002dccda 100644 --- a/go.sum +++ b/go.sum @@ -594,8 +594,8 @@ github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= 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/ryancurrah/gomodguard v1.2.3 h1:ww2fsjqocGCAFamzvv/b8IsRduuHHeK2MHTcTxZTQX8= -github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= +github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= +github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= From 2ab46788e6e3788f1cdd18489bcf89b972dedea2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 Jul 2022 16:05:32 +0200 Subject: [PATCH 104/162] build(deps): bump github.com/daixiang0/gci from 0.4.3 to 0.5.0 (#3031) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 4 +++- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index dd1459c6b2e5..bff571126a43 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -359,13 +359,15 @@ linters-settings: # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). - # The order of sections is always `standard > default > custom`, + # The order of sections is always `standard > default > custom > blank > dot`, # it cannot be changed and doesn't follow the order of `sections` option. # Default: ["standard", "default"] sections: - standard # Standard section: captures all standard packages. - default # Default section: contains all imports that could not be matched to another section type. - prefix(github.com/org/project) # Custom section: groups all imports with the specified Prefix. + - blank # Blank section: contains all blank imports. This section is not present unless explicitly enabled. + - dot # Dot section: contains all dot imports. This section is not present unless explicitly enabled. # Skip generated files. # Default: true diff --git a/go.mod b/go.mod index ec0fddd66343..0b818aeb6291 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.4.3 + github.com/daixiang0/gci v0.5.0 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index c3ae002dccda..7d42f151dad3 100644 --- a/go.sum +++ b/go.sum @@ -132,8 +132,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.4.3 h1:wf7x0xRjQqTlA2dzHTI0A/xPyp7VcBatBG9nwGatwbQ= -github.com/daixiang0/gci v0.4.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.5.0 h1:3+Z8nb/4dhJQYjpEbG4wt5na+KFJJTZ++PVEq/MVKX4= +github.com/daixiang0/gci v0.5.0/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= From 95d57d994be92b26e3095e1a9f035a1861ff1b87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 Jul 2022 16:06:27 +0200 Subject: [PATCH 105/162] build(deps): bump gitlab.com/bosi/decorder from 0.2.2 to 0.2.3 (#3033) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0b818aeb6291..c5c809c9dd55 100644 --- a/go.mod +++ b/go.mod @@ -100,7 +100,7 @@ require ( github.com/valyala/quicktemplate v1.7.0 github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 - gitlab.com/bosi/decorder v0.2.2 + gitlab.com/bosi/decorder v0.2.3 golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 diff --git a/go.sum b/go.sum index 7d42f151dad3..647875b0ada0 100644 --- a/go.sum +++ b/go.sum @@ -728,8 +728,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -gitlab.com/bosi/decorder v0.2.2 h1:LRfb3lP6mZWjUzpMOCLTVjcnl/SqZWBWmKNqQvMocQs= -gitlab.com/bosi/decorder v0.2.2/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= +gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= +gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= From 57d61afb82ff0e9e1ac4b5e0c1c6886706167ae9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 Jul 2022 16:25:30 +0200 Subject: [PATCH 106/162] build(deps): bump github.com/GaijinEntertainment/go-exhaustruct/v2 from 2.2.0 to 2.2.2 (#3030) Co-authored-by: Fernandez Ludovic --- go.mod | 8 ++++---- go.sum | 16 +++++++++------- test/testdata/govet.go | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index c5c809c9dd55..6ede7e0d022c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Antonboom/nilnil v0.1.1 github.com/BurntSushi/toml v1.2.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 - github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 + github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 github.com/OpenPeeDeeP/depguard v1.1.0 github.com/alexkohler/prealloc v1.0.0 github.com/alingse/asasalint v0.0.11 @@ -101,7 +101,7 @@ require ( github.com/yagipy/maintidx v1.0.0 github.com/yeya24/promlinter v0.2.0 gitlab.com/bosi/decorder v0.2.3 - golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1 + golang.org/x/tools v0.1.12 gopkg.in/yaml.v3 v3.0.1 honnef.co/go/tools v0.3.2 mvdan.cc/gofumpt v0.3.1 @@ -171,8 +171,8 @@ require ( go.uber.org/zap v1.17.0 // indirect golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect + golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index 647875b0ada0..041745bff461 100644 --- a/go.sum +++ b/go.sum @@ -54,8 +54,8 @@ github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 h1:V9xVvhKbLt7unNEGAruK1xXglyc668Pq3Xx0MNTNqpo= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0/go.mod h1:n/vLeA7V+QY84iYAGwMkkUUp9ooeuftMEvaDrSVch+Q= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 h1:DGdS4FlsdM6OkluXOhgkvwx05ZjD3Idm9WqtYnOmSuY= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2/go.mod h1:xj0D2jwLdp6tOKLheyZCsfL0nz8DaicmJxSwj3VcHtY= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -859,7 +859,7 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/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-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= 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= @@ -881,8 +881,9 @@ 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-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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= @@ -957,8 +958,9 @@ golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/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= @@ -1065,8 +1067,8 @@ golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlz golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= -golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1 h1:NHLFZ56qCjD+0hYY3kE5Wl40Z7q4Gn9Ln/7YU0lsGko= -golang.org/x/tools v0.1.12-0.20220628192153-7743d1d949f1/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 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= diff --git a/test/testdata/govet.go b/test/testdata/govet.go index 05f2777a9e39..5d0b8f81e26d 100644 --- a/test/testdata/govet.go +++ b/test/testdata/govet.go @@ -9,7 +9,7 @@ import ( ) func GovetComposites() error { - return &os.PathError{"first", "path", os.ErrNotExist} // ERROR "composites: \\`(os|io/fs)\\.PathError\\` composite literal uses unkeyed fields" + return &os.PathError{"first", "path", os.ErrNotExist} // ERROR "composites: io/fs\\.PathError struct literal uses unkeyed fields" } func GovetShadow(f io.Reader, buf []byte) (err error) { From d186efe918b91431b6d615d7968eb14ba7c6614a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 Jul 2022 16:37:32 +0200 Subject: [PATCH 107/162] build(deps): bump honnef.co/go/tools from 0.3.2 to 0.3.3 (#3032) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6ede7e0d022c..9b94befa14cb 100644 --- a/go.mod +++ b/go.mod @@ -103,7 +103,7 @@ require ( gitlab.com/bosi/decorder v0.2.3 golang.org/x/tools v0.1.12 gopkg.in/yaml.v3 v3.0.1 - honnef.co/go/tools v0.3.2 + honnef.co/go/tools v0.3.3 mvdan.cc/gofumpt v0.3.1 mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 diff --git a/go.sum b/go.sum index 041745bff461..e5ea9aea54ce 100644 --- a/go.sum +++ b/go.sum @@ -1215,8 +1215,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh 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= -honnef.co/go/tools v0.3.2 h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34= -honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= +honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= mvdan.cc/gofumpt v0.3.1 h1:avhhrOmv0IuvQVK7fvwV91oFSGAk5/6Po8GXTzICeu8= mvdan.cc/gofumpt v0.3.1/go.mod h1:w3ymliuxvzVx8DAutBnVyDqYb1Niy/yCJt/lk821YCE= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= From 39fc81c19c295922b8dc5143aeec0b0706f02a63 Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Mon, 1 Aug 2022 15:20:30 +0300 Subject: [PATCH 108/162] docs: Update documentation and assets (#3036) Co-authored-by: Fernandez Ludovic --- CHANGELOG.md | 15 +++ README.md | 165 ++++++++++++++++--------------- assets/github-action-config.json | 8 +- docs/template_data.state | 2 +- 4 files changed, 105 insertions(+), 85 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65efd9e7635d..ec8163512758 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.47.3 + +1. updated linters: + * remove some go1.18 limitations + * `asasalint`: from 0.0.10 to 0.0.11 + * `decorder`: from 0.2.2 to v0.2.3 + * `gci`: fix panic with invalid configuration option + * `gci`: from 0.4.3 to v0.5.0 + * `go-exhaustruct`: from 2.2.0 to 2.2.2 + * `gomodguard`: from 1.2.3 to 1.2.4 + * `nosnakecase`: from 1.5.0 to 1.7.0 + * `honnef.co/go/tools`: from 0.3.2 to v0.3.3 +2. misc + * cgo: fix linters ignoring CGo files + ### v1.47.2 1. updated linters: diff --git a/README.md b/README.md index 410a03667cf6..f4537157da32 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ The Core Team has the following responsibilities:
Trevor Pounds

Simon Sawert

Loong Dai
-
Oleg Butuzov

Kamil Samigullin
+
Oleg Butuzov

Sascha Grunert
@@ -79,29 +79,29 @@ The Core Team has the following responsibilities:
sivchari

Ryan Currah

Pierre Durand
-
Denis Tingaikin
+
@golangci-releaser
-
@golangci-releaser
+
Denis Tingaikin

Sebastien Rosset
+
Sasha Melentyev
+
Marat Reymers

David Lobe

Alexey Palazhchenko
-
Marat Reymers

Duco van Amstel
-
Nishanth Shanmugham
+
Nishanth Shanmugham

Kensei Nakada

Melvin

Denis Krivak

Iskander (Alex) Sharipov

Steve Coffman

Maik Schreiber
-
Matouš Dzivjak
+
Matouš Dzivjak

Alec Thomas
-
Sasha Melentyev

Mateusz Gozdek

Will Dixon

Anton Telyshev
@@ -111,7 +111,7 @@ The Core Team has the following responsibilities:
-And 320 more our team members +And 323 more our team members @@ -121,59 +121,59 @@ The Core Team has the following responsibilities: - + + - + + + + + - - - - - + + - - + - + - @@ -232,9 +232,9 @@ The Core Team has the following responsibilities: + - @@ -255,275 +255,280 @@ The Core Team has the following responsibilities: + - + - + - + - + - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + + + + - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + +

Lucas Bremgartner

Mitsuo Heijo

Tim Heckman

James

@alingse

James

Colin Arnott

Luke Shumaker

Márk Sági-Kazár

Kir Kolyshkin

Ryan Boehning

@alingse

Gustavo Bazan

Aliaksandr Mianzhynski

Peter Mescalchin

Aleksey Bakin

Eugene Simonov

Ville Skyttä

Anton Zinovyev

sonatard

Rski

Aneesh Agrawal

Vladimir Evgrafov

ZhangYunHao

Anton Zinovyev

gaojingyu

@odidev

NiseVoid

Christian Mehlmauer

Sean DuBois

Christian Mehlmauer

Sean DuBois

Viktoras

Florian Bosdorff

Agniva De Sarker

Eugene Simonov

SystemGlitch

Henrik Johansson

Tom Arrell

Tom Arrell

John Starich

Koichi Shiraishi

Bart

Neha Viswanathan

Oleksandr Redko

David Braley

Chris Bandy

Chris Bandy

Patrick Kuca

Viacheslav Poturaev

Lukas Malkmus

Nate Finch

Ville Skyttä

Zik

Robert Liebowitz

Sindre Røkenes Myren

Jakub Chábek

Vitaly Isaev

Pete Wagner

Jakub Chábek

Shulhan

Renato Suero

Ben Wells

Sonia Hamilton

Berezhnoy Pavel

Henry

Sven Anderson

Aofei Sheng

Maksym Pavlenko

Maksym Pavlenko

Ivan

@ngehrsitz

John Reese

James Lucktaylor

Dale Hui

Ondrej Fabry

Kishan B

Kishan B

proton

Ghvst Code

Son Luong Ngoc

Markus

Sebastian Spaink

Andrew Lavery

Tariq Ibrahim

Tariq Ibrahim

Peter Štibraný

kaixiang zhong

@ced42

David Bariod

Stephen Benjamin

Yuki Okushi

Eldar Rakhimberdin

Eldar Rakhimberdin

Toon Schoenmakers

Cezar Sá Espinola

Ben Paxton

Connor Adams

Draven

David Cuadrado

Martins Irbe

Eric Jain

David Cuadrado

Martins Irbe

Craig Furman

Yilong Li

Rodrigo Brito

@techknowlogick

takaya

Mark Sart

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

@ttys3

Linus Arver

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

subham sarkar

smantic

Ryan Leung

Donal Byrne

Marko

Chris Lewis

David Gleich

Muhammad Ikhsan

Denis Titusov

Terdunov Vyacheslav

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

Anton Antonov

@hn8

Kevin Gillette

Milas Bowman

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Fisher Xu

Matthew Poer

Cody Ley-Han

@pohang

@darklore

@to6ka

@evalexpr

Collin Kreklow

Marcin Owsiany

C.J. Jameson

Jack

paul fisher

@ofw

Rafik Draoui

Miles Delahunty

Ryo Sato

Eric Zimanyi

Boban Acimovic

Dima

David Hill

Troy Ronda

Jared Allard

Osamu TONOMORI

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Roman Leventov

Eric Jain

Hugo

Mathias Weber

Naveen

Michael

Evgeniy Kulikov

Florian Gessner

Oscar

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Daniel Caballero

Igor Zibarev

Carlton Henderson

Shintaro Ikeda

Matt Braymer-Hayes

Oscar

Tomas Dabasinskas

@xuri

Charl Matthee

Sriram Venkatesh

Peter Schuller

David Golub

Alexander Morozov

@hbandura

Liam White

Alex Dupre

Juanito

Jinming Yue

@wxdao

Kévin Dunglas

Sijie Yang

Stephen

Thang Minh Vu

Julia Ogris

Greg Curtis

@ac-rappi

Dudás Ádám

Abhishek | अभिषेक

Daniele

Takumasa Sakao

Ben Drucker

Stephen Brown II

Matthew Cobbing

@Darlez

Kirill Danshin

mook

Kyungmin Bae

Dylan Arbour

Cory Miller

@andreykuchin

Irina

Petr Pučil

Aaron Bennett

失眠是真滴难受

Daniil Suvorov

Alexandre Vilain

Thirukumaran Vaseeharan

Alessio Treglia

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

Matias Lahti

Sebastian Crane

Alexander Else

Vlado Pajić

Florian Gessner

Fata Nugraha

Christian Clauss

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Mateus Esdras

Hilário Coelho

Tibo Delor

Francois Parquet

Robert Kopaczewski

Marc Tudurí

@opennota

Cyrille Meichel

neglect-yp

Felix

Adrien

Joe Bergevin

Guillaume JG

cnmade

Anirudh Sylendranath

@jumpeiMano

Federico Guerinoni

Alex Rodin

Arjen van der Ende

Oliver Gugger

Devin Gunay

Wei Jian Gan

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

@srdhoni

@derekhuizhang

le0tk0k

Sean Schneeweiss

Sean Schneeweiss

@connorszczepaniak-wk

pprzekwas

@madflow

Axetroy

Arman Tarkhanian

John Adler

@licraft2019

@mlueckest

Lucas Ramage

@malteehrlen

@golangaccount

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy

Jared Szechy
diff --git a/assets/github-action-config.json b/assets/github-action-config.json index f1f8fa00bc71..4138b92b47fc 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.47.2", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.2/golangci-lint-1.47.2-linux-amd64.tar.gz" + "TargetVersion": "v1.47.3", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.3/golangci-lint-1.47.3-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -155,8 +155,8 @@ "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.46.2/golangci-lint-1.46.2-linux-amd64.tar.gz" }, "v1.47": { - "TargetVersion": "v1.47.2", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.2/golangci-lint-1.47.2-linux-amd64.tar.gz" + "TargetVersion": "v1.47.3", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.3/golangci-lint-1.47.3-linux-amd64.tar.gz" }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" diff --git a/docs/template_data.state b/docs/template_data.state index e2892c4f501e..ab47fd031101 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -a0383a6267cbdc191073668a4e3254db52739a33586dcb5c69588cc8f67b1515 \ No newline at end of file +7ef40e3c484775acc373c523196db1f8ac0c2ebeaa3db790ee654a7fe418e0c0 \ No newline at end of file From f8f8f9a6e7309d0c568908d716247d4bd0aa5381 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 1 Aug 2022 14:21:04 +0200 Subject: [PATCH 109/162] nolint: drop allow-leading-space option and add "nolint:all" (#3002) --- .golangci.yml | 2 +- docs/src/docs/usage/false-positives.mdx | 6 +-- pkg/config/linters_settings.go | 2 - pkg/golinters/godot.go | 2 +- pkg/golinters/importas.go | 4 +- pkg/golinters/nolintlint.go | 3 -- pkg/golinters/nolintlint/README.md | 8 ++-- pkg/golinters/nolintlint/nolintlint.go | 13 ++++--- pkg/golinters/nolintlint/nolintlint_test.go | 38 +++++++------------ pkg/golinters/staticcheck_common.go | 2 +- pkg/result/processors/base_rule.go | 2 +- pkg/result/processors/nolint.go | 10 +++-- .../testdata/autogen_exclude_doc.go | 2 +- pkg/result/processors/testdata/nolint.go | 22 +++++------ .../processors/testdata/nolint_bad_names.go | 2 +- .../processors/testdata/nolint_unused.go | 4 +- scripts/expand_website_templates/main.go | 2 +- test/testdata/default_exclude.go | 5 ++- test/testdata/fix/in/nolintlint.go | 2 +- test/testdata/gomodguard.go | 4 +- test/testdata/nolintlint_unused.go | 6 +-- tools/tools.go | 3 +- 22 files changed, 68 insertions(+), 76 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index fbbe30f93e77..9778170cb97a 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -61,7 +61,7 @@ linters-settings: misspell: locale: US nolintlint: - allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space) + allow-leading-space: false allow-unused: false # report any unused nolint directives require-explanation: false # don't require an explanation for nolint directives require-specific: false # don't require nolint directives to be specific about which linter is being skipped diff --git a/docs/src/docs/usage/false-positives.mdx b/docs/src/docs/usage/false-positives.mdx index 9b0f2fba174c..ade523fca4a4 100644 --- a/docs/src/docs/usage/false-positives.mdx +++ b/docs/src/docs/usage/false-positives.mdx @@ -95,11 +95,11 @@ run: ## Nolint Directive -To exclude issues from all linters use `//nolint`. +To exclude issues from all linters use `//nolint:all`. For example, if it's used inline (not from the beginning of the line) it excludes issues only for this line. ```go -var bad_name int //nolint +var bad_name int //nolint:all ``` To exclude issues from specific linters only: @@ -111,7 +111,7 @@ var bad_name int //nolint:golint,unused To exclude issues for the block of code use this directive on the beginning of a line: ```go -//nolint +//nolint:all func allIssuesInThisFunctionAreExcluded() *string { // ... } diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index b0bc1ac82ffd..14bf13cfd804 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -77,7 +77,6 @@ var defaultLintersSettings = LintersSettings{ }, NoLintLint: NoLintLintSettings{ RequireExplanation: false, - AllowLeadingSpace: true, RequireSpecific: false, AllowUnused: false, }, @@ -488,7 +487,6 @@ type NlreturnSettings struct { type NoLintLintSettings struct { RequireExplanation bool `mapstructure:"require-explanation"` - AllowLeadingSpace bool `mapstructure:"allow-leading-space"` RequireSpecific bool `mapstructure:"require-specific"` AllowNoExplanation []string `mapstructure:"allow-no-explanation"` AllowUnused bool `mapstructure:"allow-unused"` diff --git a/pkg/golinters/godot.go b/pkg/golinters/godot.go index 72322fa717a9..93ca7577ae89 100644 --- a/pkg/golinters/godot.go +++ b/pkg/golinters/godot.go @@ -30,7 +30,7 @@ func NewGodot(settings *config.GodotSettings) *goanalysis.Linter { // Convert deprecated setting // todo(butuzov): remove on v2 release - if settings.CheckAll { // nolint:staticcheck // Keep for retro-compatibility. + if settings.CheckAll { //nolint:staticcheck // Keep for retro-compatibility. dotSettings.Scope = godot.AllScope } } diff --git a/pkg/golinters/importas.go b/pkg/golinters/importas.go index d1f042829571..1917bbb0c68b 100644 --- a/pkg/golinters/importas.go +++ b/pkg/golinters/importas.go @@ -4,7 +4,7 @@ import ( "fmt" "strconv" - "github.com/julz/importas" // nolint: misspell + "github.com/julz/importas" //nolint:misspell "golang.org/x/tools/go/analysis" "github.com/golangci/golangci-lint/pkg/config" @@ -25,7 +25,7 @@ func NewImportAs(settings *config.ImportAsSettings) *goanalysis.Linter { return } if len(settings.Alias) == 0 { - lintCtx.Log.Infof("importas settings found, but no aliases listed. List aliases under alias: key.") // nolint: misspell + lintCtx.Log.Infof("importas settings found, but no aliases listed. List aliases under alias: key.") //nolint:misspell } if err := analyzer.Flags.Set("no-unaliased", strconv.FormatBool(settings.NoUnaliased)); err != nil { diff --git a/pkg/golinters/nolintlint.go b/pkg/golinters/nolintlint.go index 62b8064ba2ae..a809f44995ee 100644 --- a/pkg/golinters/nolintlint.go +++ b/pkg/golinters/nolintlint.go @@ -57,9 +57,6 @@ func runNoLintLint(pass *analysis.Pass, settings *config.NoLintLintSettings) ([] if settings.RequireExplanation { needs |= nolintlint.NeedsExplanation } - if !settings.AllowLeadingSpace { - needs |= nolintlint.NeedsMachineOnly - } if settings.RequireSpecific { needs |= nolintlint.NeedsSpecific } diff --git a/pkg/golinters/nolintlint/README.md b/pkg/golinters/nolintlint/README.md index 3d440d5a5b9c..9f4604d1202f 100644 --- a/pkg/golinters/nolintlint/README.md +++ b/pkg/golinters/nolintlint/README.md @@ -1,6 +1,6 @@ # nolintlint -nolintlint is a Go static analysis tool to find ill-formed or insufficiently explained `// nolint` directives for golangci +nolintlint is a Go static analysis tool to find ill-formed or insufficiently explained `//nolint` directives for golangci (or any other linter, using th ) ## Purpose @@ -8,10 +8,10 @@ nolintlint is a Go static analysis tool to find ill-formed or insufficiently exp To ensure that lint exceptions have explanations. Consider the case below: ```Go -import "crypto/md5" //nolint +import "crypto/md5" //nolint:all func hash(data []byte) []byte { - return md5.New().Sum(data) //nolint + return md5.New().Sum(data) //nolint:all } ``` @@ -27,5 +27,5 @@ func hash(data []byte) []byte { ``` `nolintlint` can also identify cases where you may have written `// nolint`. Finally `nolintlint`, can also enforce that you -use the machine-readable nolint directive format `//nolint` and that you mention what linter is being suppressed, as shown above when we write `//nolint:gosec`. +use the machine-readable nolint directive format `//nolint:all` and that you mention what linter is being suppressed, as shown above when we write `//nolint:gosec`. diff --git a/pkg/golinters/nolintlint/nolintlint.go b/pkg/golinters/nolintlint/nolintlint.go index 064fd61a6100..9c6b10f38c50 100644 --- a/pkg/golinters/nolintlint/nolintlint.go +++ b/pkg/golinters/nolintlint/nolintlint.go @@ -152,7 +152,7 @@ func NewLinter(needs Needs, excludes []string) (*Linter, error) { } return &Linter{ - needs: needs, + needs: needs | NeedsMachineOnly, excludeByLinter: excludeByName, }, nil } @@ -184,12 +184,14 @@ func (l Linter) Run(fset *token.FileSet, nodes ...ast.Node) ([]Issue, error) { leadingSpace = leadingSpaceMatches[1] } - directiveWithOptionalLeadingSpace := comment.Text + directiveWithOptionalLeadingSpace := "//" if len(leadingSpace) > 0 { - split := strings.Split(strings.SplitN(comment.Text, ":", 2)[0], "//") - directiveWithOptionalLeadingSpace = "// " + strings.TrimSpace(split[1]) + directiveWithOptionalLeadingSpace += " " } + split := strings.Split(strings.SplitN(comment.Text, ":", 2)[0], "//") + directiveWithOptionalLeadingSpace += strings.TrimSpace(split[1]) + pos := fset.Position(comment.Pos()) end := fset.Position(comment.End()) @@ -227,8 +229,9 @@ func (l Linter) Run(fset *token.FileSet, nodes ...ast.Node) ([]Issue, error) { } lintersText, explanation := fullMatches[1], fullMatches[2] + var linters []string - if len(lintersText) > 0 { + if len(lintersText) > 0 && !strings.HasPrefix(lintersText, "all") { lls := strings.Split(lintersText, ",") linters = make([]string, 0, len(lls)) rangeStart := (pos.Column - 1) + len("//") + len(leadingSpace) + len("nolint:") diff --git a/pkg/golinters/nolintlint/nolintlint_test.go b/pkg/golinters/nolintlint/nolintlint_test.go index dd6da110a41b..3dba4d6578b3 100644 --- a/pkg/golinters/nolintlint/nolintlint_test.go +++ b/pkg/golinters/nolintlint/nolintlint_test.go @@ -12,7 +12,7 @@ import ( ) //nolint:funlen -func TestNoLintLint(t *testing.T) { +func TestLinter_Run(t *testing.T) { type issueWithReplacement struct { issue string replacement *result.Replacement @@ -80,21 +80,21 @@ package bar func foo() { good() //nolint:my-linter bad() //nolint - bad() // nolint // because + bad() //nolint // because }`, expected: []issueWithReplacement{ {issue: "directive `//nolint` should mention specific linter such as `//nolint:my-linter` at testing.go:6:9"}, - {issue: "directive `// nolint // because` should mention specific linter such as `// nolint:my-linter` at testing.go:7:9"}, + {issue: "directive `//nolint // because` should mention specific linter such as `//nolint:my-linter` at testing.go:7:9"}, }, }, { - desc: "when machine-readable style isn't used", - needs: NeedsMachineOnly, + desc: "when machine-readable style isn't used", contents: ` package bar func foo() { bad() // nolint + bad() // nolint good() //nolint }`, expected: []issueWithReplacement{ @@ -108,25 +108,13 @@ func foo() { }, }, }, - }, - }, - { - desc: "extra spaces in front of directive are reported", - contents: ` -package bar - -func foo() { - bad() // nolint - good() // nolint -}`, - expected: []issueWithReplacement{ { - issue: "directive `// nolint` should not have more than one leading space at testing.go:5:9", + issue: "directive `// nolint` should be written without leading space as `//nolint` at testing.go:6:9", replacement: &result.Replacement{ Inline: &result.InlineFix{ StartCol: 10, - Length: 2, - NewString: " ", + Length: 3, + NewString: "", }, }, }, @@ -138,13 +126,13 @@ func foo() { package bar func foo() { - good() // nolint:linter1,linter-two - bad() // nolint:linter1 linter2 - good() // nolint: linter1,linter2 - good() // nolint: linter1, linter2 + good() //nolint:linter1,linter-two + bad() //nolint:linter1 linter2 + good() //nolint: linter1,linter2 + good() //nolint: linter1, linter2 }`, expected: []issueWithReplacement{ - {issue: "directive `// nolint:linter1 linter2` should match `// nolint[:] [// ]` at testing.go:6:9"}, //nolint:lll // this is a string + {issue: "directive `//nolint:linter1 linter2` should match `//nolint[:] [// ]` at testing.go:6:9"}, //nolint:lll // this is a string }, }, { diff --git a/pkg/golinters/staticcheck_common.go b/pkg/golinters/staticcheck_common.go index e54cf8e8baa5..35d473883940 100644 --- a/pkg/golinters/staticcheck_common.go +++ b/pkg/golinters/staticcheck_common.go @@ -98,7 +98,7 @@ func staticCheckConfig(settings *config.StaticCheckSettings) *scconfig.Config { } // https://github.com/dominikh/go-tools/blob/9bf17c0388a65710524ba04c2d821469e639fdc2/lintcmd/lint.go#L437-L477 -// nolint // Keep the original source code. +//nolint:gocritic // Keep the original source code. func filterAnalyzerNames(analyzers []string, checks []string) map[string]bool { allowedChecks := map[string]bool{} diff --git a/pkg/result/processors/base_rule.go b/pkg/result/processors/base_rule.go index b6ce4f2159e9..6958b9f2f37d 100644 --- a/pkg/result/processors/base_rule.go +++ b/pkg/result/processors/base_rule.go @@ -58,7 +58,7 @@ func (r *baseRule) matchLinter(issue *result.Issue) bool { return false } -func (r *baseRule) matchSource(issue *result.Issue, lineCache *fsutils.LineCache, log logutils.Log) bool { // nolint:interfacer +func (r *baseRule) matchSource(issue *result.Issue, lineCache *fsutils.LineCache, log logutils.Log) bool { //nolint:interfacer sourceLine, errSourceLine := lineCache.GetLine(issue.FilePath(), issue.Line()) if errSourceLine != nil { log.Warnf("Failed to get line %s:%d from line cache: %s", issue.FilePath(), issue.Line(), errSourceLine) diff --git a/pkg/result/processors/nolint.go b/pkg/result/processors/nolint.go index 43115b9cf2a0..96104eabe3c7 100644 --- a/pkg/result/processors/nolint.go +++ b/pkg/result/processors/nolint.go @@ -252,7 +252,7 @@ func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *to } } - if !strings.HasPrefix(text, "nolint:") { + if strings.HasPrefix(text, "nolint:all") || !strings.HasPrefix(text, "nolint:") { return buildRange(nil) // ignore all linters } @@ -260,8 +260,12 @@ func (p *Nolint) extractInlineRangeFromComment(text string, g ast.Node, fset *to var linters []string text = strings.Split(text, "//")[0] // allow another comment after this comment linterItems := strings.Split(strings.TrimPrefix(text, "nolint:"), ",") - for _, linter := range linterItems { - linterName := strings.ToLower(strings.TrimSpace(linter)) + for _, item := range linterItems { + linterName := strings.ToLower(strings.TrimSpace(item)) + if linterName == "all" { + p.unknownLintersSet = map[string]bool{} + return buildRange(nil) + } lcs := p.dbManager.GetLinterConfigs(linterName) if lcs == nil { diff --git a/pkg/result/processors/testdata/autogen_exclude_doc.go b/pkg/result/processors/testdata/autogen_exclude_doc.go index 7eadceffd666..7c01908cadb0 100644 --- a/pkg/result/processors/testdata/autogen_exclude_doc.go +++ b/pkg/result/processors/testdata/autogen_exclude_doc.go @@ -4,7 +4,7 @@ package testdata import "fmt" -// nolint +//nolint:all func PrintString(s string) { fmt.Printf("%s", s) } diff --git a/pkg/result/processors/testdata/nolint.go b/pkg/result/processors/testdata/nolint.go index f7b11701fbb9..5d63be199c54 100644 --- a/pkg/result/processors/testdata/nolint.go +++ b/pkg/result/processors/testdata/nolint.go @@ -1,28 +1,28 @@ package testdata -var nolintSpecific int // nolint:gofmt +var nolintSpecific int //nolint:gofmt var nolintSpace int // nolint: gofmt -var nolintSpaces int //nolint: gofmt, govet -var nolintAll int // nolint -var nolintAndAppendix int // nolint // another comment +var nolintSpaces int //nolint:gofmt, govet +var nolintAll int // nolint:all +var nolintAndAppendix int // nolint:all // another comment -//nolint +//nolint:all var nolintVarByPrecedingComment int -//nolint +//nolint:all var dontNolintVarByPrecedingCommentBecauseOfNewLine int -var nolintPrecedingVar string //nolint +var nolintPrecedingVar string //nolint:all var dontNolintVarByPrecedingCommentBecauseOfDifferentColumn int -//nolint +//nolint:all func nolintFuncByPrecedingComment() *string { xv := "v" return &xv } -//nolint +//nolint:all // second line func nolintFuncByPrecedingMultilineComment1() *string { xv := "v" @@ -30,14 +30,14 @@ func nolintFuncByPrecedingMultilineComment1() *string { } // first line -//nolint +//nolint:all func nolintFuncByPrecedingMultilineComment2() *string { xv := "v" return &xv } // first line -//nolint +//nolint:all // third line func nolintFuncByPrecedingMultilineComment3() *string { xv := "v" diff --git a/pkg/result/processors/testdata/nolint_bad_names.go b/pkg/result/processors/testdata/nolint_bad_names.go index 3b8b4caee8ae..c3b04dfb6ab2 100644 --- a/pkg/result/processors/testdata/nolint_bad_names.go +++ b/pkg/result/processors/testdata/nolint_bad_names.go @@ -1,6 +1,6 @@ package testdata -var nolintUnknownLinter1 bool // nolint:bad1,deadcode,varcheck,megacheck +var nolintUnknownLinter1 bool //nolint:bad1,deadcode,varcheck,megacheck //nolint:bad2,deadcode,megacheck func nolintUnknownLinter2() { diff --git a/pkg/result/processors/testdata/nolint_unused.go b/pkg/result/processors/testdata/nolint_unused.go index dc8eb49e6da1..b9960b807c47 100644 --- a/pkg/result/processors/testdata/nolint_unused.go +++ b/pkg/result/processors/testdata/nolint_unused.go @@ -1,5 +1,5 @@ package testdata -var nolintVarcheck int // nolint:varcheck +var nolintVarcheck int //nolint:varcheck -var nolintVarcheckUnusedOK int // nolint:varcheck,nolintlint +var nolintVarcheckUnusedOK int //nolint:varcheck,nolintlint diff --git a/scripts/expand_website_templates/main.go b/scripts/expand_website_templates/main.go index 3b78bbdefd65..554bffc1eae3 100644 --- a/scripts/expand_website_templates/main.go +++ b/scripts/expand_website_templates/main.go @@ -137,7 +137,7 @@ type latestRelease struct { } func getLatestVersion() (string, error) { - req, err := http.NewRequest( // nolint:noctx + req, err := http.NewRequest( //nolint:noctx http.MethodGet, "https://api.github.com/repos/golangci/golangci-lint/releases/latest", http.NoBody, diff --git a/test/testdata/default_exclude.go b/test/testdata/default_exclude.go index 3c2a13a919c3..be4547f58ed8 100644 --- a/test/testdata/default_exclude.go +++ b/test/testdata/default_exclude.go @@ -11,10 +11,11 @@ func ExportedFunc1() { } // InvalidFuncComment // ERROR stylecheck `ST1020: comment on exported function ExportedFunc2 should be of the form "ExportedFunc2 ..."` -// nolint:golint +// +//nolint:golint func ExportedFunc2() { } -// nolint:stylecheck +//nolint:stylecheck func IgnoreAll() { } diff --git a/test/testdata/fix/in/nolintlint.go b/test/testdata/fix/in/nolintlint.go index 8b484ffbcf34..96468754da6b 100644 --- a/test/testdata/fix/in/nolintlint.go +++ b/test/testdata/fix/in/nolintlint.go @@ -10,7 +10,7 @@ func nolintlint() { fmt.Println() // nolint:bob // leading spaces should be dropped // note that the next lines will retain trailing whitespace when fixed - fmt.Println() //nolint // nolint should be dropped + fmt.Println() //nolint:all // nolint should be dropped fmt.Println() //nolint:lll // nolint should be dropped fmt.Println() //nolint:alice,lll // we don't drop individual linters from lists diff --git a/test/testdata/gomodguard.go b/test/testdata/gomodguard.go index 5b98163959df..64bfdc02bca2 100644 --- a/test/testdata/gomodguard.go +++ b/test/testdata/gomodguard.go @@ -12,13 +12,13 @@ import ( // Something just some struct type Something struct{} -func aAllowedImport() { // nolint: deadcode,unused +func aAllowedImport() { //nolint:deadcode,unused mfile, _ := modfile.Parse("go.mod", []byte{}, nil) log.Println(mfile) } -func aBlockedImport() { // nolint: deadcode,unused +func aBlockedImport() { //nolint:deadcode,unused data := []byte{} something := Something{} _ = yaml.Unmarshal(data, &something) diff --git a/test/testdata/nolintlint_unused.go b/test/testdata/nolintlint_unused.go index a343cc99960c..96bc2a70cbfa 100644 --- a/test/testdata/nolintlint_unused.go +++ b/test/testdata/nolintlint_unused.go @@ -6,7 +6,7 @@ package testdata import "fmt" func Foo() { - fmt.Println("unused") // nolint // ERROR "directive `//nolint .*` is unused" - fmt.Println("unused,specific") // nolint:varcheck // ERROR "directive `//nolint:varcheck .*` is unused for linter varcheck" - fmt.Println("not run") // nolint:unparam // unparam is not run so this is ok + fmt.Println("unused") //nolint:all // ERROR "directive `//nolint .*` is unused" + fmt.Println("unused,specific") //nolint:varcheck // ERROR "directive `//nolint:varcheck .*` is unused for linter varcheck" + fmt.Println("not run") //nolint:unparam // unparam is not run so this is ok } diff --git a/tools/tools.go b/tools/tools.go index 23898f66786a..b36a0271d599 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools package tools @@ -7,7 +8,7 @@ package tools // https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module // https://github.com/golang/go/issues/25922 // -// nolint +//nolint:all import ( _ "github.com/goreleaser/goreleaser" ) From 9a1b9492d6b2ab40fbd069e206444572ea9c9d62 Mon Sep 17 00:00:00 2001 From: Eugene Simonov Date: Mon, 1 Aug 2022 15:22:11 +0300 Subject: [PATCH 110/162] ifshort: deprecate linter (#3034) Co-authored-by: Fernandez Ludovic --- pkg/lint/lintersdb/manager.go | 3 ++- test/testdata/ifshort.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 048143018dc4..2d5174e54a82 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -541,7 +541,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewIfshort(ifshortCfg)). WithSince("v1.36.0"). WithPresets(linter.PresetStyle). - WithURL("https://github.com/esimonov/ifshort"), + WithURL("https://github.com/esimonov/ifshort"). + Deprecated("The repository of the linter has been deprecated by the owner.", "v1.48.0", ""), linter.NewConfig(golinters.NewImportAs(importAsCfg)). WithSince("v1.38.0"). diff --git a/test/testdata/ifshort.go b/test/testdata/ifshort.go index a960b6de0644..edff1bbe870a 100644 --- a/test/testdata/ifshort.go +++ b/test/testdata/ifshort.go @@ -1,4 +1,4 @@ -//golangcitest:args -Eifshort +//golangcitest:args -Eifshort --internal-cmd-test package testdata func DontUseShortSyntaxWhenPossible() { From 1660b2746a21126e68f7248f2414e531fd96bd4f Mon Sep 17 00:00:00 2001 From: Marat Reymers <16486128+maratori@users.noreply.github.com> Date: Mon, 1 Aug 2022 16:57:33 +0300 Subject: [PATCH 111/162] dev: syntax highlight for all dockerfiles (#3038) --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 32f1001be0a5..236bbf95fc20 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ go.sum linguist-generated +Dockerfile.* linguist-language=Dockerfile From b5fee9924f8f07f1fe17ae06928afa22bb582236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 1 Aug 2022 17:49:32 +0300 Subject: [PATCH 112/162] docs(install): remove outdated info on source install (#3039) --- docs/src/docs/usage/install/index.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/src/docs/usage/install/index.mdx b/docs/src/docs/usage/install/index.mdx index 715cb015be39..98aaba9fc84f 100644 --- a/docs/src/docs/usage/install/index.mdx +++ b/docs/src/docs/usage/install/index.mdx @@ -107,11 +107,7 @@ Note: such `go install`/`go get` installation aren't guaranteed to work. We reco
```sh -# Go 1.16+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@{.LatestVersion} - -# Go version < 1.16 -go get -u github.com/golangci/golangci-lint/cmd/golangci-lint@{.LatestVersion} ```
From 368c41cde43c9b31e1fe2853d291eaba6ebfb924 Mon Sep 17 00:00:00 2001 From: Loong Dai Date: Tue, 2 Aug 2022 00:01:24 +0800 Subject: [PATCH 113/162] build(deps): bump github.com/daixiang0/gci from 0.5.0 to 0.6.0 (#3035) --- .golangci.reference.yml | 9 +++++++-- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index bff571126a43..29651c09992e 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -359,8 +359,8 @@ linters-settings: # Section configuration to compare against. # Section names are case-insensitive and may contain parameters in (). - # The order of sections is always `standard > default > custom > blank > dot`, - # it cannot be changed and doesn't follow the order of `sections` option. + # The default order of sections is `standard > default > custom > blank > dot`, + # If `custom-order` is `true`, it follows the order of `sections` option. # Default: ["standard", "default"] sections: - standard # Standard section: captures all standard packages. @@ -373,6 +373,11 @@ linters-settings: # Default: true skip-generated: false + # Enable custom order of sections. + # If `true`, make the section order the same as the order of `sections`. + # Default: false + custom-order: true + gocognit: # Minimal code complexity to report # Default: 30 (but we recommend 10-20) diff --git a/go.mod b/go.mod index 9b94befa14cb..d58286101034 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.5.0 + github.com/daixiang0/gci v0.6.0 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index e5ea9aea54ce..f7a2f59b057b 100644 --- a/go.sum +++ b/go.sum @@ -132,8 +132,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.5.0 h1:3+Z8nb/4dhJQYjpEbG4wt5na+KFJJTZ++PVEq/MVKX4= -github.com/daixiang0/gci v0.5.0/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.6.0 h1:lAQiaHASB8mfRaef9DS/hh7sIPnAQRFlvIJbC58f1Rs= +github.com/daixiang0/gci v0.6.0/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= From 594bd33afe7a2dd6568232646847b3e818975298 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 22:50:26 +0200 Subject: [PATCH 114/162] build(deps): bump gatsby-transformer-sharp from 4.13.0 to 4.19.0 in /docs (#3040) --- docs/package-lock.json | 222 +++++++++++++++++++++-------------------- docs/package.json | 2 +- 2 files changed, 113 insertions(+), 111 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index b9135cfe1362..ba897c0b38f9 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -37,7 +37,7 @@ "gatsby-remark-responsive-iframe": "^5.13.0", "gatsby-source-filesystem": "^4.13.0", "gatsby-transformer-remark": "^5.13.0", - "gatsby-transformer-sharp": "^4.13.0", + "gatsby-transformer-sharp": "^4.19.0", "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", "postcss": "^8.4.14", @@ -4018,9 +4018,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", - "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.3.tgz", + "integrity": "sha512-RXwGZ/0eCqtCY8FLTM/koR60w+MXyvBUpToXiIyjOcBnC81tAlTUHrRUavCEWPI9zc9VgvpK3+cbumPyR8BSuA==", "cpu": [ "arm64" ], @@ -4030,9 +4030,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", - "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.3.tgz", + "integrity": "sha512-337dNzh5yCdNCTk8kPfoU7jR3otibSlPDGW0vKZT97rKnQMb9tNdto3RtWoGPsQ8hKmlRZpojOJtmwjncq1MoA==", "cpu": [ "x64" ], @@ -4042,9 +4042,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", - "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.3.tgz", + "integrity": "sha512-mU2HFJDGwECkoD9dHQEfeTG5mp8hNS2BCfwoiOpVPMeapjYpQz9Uw3FkUjRZ4dGHWKbin40oWHuL0bk2bCx+Sg==", "cpu": [ "arm" ], @@ -4054,9 +4054,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", - "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.3.tgz", + "integrity": "sha512-VJw60Mdgb4n+L0fO1PqfB0C7TyEQolJAC8qpqvG3JoQwvyOv6LH7Ib/WE3wxEW9nuHmVz9jkK7lk5HfWWgoO1Q==", "cpu": [ "arm64" ], @@ -4066,9 +4066,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", - "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.3.tgz", + "integrity": "sha512-qaReO5aV8griBDsBr8uBF/faO3ieGjY1RY4p8JvTL6Mu1ylLrTVvOONqKFlNaCwrmUjWw5jnf7VafxDAeQHTow==", "cpu": [ "x64" ], @@ -4078,9 +4078,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", - "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.3.tgz", + "integrity": "sha512-cK+Elf3RjEzrm3SerAhrFWL5oQAsZSJ/LmjL1joIpTfEP1etJJ9CTRvdaV6XLYAxaEkfdhk/9hOvHLbR9yIhCA==", "cpu": [ "x64" ], @@ -12464,9 +12464,9 @@ } }, "node_modules/gatsby-core-utils": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.17.0.tgz", - "integrity": "sha512-1e0YaqTAEpSSBkpWkY703lu+Bl76ASXUvUcpnNO3CavCYZsRQxAXtMXIKIEvhm1z6zWJmY9HILo6/DjP+PHeyw==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.19.0.tgz", + "integrity": "sha512-cjXs9DsXkPZt+UdiLHxtq+rGMGVrcnM0KwkawlruvPchI7lqGNv9CScqlvYPxx1dBhu3zSZS26EBALMlFhyOJA==", "dependencies": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", @@ -12474,9 +12474,9 @@ "fastq": "^1.13.0", "file-type": "^16.5.3", "fs-extra": "^10.1.0", - "got": "^11.8.3", + "got": "^11.8.5", "import-from": "^4.0.0", - "lmdb": "2.5.2", + "lmdb": "2.5.3", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -12524,9 +12524,9 @@ } }, "node_modules/gatsby-core-utils/node_modules/lmdb": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", - "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", + "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", "hasInstallScript": true, "dependencies": { "msgpackr": "^1.5.4", @@ -12536,12 +12536,12 @@ "weak-lru-cache": "^1.2.2" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.5.2", - "@lmdb/lmdb-darwin-x64": "2.5.2", - "@lmdb/lmdb-linux-arm": "2.5.2", - "@lmdb/lmdb-linux-arm64": "2.5.2", - "@lmdb/lmdb-linux-x64": "2.5.2", - "@lmdb/lmdb-win32-x64": "2.5.2" + "@lmdb/lmdb-darwin-arm64": "2.5.3", + "@lmdb/lmdb-darwin-x64": "2.5.3", + "@lmdb/lmdb-linux-arm": "2.5.3", + "@lmdb/lmdb-linux-arm64": "2.5.3", + "@lmdb/lmdb-linux-x64": "2.5.3", + "@lmdb/lmdb-win32-x64": "2.5.3" } }, "node_modules/gatsby-core-utils/node_modules/node-addon-api": { @@ -13321,15 +13321,15 @@ } }, "node_modules/gatsby-plugin-utils": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.11.0.tgz", - "integrity": "sha512-v2D6O2aME9p7tqlGykq5mgtj7Jqp/CWatgo0zJ7bFWSYPPUpQ7jRVAph1PIgFTAV/CaUrrvt9sxdRaZrglJyug==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.13.0.tgz", + "integrity": "sha512-iFFWswld/Nu8IrSCikZXC4/cud9txv3ikjkQiGLccJStS9VH2rSY4XEMNRqsKN9Spe3pFBOr/97yYUaPhZaQWg==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", - "gatsby-sharp": "^0.11.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-sharp": "^0.13.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -13455,9 +13455,9 @@ } }, "node_modules/gatsby-plugin-utils/node_modules/gatsby-sharp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.11.0.tgz", - "integrity": "sha512-RIbU8qi/Qs7G/KJiY0zyGS9Yic5n4RpDUf/1W3gvRl78Uo3LSuIeGEpaai6mYEnreuGb5fQIcqdkYs/UV3e8WA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", + "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", "dependencies": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -14523,17 +14523,18 @@ } }, "node_modules/gatsby-transformer-sharp": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-4.13.0.tgz", - "integrity": "sha512-F8qtdohnIVUX62FKwyxTGw4Nl8/ZYX28eC/H66gLFa3Iwdy0sp+DSD3IVTzzHB4BUQB1vn2QnCoaY4PuPKn+Vw==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-4.19.0.tgz", + "integrity": "sha512-SoY9yGNjC+C+gAfJ//+DqXGBukVKeb4HnobOmkpbugYtLGRwb4AhKOT7eqCn+AK/4+oDDB3ZNNfTUf0vRFQgzA==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "bluebird": "^3.7.2", "common-tags": "^1.8.2", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", + "gatsby-plugin-utils": "^3.13.0", "probe-image-size": "^7.2.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "sharp": "^0.30.3" }, "engines": { @@ -14545,9 +14546,9 @@ } }, "node_modules/gatsby-transformer-sharp/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -14569,9 +14570,9 @@ } }, "node_modules/gatsby-transformer-sharp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -15288,9 +15289,9 @@ } }, "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -28727,39 +28728,39 @@ } }, "@lmdb/lmdb-darwin-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", - "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.3.tgz", + "integrity": "sha512-RXwGZ/0eCqtCY8FLTM/koR60w+MXyvBUpToXiIyjOcBnC81tAlTUHrRUavCEWPI9zc9VgvpK3+cbumPyR8BSuA==", "optional": true }, "@lmdb/lmdb-darwin-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", - "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.3.tgz", + "integrity": "sha512-337dNzh5yCdNCTk8kPfoU7jR3otibSlPDGW0vKZT97rKnQMb9tNdto3RtWoGPsQ8hKmlRZpojOJtmwjncq1MoA==", "optional": true }, "@lmdb/lmdb-linux-arm": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", - "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.3.tgz", + "integrity": "sha512-mU2HFJDGwECkoD9dHQEfeTG5mp8hNS2BCfwoiOpVPMeapjYpQz9Uw3FkUjRZ4dGHWKbin40oWHuL0bk2bCx+Sg==", "optional": true }, "@lmdb/lmdb-linux-arm64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", - "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.3.tgz", + "integrity": "sha512-VJw60Mdgb4n+L0fO1PqfB0C7TyEQolJAC8qpqvG3JoQwvyOv6LH7Ib/WE3wxEW9nuHmVz9jkK7lk5HfWWgoO1Q==", "optional": true }, "@lmdb/lmdb-linux-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", - "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.3.tgz", + "integrity": "sha512-qaReO5aV8griBDsBr8uBF/faO3ieGjY1RY4p8JvTL6Mu1ylLrTVvOONqKFlNaCwrmUjWw5jnf7VafxDAeQHTow==", "optional": true }, "@lmdb/lmdb-win32-x64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", - "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.3.tgz", + "integrity": "sha512-cK+Elf3RjEzrm3SerAhrFWL5oQAsZSJ/LmjL1joIpTfEP1etJJ9CTRvdaV6XLYAxaEkfdhk/9hOvHLbR9yIhCA==", "optional": true }, "@mdx-js/mdx": { @@ -35449,9 +35450,9 @@ } }, "gatsby-core-utils": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.17.0.tgz", - "integrity": "sha512-1e0YaqTAEpSSBkpWkY703lu+Bl76ASXUvUcpnNO3CavCYZsRQxAXtMXIKIEvhm1z6zWJmY9HILo6/DjP+PHeyw==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.19.0.tgz", + "integrity": "sha512-cjXs9DsXkPZt+UdiLHxtq+rGMGVrcnM0KwkawlruvPchI7lqGNv9CScqlvYPxx1dBhu3zSZS26EBALMlFhyOJA==", "requires": { "@babel/runtime": "^7.15.4", "ci-info": "2.0.0", @@ -35459,9 +35460,9 @@ "fastq": "^1.13.0", "file-type": "^16.5.3", "fs-extra": "^10.1.0", - "got": "^11.8.3", + "got": "^11.8.5", "import-from": "^4.0.0", - "lmdb": "2.5.2", + "lmdb": "2.5.3", "lock": "^1.1.0", "node-object-hash": "^2.3.10", "proper-lockfile": "^4.1.2", @@ -35495,16 +35496,16 @@ } }, "lmdb": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", - "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", - "requires": { - "@lmdb/lmdb-darwin-arm64": "2.5.2", - "@lmdb/lmdb-darwin-x64": "2.5.2", - "@lmdb/lmdb-linux-arm": "2.5.2", - "@lmdb/lmdb-linux-arm64": "2.5.2", - "@lmdb/lmdb-linux-x64": "2.5.2", - "@lmdb/lmdb-win32-x64": "2.5.2", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", + "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", + "requires": { + "@lmdb/lmdb-darwin-arm64": "2.5.3", + "@lmdb/lmdb-darwin-x64": "2.5.3", + "@lmdb/lmdb-linux-arm": "2.5.3", + "@lmdb/lmdb-linux-arm64": "2.5.3", + "@lmdb/lmdb-linux-x64": "2.5.3", + "@lmdb/lmdb-win32-x64": "2.5.3", "msgpackr": "^1.5.4", "node-addon-api": "^4.3.0", "node-gyp-build-optional-packages": "5.0.3", @@ -36079,15 +36080,15 @@ } }, "gatsby-plugin-utils": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.11.0.tgz", - "integrity": "sha512-v2D6O2aME9p7tqlGykq5mgtj7Jqp/CWatgo0zJ7bFWSYPPUpQ7jRVAph1PIgFTAV/CaUrrvt9sxdRaZrglJyug==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-utils/-/gatsby-plugin-utils-3.13.0.tgz", + "integrity": "sha512-iFFWswld/Nu8IrSCikZXC4/cud9txv3ikjkQiGLccJStS9VH2rSY4XEMNRqsKN9Spe3pFBOr/97yYUaPhZaQWg==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", - "gatsby-sharp": "^0.11.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-sharp": "^0.13.0", "graphql-compose": "^9.0.7", "import-from": "^4.0.0", "joi": "^17.4.2", @@ -36171,9 +36172,9 @@ } }, "gatsby-sharp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.11.0.tgz", - "integrity": "sha512-RIbU8qi/Qs7G/KJiY0zyGS9Yic5n4RpDUf/1W3gvRl78Uo3LSuIeGEpaai6mYEnreuGb5fQIcqdkYs/UV3e8WA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", + "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", "requires": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -36952,24 +36953,25 @@ } }, "gatsby-transformer-sharp": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-4.13.0.tgz", - "integrity": "sha512-F8qtdohnIVUX62FKwyxTGw4Nl8/ZYX28eC/H66gLFa3Iwdy0sp+DSD3IVTzzHB4BUQB1vn2QnCoaY4PuPKn+Vw==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-4.19.0.tgz", + "integrity": "sha512-SoY9yGNjC+C+gAfJ//+DqXGBukVKeb4HnobOmkpbugYtLGRwb4AhKOT7eqCn+AK/4+oDDB3ZNNfTUf0vRFQgzA==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", "bluebird": "^3.7.2", "common-tags": "^1.8.2", - "fs-extra": "^10.0.0", + "fs-extra": "^10.1.0", + "gatsby-plugin-utils": "^3.13.0", "probe-image-size": "^7.2.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "sharp": "^0.30.3" }, "dependencies": { "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -36986,9 +36988,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -37269,9 +37271,9 @@ } }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", diff --git a/docs/package.json b/docs/package.json index d8fe54a3a35c..d1c12fe70795 100644 --- a/docs/package.json +++ b/docs/package.json @@ -34,7 +34,7 @@ "gatsby-remark-responsive-iframe": "^5.13.0", "gatsby-source-filesystem": "^4.13.0", "gatsby-transformer-remark": "^5.13.0", - "gatsby-transformer-sharp": "^4.13.0", + "gatsby-transformer-sharp": "^4.19.0", "gatsby-transformer-yaml": "^4.13.0", "polished": "^4.2.2", "postcss": "^8.4.14", From b3374a86823bbe972a0cc67291fd9a21054358a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 22:50:50 +0200 Subject: [PATCH 115/162] build(deps): bump gatsby-plugin-netlify from 4.3.1 to 5.0.1 in /docs (#3041) --- docs/package-lock.json | 28 +++++++++++++++++++--------- docs/package.json | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index ba897c0b38f9..84ed27c79d77 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -21,7 +21,7 @@ "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", - "gatsby-plugin-netlify": "^4.3.1", + "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.17.0", "gatsby-plugin-react-helmet": "^5.17.0", @@ -12947,15 +12947,15 @@ } }, "node_modules/gatsby-plugin-netlify": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify/-/gatsby-plugin-netlify-4.3.1.tgz", - "integrity": "sha512-GCznA2EfnNOLYCbdIRufSebjIyK8ZAO1ew1GiEqy2IgakZSew6iyGcDC3M6OXkDiVaUCssuoltAyGZYg/JeUZw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify/-/gatsby-plugin-netlify-5.0.1.tgz", + "integrity": "sha512-siy/zX45fIEtfCApH3QkXG0u3mS0y/bf/J2mDMFOrfvhiyB35YDJfaWoRvon+UwJM4dYcMJY17sAnBaBfOQ9GA==", "dependencies": { "@babel/runtime": "^7.16.7", "fs-extra": "^10.0.0", "gatsby-core-utils": "^3.5.2", "kebab-hash": "^0.1.2", - "lodash": "^4.17.21", + "lodash.mergewith": "^4.6.2", "webpack-assets-manifest": "^5.0.6" }, "engines": { @@ -17369,6 +17369,11 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "node_modules/lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", @@ -35811,15 +35816,15 @@ } }, "gatsby-plugin-netlify": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify/-/gatsby-plugin-netlify-4.3.1.tgz", - "integrity": "sha512-GCznA2EfnNOLYCbdIRufSebjIyK8ZAO1ew1GiEqy2IgakZSew6iyGcDC3M6OXkDiVaUCssuoltAyGZYg/JeUZw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-netlify/-/gatsby-plugin-netlify-5.0.1.tgz", + "integrity": "sha512-siy/zX45fIEtfCApH3QkXG0u3mS0y/bf/J2mDMFOrfvhiyB35YDJfaWoRvon+UwJM4dYcMJY17sAnBaBfOQ9GA==", "requires": { "@babel/runtime": "^7.16.7", "fs-extra": "^10.0.0", "gatsby-core-utils": "^3.5.2", "kebab-hash": "^0.1.2", - "lodash": "^4.17.21", + "lodash.mergewith": "^4.6.2", "webpack-assets-manifest": "^5.0.6" }, "dependencies": { @@ -38857,6 +38862,11 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", diff --git a/docs/package.json b/docs/package.json index d1c12fe70795..30f76b182c1c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -18,7 +18,7 @@ "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", - "gatsby-plugin-netlify": "^4.3.1", + "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.17.0", "gatsby-plugin-react-helmet": "^5.17.0", From 8e53300c5279432a5895d0131652dee6fbd6544b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 22:51:23 +0200 Subject: [PATCH 116/162] build(deps): bump gatsby-plugin-sharp from 4.17.0 to 4.19.0 in /docs (#3044) --- docs/package-lock.json | 105 +++++++++++++++++++++-------------------- docs/package.json | 2 +- 2 files changed, 55 insertions(+), 52 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 84ed27c79d77..0451b798c369 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -27,7 +27,7 @@ "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", - "gatsby-plugin-sharp": "^4.17.0", + "gatsby-plugin-sharp": "^4.19.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.17.0", @@ -5263,11 +5263,14 @@ } }, "node_modules/@turist/fetch": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@turist/fetch/-/fetch-7.1.7.tgz", - "integrity": "sha512-XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turist/fetch/-/fetch-7.2.0.tgz", + "integrity": "sha512-2x7EGw+6OJ29phunsbGvtxlNmSfcuPcyYudkMbi8gARCP9eJ1CtuMvnVUHL//O9Ixi9SJiug8wNt6lj86pN8XQ==", "dependencies": { "@types/node-fetch": "2" + }, + "peerDependencies": { + "node-fetch": "2" } }, "node_modules/@types/cacheable-request": { @@ -5424,9 +5427,9 @@ "integrity": "sha512-um/+/ip3QZmwLfIkWZSNtQIJNVAqrJ92OkLMeuZrjZMTAJniI7fh8N8OICyDhAJ2mzgk/fmYFo72jRr5HyZ1EQ==" }, "node_modules/@types/node-fetch": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz", - "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", "dependencies": { "@types/node": "*", "form-data": "^3.0.0" @@ -11866,9 +11869,9 @@ } }, "node_modules/form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -13189,21 +13192,21 @@ } }, "node_modules/gatsby-plugin-sharp": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.17.0.tgz", - "integrity": "sha512-+wP4hskMBSNgPYqBX2uqoqb5JUtMMvaZTzYNkZmnKkg85rHeDpUy+eMoCqrhh8wpW/NgcbQ9o6uK43jj2qv0xQ==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.19.0.tgz", + "integrity": "sha512-2wIxbCoJmZMeCw+V9ht90tmwoSF2eaEKj6j5QMLe+NlLpLOXwmsHjrauMpqd8ILmcKpZTOJr9yEplzbjxlD36A==", "dependencies": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", - "async": "^3.2.3", + "async": "^3.2.4", "bluebird": "^3.7.2", "debug": "^4.3.4", "filenamify": "^4.3.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", - "gatsby-plugin-utils": "^3.11.0", - "gatsby-telemetry": "^3.17.0", - "got": "^11.8.3", + "gatsby-core-utils": "^3.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-telemetry": "^3.19.0", + "got": "^11.8.5", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.4.4", "probe-image-size": "^7.2.3", @@ -13220,9 +13223,9 @@ } }, "node_modules/gatsby-plugin-sharp/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/gatsby-plugin-sharp/node_modules/fs-extra": { "version": "10.1.0", @@ -14258,20 +14261,20 @@ } }, "node_modules/gatsby-telemetry": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.17.0.tgz", - "integrity": "sha512-1N4uKj2Yj7AykLmwjsdOmNirf3UmP8CBXjj/LmWf5cLDVbdPqkirAlyD6uTeEliG5UFHPTlBsRi26v558mFYJQ==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.19.0.tgz", + "integrity": "sha512-5JQcTm2zCLWTmnXOdOe0gxuk7aRZSTaVrOrytMlwAR7trvtBC/fKqMhJHsYwl5uW9K06F59ZdkC0apJTAPkGww==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", "@babel/runtime": "^7.15.4", - "@turist/fetch": "^7.1.7", + "@turist/fetch": "^7.2.0", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", + "gatsby-core-utils": "^3.19.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", @@ -29572,9 +29575,9 @@ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, "@turist/fetch": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@turist/fetch/-/fetch-7.1.7.tgz", - "integrity": "sha512-XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turist/fetch/-/fetch-7.2.0.tgz", + "integrity": "sha512-2x7EGw+6OJ29phunsbGvtxlNmSfcuPcyYudkMbi8gARCP9eJ1CtuMvnVUHL//O9Ixi9SJiug8wNt6lj86pN8XQ==", "requires": { "@types/node-fetch": "2" } @@ -29733,9 +29736,9 @@ "integrity": "sha512-um/+/ip3QZmwLfIkWZSNtQIJNVAqrJ92OkLMeuZrjZMTAJniI7fh8N8OICyDhAJ2mzgk/fmYFo72jRr5HyZ1EQ==" }, "@types/node-fetch": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz", - "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", "requires": { "@types/node": "*", "form-data": "^3.0.0" @@ -34747,9 +34750,9 @@ } }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -35986,21 +35989,21 @@ } }, "gatsby-plugin-sharp": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.17.0.tgz", - "integrity": "sha512-+wP4hskMBSNgPYqBX2uqoqb5JUtMMvaZTzYNkZmnKkg85rHeDpUy+eMoCqrhh8wpW/NgcbQ9o6uK43jj2qv0xQ==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.19.0.tgz", + "integrity": "sha512-2wIxbCoJmZMeCw+V9ht90tmwoSF2eaEKj6j5QMLe+NlLpLOXwmsHjrauMpqd8ILmcKpZTOJr9yEplzbjxlD36A==", "requires": { "@babel/runtime": "^7.15.4", "@gatsbyjs/potrace": "^2.2.0", - "async": "^3.2.3", + "async": "^3.2.4", "bluebird": "^3.7.2", "debug": "^4.3.4", "filenamify": "^4.3.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", - "gatsby-plugin-utils": "^3.11.0", - "gatsby-telemetry": "^3.17.0", - "got": "^11.8.3", + "gatsby-core-utils": "^3.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-telemetry": "^3.19.0", + "got": "^11.8.5", "lodash": "^4.17.21", "mini-svg-data-uri": "^1.4.4", "probe-image-size": "^7.2.3", @@ -36011,9 +36014,9 @@ }, "dependencies": { "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "fs-extra": { "version": "10.1.0", @@ -36757,19 +36760,19 @@ } }, "gatsby-telemetry": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.17.0.tgz", - "integrity": "sha512-1N4uKj2Yj7AykLmwjsdOmNirf3UmP8CBXjj/LmWf5cLDVbdPqkirAlyD6uTeEliG5UFHPTlBsRi26v558mFYJQ==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.19.0.tgz", + "integrity": "sha512-5JQcTm2zCLWTmnXOdOe0gxuk7aRZSTaVrOrytMlwAR7trvtBC/fKqMhJHsYwl5uW9K06F59ZdkC0apJTAPkGww==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/runtime": "^7.15.4", - "@turist/fetch": "^7.1.7", + "@turist/fetch": "^7.2.0", "@turist/time": "^0.0.2", "async-retry-ng": "^2.0.1", "boxen": "^4.2.0", "configstore": "^5.0.1", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.17.0", + "gatsby-core-utils": "^3.19.0", "git-up": "^4.0.5", "is-docker": "^2.2.1", "lodash": "^4.17.21", diff --git a/docs/package.json b/docs/package.json index 30f76b182c1c..f5e3ca71473c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -24,7 +24,7 @@ "gatsby-plugin-react-helmet": "^5.17.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", - "gatsby-plugin-sharp": "^4.17.0", + "gatsby-plugin-sharp": "^4.19.0", "gatsby-plugin-sitemap": "^5.13.0", "gatsby-remark-autolink-headers": "^5.15.1", "gatsby-remark-copy-linked-files": "^5.17.0", From bf55b2dba99e78712c741724a8a9b70a44bae0a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 00:10:02 +0200 Subject: [PATCH 117/162] build(deps): bump gatsby-plugin-react-helmet from 5.17.0 to 5.19.0 in /docs (#3042) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 0451b798c369..a77d1a7419b1 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -24,7 +24,7 @@ "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.17.0", - "gatsby-plugin-react-helmet": "^5.17.0", + "gatsby-plugin-react-helmet": "^5.19.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.19.0", @@ -13154,9 +13154,9 @@ } }, "node_modules/gatsby-plugin-react-helmet": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.17.0.tgz", - "integrity": "sha512-Lp52GFGNQO0Rt0VfYbFMFBw67XNaIITvwhBMqzxnIw/OCnnyjhylfYMpmyDQKT5S/yaWEF3MsvPmE2YCbXbSww==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.19.0.tgz", + "integrity": "sha512-XXrJYfHqoaUe57oAF+/ljPHncrvYk0UonES3aUwynbWsR8UXhQpdbwqIOYZPGQgPsc1X55Kzdo+/3pU1gA9ajQ==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -35964,9 +35964,9 @@ } }, "gatsby-plugin-react-helmet": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.17.0.tgz", - "integrity": "sha512-Lp52GFGNQO0Rt0VfYbFMFBw67XNaIITvwhBMqzxnIw/OCnnyjhylfYMpmyDQKT5S/yaWEF3MsvPmE2YCbXbSww==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.19.0.tgz", + "integrity": "sha512-XXrJYfHqoaUe57oAF+/ljPHncrvYk0UonES3aUwynbWsR8UXhQpdbwqIOYZPGQgPsc1X55Kzdo+/3pU1gA9ajQ==", "requires": { "@babel/runtime": "^7.15.4" } diff --git a/docs/package.json b/docs/package.json index f5e3ca71473c..ad995631a7ea 100644 --- a/docs/package.json +++ b/docs/package.json @@ -21,7 +21,7 @@ "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", "gatsby-plugin-offline": "^5.17.0", - "gatsby-plugin-react-helmet": "^5.17.0", + "gatsby-plugin-react-helmet": "^5.19.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", "gatsby-plugin-sharp": "^4.19.0", From 0f226ce098170d5a2ab847f08065303fbaa68d19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 00:28:46 +0200 Subject: [PATCH 118/162] build(deps): bump gatsby-plugin-emotion from 7.17.0 to 7.19.0 in /docs (#3047) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index a77d1a7419b1..801624862c81 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -17,7 +17,7 @@ "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", - "gatsby-plugin-emotion": "^7.17.0", + "gatsby-plugin-emotion": "^7.19.0", "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", @@ -12716,9 +12716,9 @@ } }, "node_modules/gatsby-plugin-emotion": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.17.0.tgz", - "integrity": "sha512-t42HNDzrexUOnhDIuscz/yxDu3NKZ27TbcilXY5yIAtWkO705/qQP5KaYnJeVfx3PDkLQe7GtDoPCU/165Dhag==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.19.0.tgz", + "integrity": "sha512-sESLf2cUH91sFFzgylRKb5Vc/9cS9ca9KeG1/kjTRuONNBuu0tgiSQnrCPkfxa4Ij9xEO4QlgjKFhwHZNCu3Tw==", "dependencies": { "@babel/runtime": "^7.15.4", "@emotion/babel-preset-css-prop": "^11.2.0" @@ -35644,9 +35644,9 @@ } }, "gatsby-plugin-emotion": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.17.0.tgz", - "integrity": "sha512-t42HNDzrexUOnhDIuscz/yxDu3NKZ27TbcilXY5yIAtWkO705/qQP5KaYnJeVfx3PDkLQe7GtDoPCU/165Dhag==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-7.19.0.tgz", + "integrity": "sha512-sESLf2cUH91sFFzgylRKb5Vc/9cS9ca9KeG1/kjTRuONNBuu0tgiSQnrCPkfxa4Ij9xEO4QlgjKFhwHZNCu3Tw==", "requires": { "@babel/runtime": "^7.15.4", "@emotion/babel-preset-css-prop": "^11.2.0" diff --git a/docs/package.json b/docs/package.json index ad995631a7ea..352c63edfd88 100644 --- a/docs/package.json +++ b/docs/package.json @@ -14,7 +14,7 @@ "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", - "gatsby-plugin-emotion": "^7.17.0", + "gatsby-plugin-emotion": "^7.19.0", "gatsby-plugin-google-analytics": "^4.17.0", "gatsby-plugin-manifest": "^4.15.1", "gatsby-plugin-mdx": "^3.15.2", From 8f81cc2991c89f91551324c557901b533f41e2a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 00:58:56 +0200 Subject: [PATCH 119/162] build(deps): bump gatsby-plugin-offline from 5.17.0 to 5.19.0 in /docs (#3043) --- docs/package-lock.json | 18 +++++++++--------- docs/package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 801624862c81..8d6be8564551 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -23,7 +23,7 @@ "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", - "gatsby-plugin-offline": "^5.17.0", + "gatsby-plugin-offline": "^5.19.0", "gatsby-plugin-react-helmet": "^5.19.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", @@ -13014,13 +13014,13 @@ } }, "node_modules/gatsby-plugin-offline": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.17.0.tgz", - "integrity": "sha512-4sGpLkjOrv/b6E9FI6TqAX92D47PGbgCubqQTTV7c4zcEIjq9MA86VzNRV/sU8Jys+9Az0kBOIA8e7NEckyvXQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.19.0.tgz", + "integrity": "sha512-bTouKG26tqlKMCc8q9Fq3+agSv1gO7raEVdjhmtWrbLMPK1RKUv8alOnNc0inMCT/so+vSb7VBKRz0nQSv+O8A==", "dependencies": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.17.0", + "gatsby-core-utils": "^3.19.0", "glob": "^7.2.3", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", @@ -35867,13 +35867,13 @@ } }, "gatsby-plugin-offline": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.17.0.tgz", - "integrity": "sha512-4sGpLkjOrv/b6E9FI6TqAX92D47PGbgCubqQTTV7c4zcEIjq9MA86VzNRV/sU8Jys+9Az0kBOIA8e7NEckyvXQ==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-5.19.0.tgz", + "integrity": "sha512-bTouKG26tqlKMCc8q9Fq3+agSv1gO7raEVdjhmtWrbLMPK1RKUv8alOnNc0inMCT/so+vSb7VBKRz0nQSv+O8A==", "requires": { "@babel/runtime": "^7.15.4", "cheerio": "^1.0.0-rc.10", - "gatsby-core-utils": "^3.17.0", + "gatsby-core-utils": "^3.19.0", "glob": "^7.2.3", "idb-keyval": "^3.2.0", "lodash": "^4.17.21", diff --git a/docs/package.json b/docs/package.json index 352c63edfd88..21ee9eccb7a9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -20,7 +20,7 @@ "gatsby-plugin-mdx": "^3.15.2", "gatsby-plugin-netlify": "^5.0.1", "gatsby-plugin-netlify-cache": "^2.0.0", - "gatsby-plugin-offline": "^5.17.0", + "gatsby-plugin-offline": "^5.19.0", "gatsby-plugin-react-helmet": "^5.19.0", "gatsby-plugin-react-svg": "^3.1.0", "gatsby-plugin-robots-txt": "^1.7.1", From f9dfb687aa3a7ea9789219e9eb4842ece424b739 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 01:03:18 +0200 Subject: [PATCH 120/162] build(deps): bump gatsby-transformer-yaml from 4.13.0 to 4.19.0 in /docs (#3045) --- docs/package-lock.json | 14 +++++++------- docs/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 8d6be8564551..3e60174bf153 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -38,7 +38,7 @@ "gatsby-source-filesystem": "^4.13.0", "gatsby-transformer-remark": "^5.13.0", "gatsby-transformer-sharp": "^4.19.0", - "gatsby-transformer-yaml": "^4.13.0", + "gatsby-transformer-yaml": "^4.19.0", "polished": "^4.2.2", "postcss": "^8.4.14", "prism-react-renderer": "^1.3.3", @@ -14595,9 +14595,9 @@ } }, "node_modules/gatsby-transformer-yaml": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-4.13.0.tgz", - "integrity": "sha512-r9MuNUunAIsFup/KUPbgyYztw4GHsn9f1T/u8Jsf7fqFi9mvvi7nxc01SLXDArho746/4ewpjUFE2CYmawjfSQ==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-4.19.0.tgz", + "integrity": "sha512-xWa6D67kzvcSKNzz0mKVXLtIr+xJDp7rAqMckLetnjfaWOK/uAAyy7UZ9kbbJNQM06/mDF0IjQTwKDXEk3YDTw==", "dependencies": { "@babel/runtime": "^7.15.4", "js-yaml": "^3.14.1", @@ -37011,9 +37011,9 @@ } }, "gatsby-transformer-yaml": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-4.13.0.tgz", - "integrity": "sha512-r9MuNUunAIsFup/KUPbgyYztw4GHsn9f1T/u8Jsf7fqFi9mvvi7nxc01SLXDArho746/4ewpjUFE2CYmawjfSQ==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-4.19.0.tgz", + "integrity": "sha512-xWa6D67kzvcSKNzz0mKVXLtIr+xJDp7rAqMckLetnjfaWOK/uAAyy7UZ9kbbJNQM06/mDF0IjQTwKDXEk3YDTw==", "requires": { "@babel/runtime": "^7.15.4", "js-yaml": "^3.14.1", diff --git a/docs/package.json b/docs/package.json index 21ee9eccb7a9..f015d4251b86 100644 --- a/docs/package.json +++ b/docs/package.json @@ -35,7 +35,7 @@ "gatsby-source-filesystem": "^4.13.0", "gatsby-transformer-remark": "^5.13.0", "gatsby-transformer-sharp": "^4.19.0", - "gatsby-transformer-yaml": "^4.13.0", + "gatsby-transformer-yaml": "^4.19.0", "polished": "^4.2.2", "postcss": "^8.4.14", "prism-react-renderer": "^1.3.3", From 452544a2e7ae9a8fff6422298b0384818de77807 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Aug 2022 01:25:12 +0200 Subject: [PATCH 121/162] build(deps): bump gatsby from 4.15.2 to 4.19.2 in /docs (#3046) --- docs/package-lock.json | 3194 +++++++++++++++++++++------------------- docs/package.json | 2 +- 2 files changed, 1717 insertions(+), 1479 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 3e60174bf153..83d5ce8d3543 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -13,7 +13,7 @@ "@emotion/styled": "^11.8.1", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.16", - "gatsby": "^4.15.2", + "gatsby": "^4.19.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", @@ -71,20 +71,20 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "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.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", "engines": { "node": ">=6.9.0" } @@ -160,24 +160,24 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -196,13 +196,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "engines": { @@ -221,17 +221,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", + "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -287,12 +287,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "engines": { "node": ">=6.9.0" } @@ -309,45 +306,45 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -372,11 +369,11 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -401,15 +398,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -438,28 +435,36 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "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.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "engines": { "node": ">=6.9.0" } @@ -492,11 +497,11 @@ } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -505,9 +510,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1087,11 +1092,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1101,9 +1106,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "engines": { "node": ">=6.9.0" } @@ -1787,15 +1792,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", - "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "engines": { @@ -1806,14 +1811,12 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -1824,20 +1827,20 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", "semver": "^6.1.1" }, "peerDependencies": { @@ -1845,11 +1848,11 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" }, "peerDependencies": { @@ -1857,11 +1860,11 @@ } }, "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -1987,13 +1990,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.10.tgz", + "integrity": "sha512-j2HQCJuMbi88QftIb5zlRu3c7PU+sXNnscqsrjqegoGiCgXR569pEdben9vly5QHKL2ilYkfnSwu64zsZo/VYQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-typescript": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2003,9 +2006,9 @@ } }, "node_modules/@babel/plugin-transform-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "engines": { "node": ">=6.9.0" } @@ -2218,13 +2221,13 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -2234,9 +2237,9 @@ } }, "node_modules/@babel/preset-typescript/node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "engines": { "node": ">=6.9.0" } @@ -2265,31 +2268,31 @@ } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", - "@babel/types": "^7.17.0", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2298,11 +2301,12 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2586,20 +2590,18 @@ } }, "node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.0.0.tgz", - "integrity": "sha512-SQc8dL3vx4ZQIz1usRQewn0gRYvSYSoKLcF4rB5f2Uoia6VIZkCpfuzV2+++T/3ttMqxE8Wt7yRgE+s7fE5VaQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.4.0.tgz", + "integrity": "sha512-oXhiaPtYTGYqGZlazYRUabWVHWx5z6sAyBVLhUnpsKcBsK815cET+mjeWDKpmvJmFTKHC72Bvy1WIEnW3++YxA==", "dependencies": { "@babel/runtime": "^7.18.0", - "@parcel/plugin": "2.5.0", - "gatsby-core-utils": "^3.15.0" + "@parcel/namer-default": "2.6.2", + "@parcel/plugin": "2.6.2", + "gatsby-core-utils": "^3.19.0" }, "engines": { "node": ">=14.15.0", "parcel": "2.x" - }, - "peerDependencies": { - "@parcel/namer-default": "2.5.0" } }, "node_modules/@gatsbyjs/potrace": { @@ -3052,9 +3054,9 @@ } }, "node_modules/@gatsbyjs/reach-router": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.7.tgz", - "integrity": "sha512-KQ5FvMb4BZUlSo+yQgd4t4WB8vkVPWfKjTpSl+Bx/FZhU6OL4lpwgfX7fXAY/18DogqyJCFiNAjV5eo3rQ5Alw==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.9.tgz", + "integrity": "sha512-/354IaUSM54xb7K/TxpLBJB94iEAJ3P82JD38T8bLnIDWF+uw8+W/82DKnQ7y24FJcKxtVmG43aiDLG88KSuYQ==", "dependencies": { "invariant": "^2.2.3", "prop-types": "^15.6.1", @@ -4237,19 +4239,19 @@ } }, "node_modules/@parcel/bundler-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.5.0.tgz", - "integrity": "sha512-7CJzE17SirCXjcRgBcnqWO/5EOA1raq/3OIKtT4cxbjpDQGHZpjpEEZiMNRpEpdNMxDSlsG8mAkXTYGL2VVWRw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.6.2.tgz", + "integrity": "sha512-XIa3had/MIaTGgRFkHApXwytYs77k4geaNcmlb6nzmAABcYjW1CLYh83Zt0AbzLFsDT9ZcRY3u2UjhNf6efSaw==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4257,14 +4259,14 @@ } }, "node_modules/@parcel/cache": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.5.0.tgz", - "integrity": "sha512-3kOO3cZQv0FAKhrMHGLdb4Qtzpmy78Q6jPN3u8eCY4yqeDTnyQBZvWNHoyCm5WlmL8y6Q6REYMbETLxSH1ggAQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.6.2.tgz", + "integrity": "sha512-hhJ6AsEGybeQZd9c/GYqfcKTgZKQXu3Xih6TlnP3gdR3KZoJOnb40ovHD1yYg4COvfcXThKP1cVJ18J6rcv3IA==", "dependencies": { - "@parcel/fs": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/utils": "2.5.0", - "lmdb": "2.2.4" + "@parcel/fs": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/utils": "2.6.2", + "lmdb": "2.5.2" }, "engines": { "node": ">= 12.0.0" @@ -4274,26 +4276,111 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.5.0" + "@parcel/core": "^2.6.2" } }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@parcel/cache/node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@parcel/cache/node_modules/lmdb": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.4.tgz", - "integrity": "sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", "hasInstallScript": true, "dependencies": { "msgpackr": "^1.5.4", - "nan": "^2.14.2", - "node-gyp-build": "^4.2.3", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2" } }, + "node_modules/@parcel/cache/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, "node_modules/@parcel/codeframe": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.5.0.tgz", - "integrity": "sha512-qafqL8Vu2kr932cCWESoDEEoAeKVi7/xdzTBuhzEJng1AfmRT0rCbt/P4ao3RjiDyozPSjXsHOqM6GDZcto4eQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.6.2.tgz", + "integrity": "sha512-oFlHr6HCaYYsB4SHkU+gn9DKtbzvv3/4NdwMX0/6NAKyYVI7inEsXyPGw2Bbd2ZCFatW9QJZUETF0etvh5AEfQ==", "dependencies": { "chalk": "^4.1.0" }, @@ -4370,15 +4457,15 @@ } }, "node_modules/@parcel/compressor-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.5.0.tgz", - "integrity": "sha512-I5Zs+2f1ue4sTPdfT8BNsLfTZl48sMWLk2Io3elUJjH/SS9kO7ut5ChkuJtt77ZS35m0OF+ZCt3ICTJdnDG8eA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.6.2.tgz", + "integrity": "sha512-P3c8jjV5HVs+fNDjhvq7PtHXNm687nit1iwTS5VAt+ScXKhKBhoIJ56q+9opcw0jnXVjAAgZqcRZ50oAJBGdKw==", "dependencies": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4386,24 +4473,24 @@ } }, "node_modules/@parcel/core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.5.0.tgz", - "integrity": "sha512-dygDmPsfAYJKTnUftcbEzjCik7AAaPbFvJW8ETYz8diyjkAG9y6hvCAZIrJE5pNOjFzg32en4v4UWv8Sqlzl9g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.6.2.tgz", + "integrity": "sha512-JlKS3Ux0ngmdooSBbzQLShHJdsapF9E7TGMo1hFaHRquZip/DaqzvysYrgMJlDuCoLArciq5ei7ZKzGeK9zexA==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/events": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/graph": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/package-manager": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/cache": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/events": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/graph": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/package-manager": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", "abortcontroller-polyfill": "^1.1.9", "base-x": "^3.0.8", "browserslist": "^4.6.6", @@ -4432,9 +4519,9 @@ } }, "node_modules/@parcel/diagnostic": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.5.0.tgz", - "integrity": "sha512-KiMGGRpEV7wl5gjcxBKcgX84a+cG+IEn94gwy5LK3lENR09nuKShqqgKGAmj/17CobJgw1QNP94/H4Md+oxIWg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.6.2.tgz", + "integrity": "sha512-3ODSBkKVihENU763z1/1DhGAWFhYWRxOCOShC72KXp+GFnSgGiBsxclu8NBa/N948Rzp8lqQI8U1nLcKkh0O/w==", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" @@ -4448,9 +4535,9 @@ } }, "node_modules/@parcel/events": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.5.0.tgz", - "integrity": "sha512-Gc2LPwL1H34Ony5MENbKZg7wvCscZ4x9y7Fu92sfbdWpLo3K13hVtsX3TMIIgYt3B7R7OmO8yR880U2T+JfVkQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.6.2.tgz", + "integrity": "sha512-IaCjOeA5ercdFVi1EZOmUHhGfIysmCUgc2Th9hMugSFO0I3GzRsBcAdP6XPfWm+TV6sQ/qZRfdk/drUxoAupnw==", "engines": { "node": ">= 12.0.0" }, @@ -4460,15 +4547,15 @@ } }, "node_modules/@parcel/fs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.5.0.tgz", - "integrity": "sha512-YYr14BWtx/bJ+hu6PPQQ6G/3omOTWgVqEw+UFI3iQH3P6+e0LRXW/Ja1yAcJeepGcTwIP0opnXZBQOm8PBQ2SA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.6.2.tgz", + "integrity": "sha512-mIhqdF3tjgeoIGqW7Nc/xfM2ClID7o8livwUe5lpQEP+ZaIBiMigXs6ckv3WToCACK+3uylrSD2A/HmlhrxMqQ==", "dependencies": { - "@parcel/fs-search": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/fs-search": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", "@parcel/watcher": "^2.0.0", - "@parcel/workers": "2.5.0" + "@parcel/workers": "2.6.2" }, "engines": { "node": ">= 12.0.0" @@ -4478,13 +4565,13 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.5.0" + "@parcel/core": "^2.6.2" } }, "node_modules/@parcel/fs-search": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.5.0.tgz", - "integrity": "sha512-uBONkz9ZCNSOqbPGWJY3MNl+pqBTfvzHH9+4UhzHEHPArvK2oD0+syYPVE60+zGrxybXTESYMCJp4bHvH6Z2hA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.6.2.tgz", + "integrity": "sha512-4STid1zqtGnmGjHD/2TG2g/zPDiCTtE3IAS24QYH3eiUAz2uoKGgEqd2tZbZ2yI96jtCuIhC1bzVu8Hbykls7w==", "dependencies": { "detect-libc": "^1.0.3" }, @@ -4497,11 +4584,11 @@ } }, "node_modules/@parcel/graph": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.5.0.tgz", - "integrity": "sha512-qa2VtG08dJyTaWrxYAkMIlkoDRSPoiqLDNxxHKplkcxAjXBUw0/AkWaz82VO5r1G6jfOj+nM30ajH9uygZYwbw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.6.2.tgz", + "integrity": "sha512-DPH4G/RBFJWayIN2fnhDXqhUw75n7k15YsGzdDKiXuwwz4wMOjoL4cyrI6zOf1SIyh3guRmeTYJ4jjPzwrLYww==", "dependencies": { - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" }, "engines": { @@ -4513,9 +4600,9 @@ } }, "node_modules/@parcel/hash": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.5.0.tgz", - "integrity": "sha512-47JL0XpB7UvIW6Ijf8vv+yVMt9dLvB/lRlBHFmAkmovisueVMVbYD7smxVZnCSehD8UH8BcymKbMzyL5dimgoQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.6.2.tgz", + "integrity": "sha512-tFB+cJU1Wqag6WyJgsmx3nx+xhmjcNZqtWh/MtK1lHNnZdDRk6bjr7SapnygBwruz+SmSt5bbdVThcpk2dRCcA==", "dependencies": { "detect-libc": "^1.0.3", "xxhash-wasm": "^0.4.2" @@ -4529,12 +4616,12 @@ } }, "node_modules/@parcel/logger": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.5.0.tgz", - "integrity": "sha512-pT1L3ceH6trL1N3I3r2HawPjz/PCubOo/Kazu7IeXsMsKVjj1a6AeieZHzkNZIbhiGPtm/cHbBNLz2zTWDLeOA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.6.2.tgz", + "integrity": "sha512-Sz5YGCj1DbEiX0/G8Uw97LLZ0uEK+qtWcRAkHNpJpeMiSqDiRNevxXltz42EcLo+oCh4d4wyiVzwi9mNwzhS/Q==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/events": "2.5.0" + "@parcel/diagnostic": "2.6.2", + "@parcel/events": "2.6.2" }, "engines": { "node": ">= 12.0.0" @@ -4545,9 +4632,9 @@ } }, "node_modules/@parcel/markdown-ansi": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.5.0.tgz", - "integrity": "sha512-ixkNF3KWIqxMlfxTe9Gb2cp/uNmklQev8VEUxujMVxmUfGyQs4859zdJIQlIinabWYhArhsXATkVf3MzCUN6TQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.6.2.tgz", + "integrity": "sha512-N/h9J4eibhc+B+krzvPMzFUWL37GudBIZBa7XSLkcuH6MnYYfh6rrMvhIyyESwk6VkcZNVzAeZrGQqxEs0dHDQ==", "dependencies": { "chalk": "^4.1.0" }, @@ -4624,17 +4711,17 @@ } }, "node_modules/@parcel/namer-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.5.0.tgz", - "integrity": "sha512-ahGQqHJzsWE5Qux8zXMAU+lyNBOl+ZpcOFzRGE2DWOsmAlytsHl7DBVCQvzUyNBFg1/HmIj+7D4efv2kjR7rTg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.6.2.tgz", + "integrity": "sha512-mp7bx/BQaIuohmZP0uE+gAmDBzzH0Yu8F4yCtE611lc6i0mou+nWRhzyKLNC/ieuI8DB3BFh2QQKeTxJn4W0qg==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4642,13 +4729,14 @@ } }, "node_modules/@parcel/node-resolver-core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.5.0.tgz", - "integrity": "sha512-XQvpguiIwQcu75cscLDFOVhjsjuPzXbuMaaZ7XxxUEl0PscIgu/GfKYxTfTruN3cRl+CaQH6qBAMfjLaFng6lQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.6.2.tgz", + "integrity": "sha512-4b2L5QRYlTybvv3+TIRtwg4PPJXy+cRShCBa8eu1K0Fj297Afe8MOZrcVV+RIr2KPMIRXcIJoqDmOhyci/DynA==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/utils": "2.5.0", - "nullthrows": "^1.1.1" + "@parcel/diagnostic": "2.6.2", + "@parcel/utils": "2.6.2", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" }, "engines": { "node": ">= 12.0.0" @@ -4659,20 +4747,20 @@ } }, "node_modules/@parcel/optimizer-terser": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.5.0.tgz", - "integrity": "sha512-PZ3UHBGfjE49/Jloopsd38Hxg4qzsrdepWP53mCuVP7Aw605Y4QtYuB1ho3VV0oXfKQVq+uI7lVIBsuW4K6vqA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.6.2.tgz", + "integrity": "sha512-ZSEVQ3G3zOiVPeHvH+BrHegZybrQj9kWQAaAA92leSqbvf6UaX4xqXbGRg2OttNFtbGYBzIl28Zm4t2SLeUIuA==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1", "terser": "^5.2.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4680,16 +4768,16 @@ } }, "node_modules/@parcel/package-manager": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.5.0.tgz", - "integrity": "sha512-zTuF55/lITUjw9dUU/X0HiF++589xbPXw/zUiG9T6s8BQThLvrxAhYP89S719pw7cTqDimGkTxnIuK+a0djEkg==", - "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.6.2.tgz", + "integrity": "sha512-xGMqTgnwTE3rgzYwUZMKxR8fzmP5iSYz/gj2H8FR3pEmwh/8xCMtNjTSth+hPVGuqgRZ6JxwpfdY/fXdZ61ViQ==", + "dependencies": { + "@parcel/diagnostic": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", "semver": "^5.7.1" }, "engines": { @@ -4700,25 +4788,25 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.5.0" + "@parcel/core": "^2.6.2" } }, "node_modules/@parcel/packager-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.5.0.tgz", - "integrity": "sha512-aJAKOTgXdxO3V9O7+2DCVOtne128WwXmUAOVThnMRo7f3zMVSAR7Mxc9pEsuTzPfj8UBXgFBRfdJUSCgsMxiSw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.6.2.tgz", + "integrity": "sha512-fm5rKWtaExR0W+UEKWivXNPysRFxuBCdskdxDByb1J1JeGMvp7dJElbi8oXDAQM4MnM5EyG7cg47SlMZNTLm4A==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "globals": "^13.2.0", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4726,9 +4814,9 @@ } }, "node_modules/@parcel/packager-js/node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dependencies": { "type-fest": "^0.20.2" }, @@ -4751,15 +4839,15 @@ } }, "node_modules/@parcel/packager-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.5.0.tgz", - "integrity": "sha512-aHV0oogeiqxhxS1lsttw15EvG3DDWK3FV7+F+7hoaAy+xg89K56NTp6j43Jtw9iyU1/HnZRGBE2hF3C7N73oKw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.2.tgz", + "integrity": "sha512-Rl3ZkMtMjb+LEvRowijDD8fibUAS6rWK0/vZQMk9cDNYCP2gCpZayLk0HZIGxneeTbosf/0sbngHq4VeRQOnQA==", "dependencies": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4767,11 +4855,11 @@ } }, "node_modules/@parcel/plugin": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.5.0.tgz", - "integrity": "sha512-obtb6/Gql6YFQ86bdv75A2Noabx8679reFZeyfKKf0L7Lppx4DFQetXwM9XVy7Gx6hJ1Ekm3UMuuIyVJk33YHQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.6.2.tgz", + "integrity": "sha512-wbbWsM23Pr+8xtLSvf+UopXdVYlpKCCx6PuuZaZcKo+9IcDCWoGXD4M8Kkz14qBmkFn5uM00mULUqmVdSibB2w==", "dependencies": { - "@parcel/types": "2.5.0" + "@parcel/types": "2.6.2" }, "engines": { "node": ">= 12.0.0" @@ -4782,16 +4870,16 @@ } }, "node_modules/@parcel/reporter-dev-server": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.5.0.tgz", - "integrity": "sha512-wvxAiW42AxJ3B8jtvowJcP4/cTV8zY48SfKg61YKYu1yUO+TtyJIjHQzDW2XuT34cIGFY97Gr0i+AVu44RyUuQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.6.2.tgz", + "integrity": "sha512-5QtL3ETMFL161jehlIK6rjBM+Pqk5cMhr60s9yLYqE1GY4M4gMj+Act+FXViyM6gmMA38cPxDvUsxTKBYXpFCw==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0" + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4799,16 +4887,16 @@ } }, "node_modules/@parcel/resolver-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.5.0.tgz", - "integrity": "sha512-39PkZpVr/+iYS11u+lA84vIsKm/yisltTVmUjlYsDnExiuV1c8OSbSdYZ3JMx+7CYPE0bWbosX2AGilIwIMWpQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.6.2.tgz", + "integrity": "sha512-Lo5sWb5QkjWvdBr+TdmAF6Mszb/sMldBBatc1osQTkHXCy679VMH+lfyiWxHbwK+F1pmdMeBJpYcMxvrgT8EsA==", "dependencies": { - "@parcel/node-resolver-core": "2.5.0", - "@parcel/plugin": "2.5.0" + "@parcel/node-resolver-core": "2.6.2", + "@parcel/plugin": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4816,16 +4904,16 @@ } }, "node_modules/@parcel/runtime-browser-hmr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.5.0.tgz", - "integrity": "sha512-oPAo8Zf06gXCpt41nyvK7kv2HH1RrHAGgOqttyjStwAFlm5MZKs7BgtJzO58LfJN8g3sMY0cNdG17fB/4f8q6Q==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.6.2.tgz", + "integrity": "sha512-M4X0+7dyfdI6smwGUGjGXb8Ns3HX7ZrTemyq4Gc7zp7P/5gWjR8i9eISz46sXmF9bf01a/4dKZpoCC9un1pH1g==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0" + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4833,17 +4921,17 @@ } }, "node_modules/@parcel/runtime-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.5.0.tgz", - "integrity": "sha512-gPC2PbNAiooULP71wF5twe4raekuXsR1Hw/ahITDoqsZdXHzG3CkoCjYL3CkmBGiKQgMMocCyN1E2oBzAH8Kyw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.6.2.tgz", + "integrity": "sha512-0S3JFwgvs6FmEx2dHta9R0Sfu8vCnFAm4i7Y4efGHtAcTrF2CHjyiz4/hG+RQGJ70eoWW463Q+8qt6EKbkaOBQ==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4851,35 +4939,41 @@ } }, "node_modules/@parcel/runtime-react-refresh": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.5.0.tgz", - "integrity": "sha512-+8RuDKFdFYIQTrXG4MRhG9XqkkYEHn0zxKyOJ/IkDDfSEhY0na+EyhrneFUwIvDX63gLPkxceXAg0gwBqXPK/Q==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.6.2.tgz", + "integrity": "sha512-DJTm5D/tUAGZm0o3ndDOPbKwdYrobuvm4jvkPq31LdEUqVvyuzBAMlqQFHc1yJEJDRRWOIQwQP9Y0NQbJmXFfg==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", + "react-error-overlay": "6.0.9", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/runtime-react-refresh/node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" + }, "node_modules/@parcel/runtime-service-worker": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.5.0.tgz", - "integrity": "sha512-STuDlU0fPXeWpAmbayY7o04F0eHy6FTOFeT5KQ0PTxtdEa3Ey8QInP/NVE52Yv0aVQtesWukGrNEFCERlkbFRw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.6.2.tgz", + "integrity": "sha512-9jV+RwVEeDUI5+eLy8j1tapTNoHHGOY2+JUprcObQkQ8fux7KltQBJWFhpkUdGtz5LTCNXtj9tdycFtS5lmSzg==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4887,9 +4981,9 @@ } }, "node_modules/@parcel/source-map": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.5.tgz", - "integrity": "sha512-DRVlCFKLpqBSIbMxUoVlHgfiv12HTW/U7nnhzw52YgzDVXUX9OA41dXS1PU0pJ1si+D1k8msATUC+AoldN43mg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.0.tgz", + "integrity": "sha512-E7UOEIof2o89LrKk1agSLmwakjigmEdDp1ZaEdsLVEvq63R/bul4Ij5CT+0ZDcijGpl5tnTbQADY9EyYGtjYgQ==", "dependencies": { "detect-libc": "^1.0.3" }, @@ -4898,16 +4992,16 @@ } }, "node_modules/@parcel/transformer-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.5.0.tgz", - "integrity": "sha512-Cp8Ic+Au3OcskCRZszmo47z3bqcZ7rfPv2xZYXpXY2TzEc3IV0bKje57bZektoY8LW9LkYM9iBO/WhkVoT6LIg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.6.2.tgz", + "integrity": "sha512-uhXAMTjE/Q61amflV8qVpb73mj+mIdXIMH0cSks1/gDIAxcgIvWvrE14P4TvY6zJ1q1iRJRIRUN6cFSXqjjLSA==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", - "@swc/helpers": "^0.3.6", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", + "@swc/helpers": "^0.4.2", "browserslist": "^4.6.6", "detect-libc": "^1.0.3", "nullthrows": "^1.1.1", @@ -4916,27 +5010,27 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.5.0" + "@parcel/core": "^2.6.2" } }, "node_modules/@parcel/transformer-json": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.5.0.tgz", - "integrity": "sha512-661sByA7TkR6Lmxt+hqV4h2SAt+7lgc58DzmUYArpEl1fQnMuQuaB0kQeHzi6fDD2+2G6o7EC+DuwBZKa479TA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.6.2.tgz", + "integrity": "sha512-QGcIIvbPF/u10ihYvQhxXqb2QMXWSzcBxJrOSIXIl74TUGrWX05D5LmjDA/rzm/n/kvRnBkFNP60R/smYb8x+Q==", "dependencies": { - "@parcel/plugin": "2.5.0", + "@parcel/plugin": "2.6.2", "json5": "^2.2.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4944,15 +5038,15 @@ } }, "node_modules/@parcel/transformer-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.5.0.tgz", - "integrity": "sha512-I3zjE1u9+Wj90Qqs1V2FTm6iC6SAyOVUthwVZkZey+qbQG/ok682Ez2XjLu7MyQCo9BJNwF/nfOa1hHr3MaJEQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.6.2.tgz", + "integrity": "sha512-CsofYq5g9Zj/FNmhya2R7Xp3WHlzz34mEdN69bds3azRYHCrl/TS33xXcp/9J+74SEIY1Ufh552o1cM3fnSrDQ==", "dependencies": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4960,17 +5054,17 @@ } }, "node_modules/@parcel/transformer-react-refresh-wrap": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.5.0.tgz", - "integrity": "sha512-VPqVBxhTN4OQwcjsdyxrv+smjAm4s6dbSWAplgPwdOITMv+a0tjhhJU37WnRC+xxTrbEqRcOt96JvGOkPb8i7g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.6.2.tgz", + "integrity": "sha512-7EE68ebISz+oAHm64ZJbz6uJQT4aOoB8QiK3PvuY6+RsP7aK4/FEHGM1afW49KrZbP4lWjloEkcJm/88DfBiGw==", "dependencies": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "react-refresh": "^0.9.0" }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.5.0" + "parcel": "^2.6.2" }, "funding": { "type": "opencollective", @@ -4978,29 +5072,29 @@ } }, "node_modules/@parcel/types": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.5.0.tgz", - "integrity": "sha512-bA0fhG6aXSGYEVo5Dt96x6lseUQHeVZVzgmiRdZsvb614Gvx22ItfaKhPmAVbM9vzbObZDHl9l9G2Ovw8Xve4g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.6.2.tgz", + "integrity": "sha512-MV8BFpCIs2jMUvK2RHqzkoiuOQ//JIbrD1zocA2YRW3zuPL/iABvbAABJoXpoPCKikVWOoCWASgBfWQo26VvJQ==", "dependencies": { - "@parcel/cache": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/package-manager": "2.5.0", + "@parcel/cache": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/package-manager": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/workers": "2.5.0", + "@parcel/workers": "2.6.2", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.5.0.tgz", - "integrity": "sha512-kaLGXtQuOOH55KZqXdYDvczhh3mk2eeTVqrrXuuihGjbLKYFlUW2tFDm+5r2s9nCPwTQxOO43ZEOCKSnia+e4w==", - "dependencies": { - "@parcel/codeframe": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/markdown-ansi": "2.5.0", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.6.2.tgz", + "integrity": "sha512-Ug7hpRxjgbY5AopW55nY7MmGMVmwmN+ihfCmxJkBUoESTG/3iq8uME7GjyOgW5DkQc2K7q62i8y8N0wCJT1u4Q==", + "dependencies": { + "@parcel/codeframe": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/markdown-ansi": "2.6.2", "@parcel/source-map": "^2.0.0", "chalk": "^4.1.0" }, @@ -5099,14 +5193,14 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node_modules/@parcel/workers": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.5.0.tgz", - "integrity": "sha512-/Ow5OKJWs+9OzV3Jy4J++VnbNx0j3ls/M1CGVBLiBWyCada9DMtquYoBQ4Sk6Uam50BKkIFYetGOeXPNQyyMjg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.6.2.tgz", + "integrity": "sha512-wBgUjJQm+lDd12fPRUmk09+ujTA9DgwPdqylSFK0OtI/yT6A+2kArUqjp8IwWo2tCJXoMzXBne2XQIWKqMiN4Q==", "dependencies": { - "@parcel/diagnostic": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", "chrome-trace-event": "^1.0.2", "nullthrows": "^1.1.1" }, @@ -5118,7 +5212,7 @@ "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.5.0" + "@parcel/core": "^2.6.2" } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { @@ -5226,9 +5320,9 @@ } }, "node_modules/@swc/helpers": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", - "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", + "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", "dependencies": { "tslib": "^2.4.0" } @@ -5469,9 +5563,9 @@ } }, "node_modules/@types/react": { - "version": "18.0.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz", - "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==", + "version": "18.0.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", + "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -6165,13 +6259,13 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -6212,13 +6306,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6479,12 +6574,12 @@ } }, "node_modules/babel-plugin-remove-graphql-queries": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.15.0.tgz", - "integrity": "sha512-Jkc9DbXWvhtKddEqH0KXtXEQcqQIEBb43+NjRbQam+i1X8v1Dlq3EsWAaxDMLw8Wx3Hsb00CfiQw9z9eXEpb2A==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.19.0.tgz", + "integrity": "sha512-VbxC7aZxdqQA0YiAcTD/djIW+6PP/JVODlRmCiqDyTbtI0zhE/Z6je1maCmC6J2LLBsKxhWT3UYTjRfLofK7sQ==", "dependencies": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.15.0" + "gatsby-core-utils": "^3.19.0" }, "engines": { "node": ">=14.15.0" @@ -6848,25 +6943,30 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bser": { @@ -7067,13 +7167,19 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001307", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", - "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/capital-case": { "version": "1.0.4", @@ -8091,9 +8197,9 @@ } }, "node_modules/create-gatsby": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.15.1.tgz", - "integrity": "sha512-oFZtU5NP5jUa/A/y6p8L2pNkW+BoE0aTPTYbZ+pwQw9sE7MfYeI+t9yNDBA/9qVaaAqUt7104NkQbix/mT1GVw==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.19.0.tgz", + "integrity": "sha512-Esl/qCau3rjpnRkmo31BYOE6l72SJ/5Fq8bF6gmXOf/lnbOh51so8hgRcClfizr1nCihqQQihZn//o4DIgZKeA==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -9522,14 +9628,18 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/delaunator": { @@ -9873,9 +9983,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/electron-to-chromium": { - "version": "1.4.65", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.65.tgz", - "integrity": "sha512-0/d8Skk8sW3FxXP0Dd6MnBlrwx7Qo9cqQec3BlIAlvKnrmS3pHsIbaroEi+nd0kZkGpQ6apMEre7xndzjlEnLw==" + "version": "1.4.207", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.207.tgz", + "integrity": "sha512-piH7MJDJp4rJCduWbVvmUd59AUne1AFBJ8JaRQvk0KzNTSUnZrVXHCZc+eg+CGE4OujkcLJznhGKD6tuAshj5Q==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -10020,30 +10130,33 @@ } }, "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10057,6 +10170,14 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -10467,24 +10588,24 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "engines": { "node": ">=4" @@ -11968,15 +12089,40 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gatsby": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.15.2.tgz", - "integrity": "sha512-3+ZKTLJsCo9wYnpk0cJ9Baf55wMuAmtaBOE8x4Fv76Zbz/P4Iz8voeuGDKhxPQrtxB8LbXBTNKVo/SYDUO0JsA==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.19.2.tgz", + "integrity": "sha512-e39NL+nEi0GPlE62mz66lwllbR4Baof4l/b187df4tLWZhoUU9mY/flohxPHFH4gxXqD2AqGnJsm/jOXsIKO0g==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -11997,8 +12143,9 @@ "@graphql-codegen/typescript-operations": "^2.3.5", "@graphql-tools/code-file-loader": "^7.2.14", "@graphql-tools/load": "^7.5.10", + "@jridgewell/trace-mapping": "^0.3.13", "@nodelib/fs.walk": "^1.2.8", - "@parcel/core": "2.5.0", + "@parcel/core": "2.6.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@types/http-proxy": "^1.17.7", "@typescript-eslint/eslint-plugin": "^4.33.0", @@ -12012,15 +12159,14 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^4.15.0", - "babel-preset-gatsby": "^2.15.0", + "babel-plugin-remove-graphql-queries": "^4.19.0", + "babel-preset-gatsby": "^2.19.0", "better-opn": "^2.1.1", "bluebird": "^3.7.2", - "body-parser": "^1.19.0", "browserslist": "^4.17.5", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", @@ -12042,7 +12188,7 @@ "eslint-plugin-graphql": "^4.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.5.0", "eslint-webpack-plugin": "^2.6.0", "event-source-polyfill": "1.0.25", @@ -12056,20 +12202,20 @@ "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", "fs-extra": "^10.1.0", - "gatsby-cli": "^4.15.1", - "gatsby-core-utils": "^3.15.0", - "gatsby-graphiql-explorer": "^2.15.0", - "gatsby-legacy-polyfills": "^2.15.0", - "gatsby-link": "^4.15.0", - "gatsby-page-utils": "^2.15.0", - "gatsby-parcel-config": "0.6.0", - "gatsby-plugin-page-creator": "^4.15.1", - "gatsby-plugin-typescript": "^4.15.0", - "gatsby-plugin-utils": "^3.9.1", - "gatsby-react-router-scroll": "^5.15.0", - "gatsby-script": "^1.0.1", - "gatsby-telemetry": "^3.15.0", - "gatsby-worker": "^1.15.0", + "gatsby-cli": "^4.19.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-graphiql-explorer": "^2.19.0", + "gatsby-legacy-polyfills": "^2.19.0", + "gatsby-link": "^4.19.1", + "gatsby-page-utils": "^2.19.0", + "gatsby-parcel-config": "0.10.1", + "gatsby-plugin-page-creator": "^4.19.0", + "gatsby-plugin-typescript": "^4.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-react-router-scroll": "^5.19.0", + "gatsby-script": "^1.4.0", + "gatsby-telemetry": "^3.19.0", + "gatsby-worker": "^1.19.0", "glob": "^7.2.3", "globby": "^11.1.0", "got": "^11.8.2", @@ -12077,14 +12223,13 @@ "graphql-compose": "^9.0.7", "graphql-playground-middleware-express": "^1.7.22", "hasha": "^5.2.2", - "http-proxy": "^1.18.1", "invariant": "^2.2.4", "is-relative": "^1.0.0", "is-relative-url": "^3.0.0", "joi": "^17.4.2", "json-loader": "^0.5.7", "latest-version": "5.1.0", - "lmdb": "2.3.10", + "lmdb": "2.5.3", "lodash": "^4.17.21", "md5-file": "^5.0.0", "meant": "^1.0.3", @@ -12096,6 +12241,7 @@ "moment": "^2.29.1", "multer": "^1.4.3", "node-fetch": "^2.6.6", + "node-html-parser": "^5.3.3", "normalize-path": "^3.0.0", "null-loader": "^4.0.1", "opentracing": "^0.14.5", @@ -12121,8 +12267,6 @@ "slugify": "^1.6.1", "socket.io": "3.1.2", "socket.io-client": "3.1.3", - "source-map": "^0.7.3", - "source-map-support": "^0.5.20", "st": "^2.0.0", "stack-trace": "^0.0.10", "string-similarity": "^1.2.2", @@ -12149,7 +12293,7 @@ "node": ">=14.15.0" }, "optionalDependencies": { - "gatsby-sharp": "^0.9.0" + "gatsby-sharp": "^0.13.0" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18.0.0", @@ -12162,9 +12306,9 @@ "integrity": "sha512-v8RdbmSFenNxaifo118utlfdxqvJbBWv7Ygfb0kQm2ZLrW1meu8ARjx3gAZExfSwFmMhyyiUltOvQSVDy0Jrsw==" }, "node_modules/gatsby-cli": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.15.1.tgz", - "integrity": "sha512-PlwcfOYVpG1/YsctnY8M2sNt1wNR46AQD0SKg/lTMdjB/EhBp4jNQNYTEp5eZihOu7Ap98/igM+RMrAUFttj5g==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.19.0.tgz", + "integrity": "sha512-i1B9ktvOECiOZgyKqf0xdYx9bmrIUeZeiK+EOIvIpvFfFUwBmZR6xSHRHYUGX2JVpQiy4QEG25KcPWgF9mYJ3w==", "hasInstallScript": true, "dependencies": { "@babel/code-frame": "^7.14.0", @@ -12175,6 +12319,7 @@ "@babel/runtime": "^7.15.4", "@babel/template": "^7.16.7", "@babel/types": "^7.16.8", + "@jridgewell/trace-mapping": "^0.3.13", "@types/common-tags": "^1.8.1", "better-opn": "^2.1.1", "boxen": "^5.1.2", @@ -12183,13 +12328,13 @@ "common-tags": "^1.8.2", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^2.15.1", + "create-gatsby": "^2.19.0", "envinfo": "^7.8.1", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-telemetry": "^3.15.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-telemetry": "^3.19.0", "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", "joi": "^17.4.2", @@ -12204,7 +12349,6 @@ "resolve-cwd": "^3.0.0", "semver": "^7.3.7", "signal-exit": "^3.0.6", - "source-map": "0.7.3", "stack-trace": "^0.0.10", "strip-ansi": "^6.0.1", "update-notifier": "^5.1.0", @@ -12220,9 +12364,9 @@ } }, "node_modules/gatsby-cli/node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "engines": { "node": ">=6.9.0" } @@ -12388,14 +12532,6 @@ "node": ">=10" } }, - "node_modules/gatsby-cli/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/gatsby-cli/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -12526,42 +12662,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/gatsby-core-utils/node_modules/lmdb": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", - "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", - "hasInstallScript": true, - "dependencies": { - "msgpackr": "^1.5.4", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "5.0.3", - "ordered-binary": "^1.2.4", - "weak-lru-cache": "^1.2.2" - }, - "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "2.5.3", - "@lmdb/lmdb-darwin-x64": "2.5.3", - "@lmdb/lmdb-linux-arm": "2.5.3", - "@lmdb/lmdb-linux-arm64": "2.5.3", - "@lmdb/lmdb-linux-x64": "2.5.3", - "@lmdb/lmdb-win32-x64": "2.5.3" - } - }, - "node_modules/gatsby-core-utils/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/gatsby-core-utils/node_modules/node-gyp-build-optional-packages": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", - "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } - }, "node_modules/gatsby-core-utils/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -12579,9 +12679,9 @@ } }, "node_modules/gatsby-graphiql-explorer": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.15.0.tgz", - "integrity": "sha512-L6hjZtbxKwq8GC6XwuaWb8oUEu0AWL02vKjHqdXp2yYBe7g1FsrWjIaI94fGsNCL4d/3bGfh4IKB9cKx+eVb4g==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.19.0.tgz", + "integrity": "sha512-wOD1LuWaSbCtZ0E9C2HxMBQj67k8kPnlLMr/VfKHgBh0FfvIavIq5vOq5K9zRIkAzSzYVODGEz2NVdbfVK9Bew==", "dependencies": { "@babel/runtime": "^7.15.4" }, @@ -12590,9 +12690,9 @@ } }, "node_modules/gatsby-legacy-polyfills": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.15.0.tgz", - "integrity": "sha512-EC50uFv3rIT1oB9+WxhiEUWg1Bkxxf+FPMTkNUZKMYc9JBtUwbqWOupjDHIYEq0RNAHx2+Qxs9NzbC3nE4P6/Q==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.19.0.tgz", + "integrity": "sha512-WuyN01eiRxhanfnj6UgsCxU+Pxs9B8rtgxbrwXhlEKX+QdAp4XlywDQ8QXvv8i028QDF9h+VnvGlfcZY4tgQrQ==", "dependencies": { "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" @@ -12620,13 +12720,12 @@ } }, "node_modules/gatsby-link": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.15.0.tgz", - "integrity": "sha512-46kP4he6dRGDL78SKTY3uWH8glPr2QuVY9v/4RreC6I3LZqI5Wr3F1kyR/LvLXMcXhszCuNJ4lPIOOltBTeX4Q==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.19.1.tgz", + "integrity": "sha512-LCazIxhPOGHJKJVrr5s3jJHYtmaCnaaHQtW9WS0CWvPkW/zC4rKDXyEn8xDWVYaUnRnXUVDhv4Psp6J+Xqifxg==", "dependencies": { - "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^2.15.0", + "gatsby-page-utils": "^2.19.0", "prop-types": "^15.8.1" }, "engines": { @@ -12639,15 +12738,15 @@ } }, "node_modules/gatsby-page-utils": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.15.0.tgz", - "integrity": "sha512-icy/+uRQH94qLlqO2jlRkYFtttWHpQp+LYrtxuLGyLMOa6hPb6dEoVdKet3vGqq0ahmHPJmU7oQgSLs9w6Flog==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.19.0.tgz", + "integrity": "sha512-eYStV4jQbuEBKhatH3yzWA+lmoydJBCZVg6w2GG38eSsgcj9pdep8oQqyQdGFU3dy/HizWmWCv+wW9FIUoVQsQ==", "dependencies": { "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.15.0", + "gatsby-core-utils": "^3.19.0", "glob": "^7.2.3", "lodash": "^4.17.21", "micromatch": "^4.0.5" @@ -12657,33 +12756,33 @@ } }, "node_modules/gatsby-parcel-config": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.6.0.tgz", - "integrity": "sha512-X9OIegPN2b12dNkhPM/TeeCkvwGki1Ey7jcfRI6zf59xTGStP/BVfOZFMK1bkzR4RKj25YR4Bk6yr11/jgudPg==", - "dependencies": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "^1.0.0", - "@parcel/bundler-default": "2.5.0", - "@parcel/compressor-raw": "2.5.0", - "@parcel/namer-default": "2.5.0", - "@parcel/optimizer-terser": "2.5.0", - "@parcel/packager-js": "2.5.0", - "@parcel/packager-raw": "2.5.0", - "@parcel/reporter-dev-server": "2.5.0", - "@parcel/resolver-default": "2.5.0", - "@parcel/runtime-browser-hmr": "2.5.0", - "@parcel/runtime-js": "2.5.0", - "@parcel/runtime-react-refresh": "2.5.0", - "@parcel/runtime-service-worker": "2.5.0", - "@parcel/transformer-js": "2.5.0", - "@parcel/transformer-json": "2.5.0", - "@parcel/transformer-raw": "2.5.0", - "@parcel/transformer-react-refresh-wrap": "2.5.0" + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.10.1.tgz", + "integrity": "sha512-KY/HgjOKY6LmG78zLATzz/xOMezPfyGeYpwg7YwmCJq+uIEZXlsSFku4uPbFSn9TM7fHNNjojqlPqAwoGjpn7A==", + "dependencies": { + "@gatsbyjs/parcel-namer-relative-to-cwd": "1.4.0", + "@parcel/bundler-default": "2.6.2", + "@parcel/compressor-raw": "2.6.2", + "@parcel/namer-default": "2.6.2", + "@parcel/optimizer-terser": "2.6.2", + "@parcel/packager-js": "2.6.2", + "@parcel/packager-raw": "2.6.2", + "@parcel/reporter-dev-server": "2.6.2", + "@parcel/resolver-default": "2.6.2", + "@parcel/runtime-browser-hmr": "2.6.2", + "@parcel/runtime-js": "2.6.2", + "@parcel/runtime-react-refresh": "2.6.2", + "@parcel/runtime-service-worker": "2.6.2", + "@parcel/transformer-js": "2.6.2", + "@parcel/transformer-json": "2.6.2", + "@parcel/transformer-raw": "2.6.2", + "@parcel/transformer-react-refresh-wrap": "2.6.2" }, "engines": { "parcel": "2.x" }, "peerDependencies": { - "@parcel/core": "2.5.0" + "@parcel/core": "^2.0.0" } }, "node_modules/gatsby-plugin-canonical-urls": { @@ -13130,19 +13229,19 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "node_modules/gatsby-plugin-page-creator": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.15.1.tgz", - "integrity": "sha512-EaaTMbBDjAOLzHp8vZEnZcosfQaV3s7v5iHlIuuH3jpIysgMMEBAgVuBJQK8WkhMsIJKpJhJ44NN6LizIV0SMA==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.19.0.tgz", + "integrity": "sha512-JGclCb2lniTjBdFzoiF0Px9EhVY/3uiWx7mqnvfdVO85VVey5+eCKL60Aqamjovo6C+l/0Uldt4uT1EpNLC3Xw==", "dependencies": { "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-page-utils": "^2.15.0", - "gatsby-plugin-utils": "^3.9.1", - "gatsby-telemetry": "^3.15.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-page-utils": "^2.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-telemetry": "^3.19.0", "globby": "^11.1.0", "lodash": "^4.17.21" }, @@ -13304,9 +13403,9 @@ } }, "node_modules/gatsby-plugin-typescript": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.15.0.tgz", - "integrity": "sha512-2Ul7XndL9fbZG1cltPOU16IabJ5dTvC30WHP06/yze46p66MQx/K6G5Br3c7J0yL7A7tCuLmWtsuwo9+3+Te/Q==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.19.0.tgz", + "integrity": "sha512-f+aC4g/pTkUqFLTHo3OLdPQgdIFcEdoM5i8H4Pph5O4rmFXYHkkQKimRJmAz9cBb6/1wN7IBqI9m4k3AefaAjA==", "dependencies": { "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -13314,7 +13413,7 @@ "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@babel/runtime": "^7.15.4", - "babel-plugin-remove-graphql-queries": "^4.15.0" + "babel-plugin-remove-graphql-queries": "^4.19.0" }, "engines": { "node": ">=14.15.0" @@ -13457,18 +13556,6 @@ "node": ">=12" } }, - "node_modules/gatsby-plugin-utils/node_modules/gatsby-sharp": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", - "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", - "dependencies": { - "@types/sharp": "^0.30.0", - "sharp": "^0.30.3" - }, - "engines": { - "node": ">=14.15.0" - } - }, "node_modules/gatsby-plugin-utils/node_modules/import-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", @@ -13555,9 +13642,9 @@ } }, "node_modules/gatsby-react-router-scroll": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.15.0.tgz", - "integrity": "sha512-Cjn8SVUZxwgkLFjRZ9HVeZECC16yIkMOpy5LGuLl50HBI/fFTO0QAvGgs0/Axh7tTyPeO/EaZr018zJI0ZiQhA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.19.0.tgz", + "integrity": "sha512-tl1E2/ger3Aw5Vb5n53i9wCBePYqb2dBilO05pd6FfgKYJveFidQwGzzOn1F9smdWq+5c3KJSTlKJaNYPwn72w==", "dependencies": { "@babel/runtime": "^7.15.4", "prop-types": "^15.8.1" @@ -14150,9 +14237,9 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/gatsby-script": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.0.1.tgz", - "integrity": "sha512-ib3sEk/mZfAMERQxAfok+YXwxDR0+XLDWaaEJAvFmcHpowuzyVhiLinjspN5FRR8/39C/c3XUE+fi1cqiaNLOw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.4.0.tgz", + "integrity": "sha512-+GmHTAfFq/sQWPvl1E8QvApRfxqqamhdqjFo4YloOQRAlDc+e3nMzTzvgj8z3IWqDqlvEfHMnlvQg60E5ThO/A==", "engines": { "node": ">=14.15.0" }, @@ -14162,10 +14249,9 @@ } }, "node_modules/gatsby-sharp": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", - "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", - "optional": true, + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", + "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", "dependencies": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -14624,9 +14710,9 @@ } }, "node_modules/gatsby-worker": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.15.0.tgz", - "integrity": "sha512-N8vxDaUe12Nzy/so83yVewmkpMVnpFRupHykd/ysd65jMsRGyhsmVt/zAhGMyp0MIbJtORV2NDEU2+kF5beXxQ==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.19.0.tgz", + "integrity": "sha512-E0I51K5+rSpcUkv3wQ17FHZiicLeMH/Hz7p3oxlPCM43pcvsYJTa68Q0MqI1K6XV6Z8Nf48dERKMvHT0PnY4GQ==", "dependencies": { "@babel/core": "^7.15.5", "@babel/runtime": "^7.15.4" @@ -14749,9 +14835,9 @@ } }, "node_modules/gatsby/node_modules/babel-preset-gatsby": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.15.0.tgz", - "integrity": "sha512-NDsRwwYdtTALqgf3HahKTfkPIF4LWeSf5QrZ0zFT6D1pKOGPZxFFLc8Bo6m6VKa73Lx8gxF2DlawGqc9VS2dyw==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.19.0.tgz", + "integrity": "sha512-wjh4lUN1MffsnqHAfRoeOtJFGEObUPR4oxo7fyfx9pZUyqBgXvKXMEoLnwNht5HV5BzT5Xo9dkwNJl0/CNhXHw==", "dependencies": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -14766,8 +14852,8 @@ "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.15.0", - "gatsby-legacy-polyfills": "^2.15.0" + "gatsby-core-utils": "^3.19.0", + "gatsby-legacy-polyfills": "^2.19.0" }, "engines": { "node": ">=14.15.0" @@ -14809,9 +14895,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/gatsby/node_modules/core-js": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", - "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz", + "integrity": "sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -14936,14 +15022,6 @@ "node": ">=10" } }, - "node_modules/gatsby/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/gatsby/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -15611,9 +15689,9 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15631,10 +15709,21 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" }, @@ -15826,6 +15915,14 @@ "space-separated-tokens": "^1.0.0" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, "node_modules/header-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", @@ -15909,19 +16006,6 @@ "node": ">= 0.6" } }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -16574,9 +16658,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -16689,9 +16773,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17092,98 +17179,30 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "node_modules/lmdb": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.3.10.tgz", - "integrity": "sha512-GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", + "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", "hasInstallScript": true, "dependencies": { "msgpackr": "^1.5.4", - "nan": "^2.14.2", "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "^4.3.2", + "node-gyp-build-optional-packages": "5.0.3", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" }, "optionalDependencies": { - "lmdb-darwin-arm64": "2.3.10", - "lmdb-darwin-x64": "2.3.10", - "lmdb-linux-arm": "2.3.10", - "lmdb-linux-arm64": "2.3.10", - "lmdb-linux-x64": "2.3.10", - "lmdb-win32-x64": "2.3.10" + "@lmdb/lmdb-darwin-arm64": "2.5.3", + "@lmdb/lmdb-darwin-x64": "2.5.3", + "@lmdb/lmdb-linux-arm": "2.5.3", + "@lmdb/lmdb-linux-arm64": "2.5.3", + "@lmdb/lmdb-linux-x64": "2.5.3", + "@lmdb/lmdb-win32-x64": "2.5.3" } }, - "node_modules/lmdb-darwin-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.10.tgz", - "integrity": "sha512-LVXbH2MYu7/ZuQ8+P9rv+SwNyBKltxo7vHAGJS94HWyfwnCbKEYER9PImBvNBwzvgtaYk6x0RMX3oor6e6KdDQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/lmdb-darwin-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.10.tgz", - "integrity": "sha512-gAc/1b/FZOb9yVOT+o0huA+hdW82oxLo5r22dFTLoRUFG1JMzxdTjmnW6ONVOHdqC9a5bt3vBCEY3jmXNqV26A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/lmdb-linux-arm": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.10.tgz", - "integrity": "sha512-Rb8+4JjsThuEcJ7GLLwFkCFnoiwv/3hAAbELWITz70buQFF+dCZvCWWgEgmDTxwn5r+wIkdUjmFv4dqqiKQFmQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/lmdb-linux-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.10.tgz", - "integrity": "sha512-Ihr8mdICTK3jA4GXHxrXGK2oekn0mY6zuDSXQDNtyRSH19j3D2Y04A7SEI9S0EP/t5sjKSudYgZbiHDxRCsI5A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/lmdb-linux-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.10.tgz", - "integrity": "sha512-E3l3pDiCA9uvnLf+t3qkmBGRO01dp1EHD0x0g0iRnfpAhV7wYbayJGfG93BUt22Tj3fnq4HDo4dQ6ZWaDI1nuw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/lmdb-win32-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.10.tgz", - "integrity": "sha512-gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node_modules/load-bmfont": { "version": "1.4.1", @@ -18835,7 +18854,8 @@ "node_modules/nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "optional": true }, "node_modules/nanoid": { "version": "3.3.4", @@ -18975,15 +18995,112 @@ } }, "node_modules/node-gyp-build-optional-packages": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.5.tgz", - "integrity": "sha512-5ke7D8SiQsTQL7CkHpfR1tLwfqtKc0KYEmlnkwd40jHCASskZeS98qoZ1qDUns2aUQWikcjidRUs6PM/3iyN/w==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==", "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-optional": "optional.js", "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/node-html-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.3.3.tgz", + "integrity": "sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==", + "dependencies": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, + "node_modules/node-html-parser/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/node-html-parser/node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/node-html-parser/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/node-html-parser/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/node-html-parser/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/node-html-parser/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/node-html-parser/node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -18998,9 +19115,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -19236,12 +19353,12 @@ } }, "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -20845,7 +20962,7 @@ "node_modules/read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "dependencies": { "mute-stream": "~0.0.4" }, @@ -20975,12 +21092,13 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -21017,11 +21135,11 @@ } }, "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", "dependencies": { - "rc": "^1.2.8" + "rc": "1.2.8" }, "engines": { "node": ">=6.0.0" @@ -22561,7 +22679,7 @@ "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "engines": { "node": "*" } @@ -22694,17 +22812,17 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" }, "funding": { @@ -22712,24 +22830,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -22817,7 +22937,7 @@ "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "engines": { "node": ">=0.10.0" } @@ -23752,13 +23872,13 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -24177,6 +24297,31 @@ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -24532,7 +24677,7 @@ "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "node_modules/utility-types": { "version": "3.10.0", @@ -25611,17 +25756,17 @@ } }, "@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.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" }, "@babel/core": { "version": "7.15.5", @@ -25675,21 +25820,21 @@ } }, "@babel/generator": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -25702,13 +25847,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "dependencies": { @@ -25720,17 +25865,17 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", + "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { @@ -25770,12 +25915,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" }, "@babel/helper-explode-assignable-expression": { "version": "7.14.5", @@ -25786,36 +25928,36 @@ } }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.9" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { @@ -25834,11 +25976,11 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { @@ -25857,15 +25999,15 @@ } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-simple-access": { @@ -25885,22 +26027,27 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + }, "@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.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { "version": "7.15.4", @@ -25924,19 +26071,19 @@ } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==" }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.15.4", @@ -26358,17 +26505,17 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", + "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" } } }, @@ -26838,27 +26985,25 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz", - "integrity": "sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz", + "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "semver": "^6.3.0" }, "dependencies": { "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -26866,35 +27011,35 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" } }, "semver": { @@ -26981,19 +27126,19 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.10.tgz", + "integrity": "sha512-j2HQCJuMbi88QftIb5zlRu3c7PU+sXNnscqsrjqegoGiCgXR569pEdben9vly5QHKL2ilYkfnSwu64zsZo/VYQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-typescript": "^7.18.6" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" } } }, @@ -27165,19 +27310,19 @@ } }, "@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" } } }, @@ -27199,38 +27344,39 @@ } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", - "@babel/types": "^7.17.0", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } }, @@ -27450,13 +27596,14 @@ } }, "@gatsbyjs/parcel-namer-relative-to-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.0.0.tgz", - "integrity": "sha512-SQc8dL3vx4ZQIz1usRQewn0gRYvSYSoKLcF4rB5f2Uoia6VIZkCpfuzV2+++T/3ttMqxE8Wt7yRgE+s7fE5VaQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.4.0.tgz", + "integrity": "sha512-oXhiaPtYTGYqGZlazYRUabWVHWx5z6sAyBVLhUnpsKcBsK815cET+mjeWDKpmvJmFTKHC72Bvy1WIEnW3++YxA==", "requires": { "@babel/runtime": "^7.18.0", - "@parcel/plugin": "2.5.0", - "gatsby-core-utils": "^3.15.0" + "@parcel/namer-default": "2.6.2", + "@parcel/plugin": "2.6.2", + "gatsby-core-utils": "^3.19.0" } }, "@gatsbyjs/potrace": { @@ -27808,9 +27955,9 @@ } }, "@gatsbyjs/reach-router": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.7.tgz", - "integrity": "sha512-KQ5FvMb4BZUlSo+yQgd4t4WB8vkVPWfKjTpSl+Bx/FZhU6OL4lpwgfX7fXAY/18DogqyJCFiNAjV5eo3rQ5Alw==", + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@gatsbyjs/reach-router/-/reach-router-1.3.9.tgz", + "integrity": "sha512-/354IaUSM54xb7K/TxpLBJB94iEAJ3P82JD38T8bLnIDWF+uw8+W/82DKnQ7y24FJcKxtVmG43aiDLG88KSuYQ==", "requires": { "invariant": "^2.2.3", "prop-types": "^15.6.1", @@ -28906,46 +29053,93 @@ } }, "@parcel/bundler-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.5.0.tgz", - "integrity": "sha512-7CJzE17SirCXjcRgBcnqWO/5EOA1raq/3OIKtT4cxbjpDQGHZpjpEEZiMNRpEpdNMxDSlsG8mAkXTYGL2VVWRw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.6.2.tgz", + "integrity": "sha512-XIa3had/MIaTGgRFkHApXwytYs77k4geaNcmlb6nzmAABcYjW1CLYh83Zt0AbzLFsDT9ZcRY3u2UjhNf6efSaw==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" } }, "@parcel/cache": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.5.0.tgz", - "integrity": "sha512-3kOO3cZQv0FAKhrMHGLdb4Qtzpmy78Q6jPN3u8eCY4yqeDTnyQBZvWNHoyCm5WlmL8y6Q6REYMbETLxSH1ggAQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.6.2.tgz", + "integrity": "sha512-hhJ6AsEGybeQZd9c/GYqfcKTgZKQXu3Xih6TlnP3gdR3KZoJOnb40ovHD1yYg4COvfcXThKP1cVJ18J6rcv3IA==", "requires": { - "@parcel/fs": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/utils": "2.5.0", - "lmdb": "2.2.4" + "@parcel/fs": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/utils": "2.6.2", + "lmdb": "2.5.2" }, "dependencies": { + "@lmdb/lmdb-darwin-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz", + "integrity": "sha512-+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==", + "optional": true + }, + "@lmdb/lmdb-darwin-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz", + "integrity": "sha512-KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==", + "optional": true + }, + "@lmdb/lmdb-linux-arm": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz", + "integrity": "sha512-5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==", + "optional": true + }, + "@lmdb/lmdb-linux-arm64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz", + "integrity": "sha512-aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==", + "optional": true + }, + "@lmdb/lmdb-linux-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz", + "integrity": "sha512-xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==", + "optional": true + }, + "@lmdb/lmdb-win32-x64": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz", + "integrity": "sha512-zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==", + "optional": true + }, "lmdb": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.2.4.tgz", - "integrity": "sha512-gto+BB2uEob8qRiTlOq+R3uX0YNHsX9mjxj9Sbdue/LIKqu6IlZjrsjKeGyOMquc/474GEqFyX2pdytpydp0rQ==", - "requires": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz", + "integrity": "sha512-V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==", + "requires": { + "@lmdb/lmdb-darwin-arm64": "2.5.2", + "@lmdb/lmdb-darwin-x64": "2.5.2", + "@lmdb/lmdb-linux-arm": "2.5.2", + "@lmdb/lmdb-linux-arm64": "2.5.2", + "@lmdb/lmdb-linux-x64": "2.5.2", + "@lmdb/lmdb-win32-x64": "2.5.2", "msgpackr": "^1.5.4", - "nan": "^2.14.2", - "node-gyp-build": "^4.2.3", + "node-addon-api": "^4.3.0", + "node-gyp-build-optional-packages": "5.0.3", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" } + }, + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" } } }, "@parcel/codeframe": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.5.0.tgz", - "integrity": "sha512-qafqL8Vu2kr932cCWESoDEEoAeKVi7/xdzTBuhzEJng1AfmRT0rCbt/P4ao3RjiDyozPSjXsHOqM6GDZcto4eQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.6.2.tgz", + "integrity": "sha512-oFlHr6HCaYYsB4SHkU+gn9DKtbzvv3/4NdwMX0/6NAKyYVI7inEsXyPGw2Bbd2ZCFatW9QJZUETF0etvh5AEfQ==", "requires": { "chalk": "^4.1.0" }, @@ -28996,32 +29190,32 @@ } }, "@parcel/compressor-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.5.0.tgz", - "integrity": "sha512-I5Zs+2f1ue4sTPdfT8BNsLfTZl48sMWLk2Io3elUJjH/SS9kO7ut5ChkuJtt77ZS35m0OF+ZCt3ICTJdnDG8eA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.6.2.tgz", + "integrity": "sha512-P3c8jjV5HVs+fNDjhvq7PtHXNm687nit1iwTS5VAt+ScXKhKBhoIJ56q+9opcw0jnXVjAAgZqcRZ50oAJBGdKw==", "requires": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" } }, "@parcel/core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.5.0.tgz", - "integrity": "sha512-dygDmPsfAYJKTnUftcbEzjCik7AAaPbFvJW8ETYz8diyjkAG9y6hvCAZIrJE5pNOjFzg32en4v4UWv8Sqlzl9g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.6.2.tgz", + "integrity": "sha512-JlKS3Ux0ngmdooSBbzQLShHJdsapF9E7TGMo1hFaHRquZip/DaqzvysYrgMJlDuCoLArciq5ei7ZKzGeK9zexA==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/events": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/graph": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/package-manager": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/cache": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/events": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/graph": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/package-manager": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", "abortcontroller-polyfill": "^1.1.9", "base-x": "^3.0.8", "browserslist": "^4.6.6", @@ -29042,70 +29236,70 @@ } }, "@parcel/diagnostic": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.5.0.tgz", - "integrity": "sha512-KiMGGRpEV7wl5gjcxBKcgX84a+cG+IEn94gwy5LK3lENR09nuKShqqgKGAmj/17CobJgw1QNP94/H4Md+oxIWg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.6.2.tgz", + "integrity": "sha512-3ODSBkKVihENU763z1/1DhGAWFhYWRxOCOShC72KXp+GFnSgGiBsxclu8NBa/N948Rzp8lqQI8U1nLcKkh0O/w==", "requires": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" } }, "@parcel/events": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.5.0.tgz", - "integrity": "sha512-Gc2LPwL1H34Ony5MENbKZg7wvCscZ4x9y7Fu92sfbdWpLo3K13hVtsX3TMIIgYt3B7R7OmO8yR880U2T+JfVkQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.6.2.tgz", + "integrity": "sha512-IaCjOeA5ercdFVi1EZOmUHhGfIysmCUgc2Th9hMugSFO0I3GzRsBcAdP6XPfWm+TV6sQ/qZRfdk/drUxoAupnw==" }, "@parcel/fs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.5.0.tgz", - "integrity": "sha512-YYr14BWtx/bJ+hu6PPQQ6G/3omOTWgVqEw+UFI3iQH3P6+e0LRXW/Ja1yAcJeepGcTwIP0opnXZBQOm8PBQ2SA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.6.2.tgz", + "integrity": "sha512-mIhqdF3tjgeoIGqW7Nc/xfM2ClID7o8livwUe5lpQEP+ZaIBiMigXs6ckv3WToCACK+3uylrSD2A/HmlhrxMqQ==", "requires": { - "@parcel/fs-search": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/fs-search": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", "@parcel/watcher": "^2.0.0", - "@parcel/workers": "2.5.0" + "@parcel/workers": "2.6.2" } }, "@parcel/fs-search": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.5.0.tgz", - "integrity": "sha512-uBONkz9ZCNSOqbPGWJY3MNl+pqBTfvzHH9+4UhzHEHPArvK2oD0+syYPVE60+zGrxybXTESYMCJp4bHvH6Z2hA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.6.2.tgz", + "integrity": "sha512-4STid1zqtGnmGjHD/2TG2g/zPDiCTtE3IAS24QYH3eiUAz2uoKGgEqd2tZbZ2yI96jtCuIhC1bzVu8Hbykls7w==", "requires": { "detect-libc": "^1.0.3" } }, "@parcel/graph": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.5.0.tgz", - "integrity": "sha512-qa2VtG08dJyTaWrxYAkMIlkoDRSPoiqLDNxxHKplkcxAjXBUw0/AkWaz82VO5r1G6jfOj+nM30ajH9uygZYwbw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-2.6.2.tgz", + "integrity": "sha512-DPH4G/RBFJWayIN2fnhDXqhUw75n7k15YsGzdDKiXuwwz4wMOjoL4cyrI6zOf1SIyh3guRmeTYJ4jjPzwrLYww==", "requires": { - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" } }, "@parcel/hash": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.5.0.tgz", - "integrity": "sha512-47JL0XpB7UvIW6Ijf8vv+yVMt9dLvB/lRlBHFmAkmovisueVMVbYD7smxVZnCSehD8UH8BcymKbMzyL5dimgoQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/hash/-/hash-2.6.2.tgz", + "integrity": "sha512-tFB+cJU1Wqag6WyJgsmx3nx+xhmjcNZqtWh/MtK1lHNnZdDRk6bjr7SapnygBwruz+SmSt5bbdVThcpk2dRCcA==", "requires": { "detect-libc": "^1.0.3", "xxhash-wasm": "^0.4.2" } }, "@parcel/logger": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.5.0.tgz", - "integrity": "sha512-pT1L3ceH6trL1N3I3r2HawPjz/PCubOo/Kazu7IeXsMsKVjj1a6AeieZHzkNZIbhiGPtm/cHbBNLz2zTWDLeOA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.6.2.tgz", + "integrity": "sha512-Sz5YGCj1DbEiX0/G8Uw97LLZ0uEK+qtWcRAkHNpJpeMiSqDiRNevxXltz42EcLo+oCh4d4wyiVzwi9mNwzhS/Q==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/events": "2.5.0" + "@parcel/diagnostic": "2.6.2", + "@parcel/events": "2.6.2" } }, "@parcel/markdown-ansi": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.5.0.tgz", - "integrity": "sha512-ixkNF3KWIqxMlfxTe9Gb2cp/uNmklQev8VEUxujMVxmUfGyQs4859zdJIQlIinabWYhArhsXATkVf3MzCUN6TQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.6.2.tgz", + "integrity": "sha512-N/h9J4eibhc+B+krzvPMzFUWL37GudBIZBa7XSLkcuH6MnYYfh6rrMvhIyyESwk6VkcZNVzAeZrGQqxEs0dHDQ==", "requires": { "chalk": "^4.1.0" }, @@ -29156,70 +29350,71 @@ } }, "@parcel/namer-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.5.0.tgz", - "integrity": "sha512-ahGQqHJzsWE5Qux8zXMAU+lyNBOl+ZpcOFzRGE2DWOsmAlytsHl7DBVCQvzUyNBFg1/HmIj+7D4efv2kjR7rTg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.6.2.tgz", + "integrity": "sha512-mp7bx/BQaIuohmZP0uE+gAmDBzzH0Yu8F4yCtE611lc6i0mou+nWRhzyKLNC/ieuI8DB3BFh2QQKeTxJn4W0qg==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "nullthrows": "^1.1.1" } }, "@parcel/node-resolver-core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.5.0.tgz", - "integrity": "sha512-XQvpguiIwQcu75cscLDFOVhjsjuPzXbuMaaZ7XxxUEl0PscIgu/GfKYxTfTruN3cRl+CaQH6qBAMfjLaFng6lQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.6.2.tgz", + "integrity": "sha512-4b2L5QRYlTybvv3+TIRtwg4PPJXy+cRShCBa8eu1K0Fj297Afe8MOZrcVV+RIr2KPMIRXcIJoqDmOhyci/DynA==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/utils": "2.5.0", - "nullthrows": "^1.1.1" + "@parcel/diagnostic": "2.6.2", + "@parcel/utils": "2.6.2", + "nullthrows": "^1.1.1", + "semver": "^5.7.1" } }, "@parcel/optimizer-terser": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.5.0.tgz", - "integrity": "sha512-PZ3UHBGfjE49/Jloopsd38Hxg4qzsrdepWP53mCuVP7Aw605Y4QtYuB1ho3VV0oXfKQVq+uI7lVIBsuW4K6vqA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.6.2.tgz", + "integrity": "sha512-ZSEVQ3G3zOiVPeHvH+BrHegZybrQj9kWQAaAA92leSqbvf6UaX4xqXbGRg2OttNFtbGYBzIl28Zm4t2SLeUIuA==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1", "terser": "^5.2.0" } }, "@parcel/package-manager": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.5.0.tgz", - "integrity": "sha512-zTuF55/lITUjw9dUU/X0HiF++589xbPXw/zUiG9T6s8BQThLvrxAhYP89S719pw7cTqDimGkTxnIuK+a0djEkg==", - "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.6.2.tgz", + "integrity": "sha512-xGMqTgnwTE3rgzYwUZMKxR8fzmP5iSYz/gj2H8FR3pEmwh/8xCMtNjTSth+hPVGuqgRZ6JxwpfdY/fXdZ61ViQ==", + "requires": { + "@parcel/diagnostic": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", "semver": "^5.7.1" } }, "@parcel/packager-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.5.0.tgz", - "integrity": "sha512-aJAKOTgXdxO3V9O7+2DCVOtne128WwXmUAOVThnMRo7f3zMVSAR7Mxc9pEsuTzPfj8UBXgFBRfdJUSCgsMxiSw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.6.2.tgz", + "integrity": "sha512-fm5rKWtaExR0W+UEKWivXNPysRFxuBCdskdxDByb1J1JeGMvp7dJElbi8oXDAQM4MnM5EyG7cg47SlMZNTLm4A==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", + "@parcel/utils": "2.6.2", "globals": "^13.2.0", "nullthrows": "^1.1.1" }, "dependencies": { "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "requires": { "type-fest": "^0.20.2" } @@ -29232,97 +29427,105 @@ } }, "@parcel/packager-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.5.0.tgz", - "integrity": "sha512-aHV0oogeiqxhxS1lsttw15EvG3DDWK3FV7+F+7hoaAy+xg89K56NTp6j43Jtw9iyU1/HnZRGBE2hF3C7N73oKw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.2.tgz", + "integrity": "sha512-Rl3ZkMtMjb+LEvRowijDD8fibUAS6rWK0/vZQMk9cDNYCP2gCpZayLk0HZIGxneeTbosf/0sbngHq4VeRQOnQA==", "requires": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" } }, "@parcel/plugin": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.5.0.tgz", - "integrity": "sha512-obtb6/Gql6YFQ86bdv75A2Noabx8679reFZeyfKKf0L7Lppx4DFQetXwM9XVy7Gx6hJ1Ekm3UMuuIyVJk33YHQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.6.2.tgz", + "integrity": "sha512-wbbWsM23Pr+8xtLSvf+UopXdVYlpKCCx6PuuZaZcKo+9IcDCWoGXD4M8Kkz14qBmkFn5uM00mULUqmVdSibB2w==", "requires": { - "@parcel/types": "2.5.0" + "@parcel/types": "2.6.2" } }, "@parcel/reporter-dev-server": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.5.0.tgz", - "integrity": "sha512-wvxAiW42AxJ3B8jtvowJcP4/cTV8zY48SfKg61YKYu1yUO+TtyJIjHQzDW2XuT34cIGFY97Gr0i+AVu44RyUuQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.6.2.tgz", + "integrity": "sha512-5QtL3ETMFL161jehlIK6rjBM+Pqk5cMhr60s9yLYqE1GY4M4gMj+Act+FXViyM6gmMA38cPxDvUsxTKBYXpFCw==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0" + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2" } }, "@parcel/resolver-default": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.5.0.tgz", - "integrity": "sha512-39PkZpVr/+iYS11u+lA84vIsKm/yisltTVmUjlYsDnExiuV1c8OSbSdYZ3JMx+7CYPE0bWbosX2AGilIwIMWpQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.6.2.tgz", + "integrity": "sha512-Lo5sWb5QkjWvdBr+TdmAF6Mszb/sMldBBatc1osQTkHXCy679VMH+lfyiWxHbwK+F1pmdMeBJpYcMxvrgT8EsA==", "requires": { - "@parcel/node-resolver-core": "2.5.0", - "@parcel/plugin": "2.5.0" + "@parcel/node-resolver-core": "2.6.2", + "@parcel/plugin": "2.6.2" } }, "@parcel/runtime-browser-hmr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.5.0.tgz", - "integrity": "sha512-oPAo8Zf06gXCpt41nyvK7kv2HH1RrHAGgOqttyjStwAFlm5MZKs7BgtJzO58LfJN8g3sMY0cNdG17fB/4f8q6Q==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.6.2.tgz", + "integrity": "sha512-M4X0+7dyfdI6smwGUGjGXb8Ns3HX7ZrTemyq4Gc7zp7P/5gWjR8i9eISz46sXmF9bf01a/4dKZpoCC9un1pH1g==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0" + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2" } }, "@parcel/runtime-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.5.0.tgz", - "integrity": "sha512-gPC2PbNAiooULP71wF5twe4raekuXsR1Hw/ahITDoqsZdXHzG3CkoCjYL3CkmBGiKQgMMocCyN1E2oBzAH8Kyw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.6.2.tgz", + "integrity": "sha512-0S3JFwgvs6FmEx2dHta9R0Sfu8vCnFAm4i7Y4efGHtAcTrF2CHjyiz4/hG+RQGJ70eoWW463Q+8qt6EKbkaOBQ==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" } }, "@parcel/runtime-react-refresh": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.5.0.tgz", - "integrity": "sha512-+8RuDKFdFYIQTrXG4MRhG9XqkkYEHn0zxKyOJ/IkDDfSEhY0na+EyhrneFUwIvDX63gLPkxceXAg0gwBqXPK/Q==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.6.2.tgz", + "integrity": "sha512-DJTm5D/tUAGZm0o3ndDOPbKwdYrobuvm4jvkPq31LdEUqVvyuzBAMlqQFHc1yJEJDRRWOIQwQP9Y0NQbJmXFfg==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", + "react-error-overlay": "6.0.9", "react-refresh": "^0.9.0" + }, + "dependencies": { + "react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" + } } }, "@parcel/runtime-service-worker": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.5.0.tgz", - "integrity": "sha512-STuDlU0fPXeWpAmbayY7o04F0eHy6FTOFeT5KQ0PTxtdEa3Ey8QInP/NVE52Yv0aVQtesWukGrNEFCERlkbFRw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.6.2.tgz", + "integrity": "sha512-9jV+RwVEeDUI5+eLy8j1tapTNoHHGOY2+JUprcObQkQ8fux7KltQBJWFhpkUdGtz5LTCNXtj9tdycFtS5lmSzg==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "nullthrows": "^1.1.1" } }, "@parcel/source-map": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.0.5.tgz", - "integrity": "sha512-DRVlCFKLpqBSIbMxUoVlHgfiv12HTW/U7nnhzw52YgzDVXUX9OA41dXS1PU0pJ1si+D1k8msATUC+AoldN43mg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.0.tgz", + "integrity": "sha512-E7UOEIof2o89LrKk1agSLmwakjigmEdDp1ZaEdsLVEvq63R/bul4Ij5CT+0ZDcijGpl5tnTbQADY9EyYGtjYgQ==", "requires": { "detect-libc": "^1.0.3" } }, "@parcel/transformer-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.5.0.tgz", - "integrity": "sha512-Cp8Ic+Au3OcskCRZszmo47z3bqcZ7rfPv2xZYXpXY2TzEc3IV0bKje57bZektoY8LW9LkYM9iBO/WhkVoT6LIg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.6.2.tgz", + "integrity": "sha512-uhXAMTjE/Q61amflV8qVpb73mj+mIdXIMH0cSks1/gDIAxcgIvWvrE14P4TvY6zJ1q1iRJRIRUN6cFSXqjjLSA==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/plugin": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/plugin": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/utils": "2.5.0", - "@parcel/workers": "2.5.0", - "@swc/helpers": "^0.3.6", + "@parcel/utils": "2.6.2", + "@parcel/workers": "2.6.2", + "@swc/helpers": "^0.4.2", "browserslist": "^4.6.6", "detect-libc": "^1.0.3", "nullthrows": "^1.1.1", @@ -29331,56 +29534,56 @@ } }, "@parcel/transformer-json": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.5.0.tgz", - "integrity": "sha512-661sByA7TkR6Lmxt+hqV4h2SAt+7lgc58DzmUYArpEl1fQnMuQuaB0kQeHzi6fDD2+2G6o7EC+DuwBZKa479TA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.6.2.tgz", + "integrity": "sha512-QGcIIvbPF/u10ihYvQhxXqb2QMXWSzcBxJrOSIXIl74TUGrWX05D5LmjDA/rzm/n/kvRnBkFNP60R/smYb8x+Q==", "requires": { - "@parcel/plugin": "2.5.0", + "@parcel/plugin": "2.6.2", "json5": "^2.2.0" } }, "@parcel/transformer-raw": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.5.0.tgz", - "integrity": "sha512-I3zjE1u9+Wj90Qqs1V2FTm6iC6SAyOVUthwVZkZey+qbQG/ok682Ez2XjLu7MyQCo9BJNwF/nfOa1hHr3MaJEQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.6.2.tgz", + "integrity": "sha512-CsofYq5g9Zj/FNmhya2R7Xp3WHlzz34mEdN69bds3azRYHCrl/TS33xXcp/9J+74SEIY1Ufh552o1cM3fnSrDQ==", "requires": { - "@parcel/plugin": "2.5.0" + "@parcel/plugin": "2.6.2" } }, "@parcel/transformer-react-refresh-wrap": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.5.0.tgz", - "integrity": "sha512-VPqVBxhTN4OQwcjsdyxrv+smjAm4s6dbSWAplgPwdOITMv+a0tjhhJU37WnRC+xxTrbEqRcOt96JvGOkPb8i7g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.6.2.tgz", + "integrity": "sha512-7EE68ebISz+oAHm64ZJbz6uJQT4aOoB8QiK3PvuY6+RsP7aK4/FEHGM1afW49KrZbP4lWjloEkcJm/88DfBiGw==", "requires": { - "@parcel/plugin": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/plugin": "2.6.2", + "@parcel/utils": "2.6.2", "react-refresh": "^0.9.0" } }, "@parcel/types": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.5.0.tgz", - "integrity": "sha512-bA0fhG6aXSGYEVo5Dt96x6lseUQHeVZVzgmiRdZsvb614Gvx22ItfaKhPmAVbM9vzbObZDHl9l9G2Ovw8Xve4g==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.6.2.tgz", + "integrity": "sha512-MV8BFpCIs2jMUvK2RHqzkoiuOQ//JIbrD1zocA2YRW3zuPL/iABvbAABJoXpoPCKikVWOoCWASgBfWQo26VvJQ==", "requires": { - "@parcel/cache": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/fs": "2.5.0", - "@parcel/package-manager": "2.5.0", + "@parcel/cache": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/fs": "2.6.2", + "@parcel/package-manager": "2.6.2", "@parcel/source-map": "^2.0.0", - "@parcel/workers": "2.5.0", + "@parcel/workers": "2.6.2", "utility-types": "^3.10.0" } }, "@parcel/utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.5.0.tgz", - "integrity": "sha512-kaLGXtQuOOH55KZqXdYDvczhh3mk2eeTVqrrXuuihGjbLKYFlUW2tFDm+5r2s9nCPwTQxOO43ZEOCKSnia+e4w==", - "requires": { - "@parcel/codeframe": "2.5.0", - "@parcel/diagnostic": "2.5.0", - "@parcel/hash": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/markdown-ansi": "2.5.0", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.6.2.tgz", + "integrity": "sha512-Ug7hpRxjgbY5AopW55nY7MmGMVmwmN+ihfCmxJkBUoESTG/3iq8uME7GjyOgW5DkQc2K7q62i8y8N0wCJT1u4Q==", + "requires": { + "@parcel/codeframe": "2.6.2", + "@parcel/diagnostic": "2.6.2", + "@parcel/hash": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/markdown-ansi": "2.6.2", "@parcel/source-map": "^2.0.0", "chalk": "^4.1.0" }, @@ -29447,14 +29650,14 @@ } }, "@parcel/workers": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.5.0.tgz", - "integrity": "sha512-/Ow5OKJWs+9OzV3Jy4J++VnbNx0j3ls/M1CGVBLiBWyCada9DMtquYoBQ4Sk6Uam50BKkIFYetGOeXPNQyyMjg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.6.2.tgz", + "integrity": "sha512-wBgUjJQm+lDd12fPRUmk09+ujTA9DgwPdqylSFK0OtI/yT6A+2kArUqjp8IwWo2tCJXoMzXBne2XQIWKqMiN4Q==", "requires": { - "@parcel/diagnostic": "2.5.0", - "@parcel/logger": "2.5.0", - "@parcel/types": "2.5.0", - "@parcel/utils": "2.5.0", + "@parcel/diagnostic": "2.6.2", + "@parcel/logger": "2.6.2", + "@parcel/types": "2.6.2", + "@parcel/utils": "2.6.2", "chrome-trace-event": "^1.0.2", "nullthrows": "^1.1.1" } @@ -29542,9 +29745,9 @@ } }, "@swc/helpers": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", - "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", + "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", "requires": { "tslib": "^2.4.0" }, @@ -29778,9 +29981,9 @@ } }, "@types/react": { - "version": "18.0.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.10.tgz", - "integrity": "sha512-dIugadZuIPrRzvIEevIu7A1smqOAjkSMv8qOfwPt9Ve6i6JT/FQcCHyk2qIAxwsQNKZt5/oGR0T4z9h2dXRAkg==", + "version": "18.0.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", + "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -30325,13 +30528,13 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } @@ -30357,13 +30560,14 @@ } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "arrify": { @@ -30573,12 +30777,12 @@ } }, "babel-plugin-remove-graphql-queries": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.15.0.tgz", - "integrity": "sha512-Jkc9DbXWvhtKddEqH0KXtXEQcqQIEBb43+NjRbQam+i1X8v1Dlq3EsWAaxDMLw8Wx3Hsb00CfiQw9z9eXEpb2A==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.19.0.tgz", + "integrity": "sha512-VbxC7aZxdqQA0YiAcTD/djIW+6PP/JVODlRmCiqDyTbtI0zhE/Z6je1maCmC6J2LLBsKxhWT3UYTjRfLofK7sQ==", "requires": { "@babel/runtime": "^7.15.4", - "gatsby-core-utils": "^3.15.0" + "gatsby-core-utils": "^3.19.0" } }, "babel-plugin-syntax-object-rest-spread": { @@ -30886,15 +31090,14 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" } }, "bser": { @@ -31057,9 +31260,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001307", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", - "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==" + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==" }, "capital-case": { "version": "1.0.4", @@ -31933,9 +32136,9 @@ } }, "create-gatsby": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.15.1.tgz", - "integrity": "sha512-oFZtU5NP5jUa/A/y6p8L2pNkW+BoE0aTPTYbZ+pwQw9sE7MfYeI+t9yNDBA/9qVaaAqUt7104NkQbix/mT1GVw==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.19.0.tgz", + "integrity": "sha512-Esl/qCau3rjpnRkmo31BYOE6l72SJ/5Fq8bF6gmXOf/lnbOh51so8hgRcClfizr1nCihqQQihZn//o4DIgZKeA==", "requires": { "@babel/runtime": "^7.15.4" } @@ -32970,11 +33173,12 @@ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "delaunator": { @@ -33273,9 +33477,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.4.65", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.65.tgz", - "integrity": "sha512-0/d8Skk8sW3FxXP0Dd6MnBlrwx7Qo9cqQec3BlIAlvKnrmS3pHsIbaroEi+nd0kZkGpQ6apMEre7xndzjlEnLw==" + "version": "1.4.207", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.207.tgz", + "integrity": "sha512-piH7MJDJp4rJCduWbVvmUd59AUne1AFBJ8JaRQvk0KzNTSUnZrVXHCZc+eg+CGE4OujkcLJznhGKD6tuAshj5Q==" }, "emoji-regex": { "version": "8.0.0", @@ -33395,30 +33599,33 @@ } }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, "es-module-lexer": { @@ -33426,6 +33633,14 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -33898,24 +34113,24 @@ } }, "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "dependencies": { "doctrine": { @@ -34820,15 +35035,31 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, "gatsby": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.15.2.tgz", - "integrity": "sha512-3+ZKTLJsCo9wYnpk0cJ9Baf55wMuAmtaBOE8x4Fv76Zbz/P4Iz8voeuGDKhxPQrtxB8LbXBTNKVo/SYDUO0JsA==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-4.19.2.tgz", + "integrity": "sha512-e39NL+nEi0GPlE62mz66lwllbR4Baof4l/b187df4tLWZhoUU9mY/flohxPHFH4gxXqD2AqGnJsm/jOXsIKO0g==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/core": "^7.15.5", @@ -34848,8 +35079,9 @@ "@graphql-codegen/typescript-operations": "^2.3.5", "@graphql-tools/code-file-loader": "^7.2.14", "@graphql-tools/load": "^7.5.10", + "@jridgewell/trace-mapping": "^0.3.13", "@nodelib/fs.walk": "^1.2.8", - "@parcel/core": "2.5.0", + "@parcel/core": "2.6.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "@types/http-proxy": "^1.17.7", "@typescript-eslint/eslint-plugin": "^4.33.0", @@ -34863,15 +35095,14 @@ "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-remove-graphql-queries": "^4.15.0", - "babel-preset-gatsby": "^2.15.0", + "babel-plugin-remove-graphql-queries": "^4.19.0", + "babel-preset-gatsby": "^2.19.0", "better-opn": "^2.1.1", "bluebird": "^3.7.2", - "body-parser": "^1.19.0", "browserslist": "^4.17.5", "cache-manager": "^2.11.1", "chalk": "^4.1.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "common-tags": "^1.8.0", "compression": "^1.7.4", "cookie": "^0.4.1", @@ -34893,7 +35124,7 @@ "eslint-plugin-graphql": "^4.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.5.0", "eslint-webpack-plugin": "^2.6.0", "event-source-polyfill": "1.0.25", @@ -34907,21 +35138,21 @@ "find-cache-dir": "^3.3.2", "fs-exists-cached": "1.0.0", "fs-extra": "^10.1.0", - "gatsby-cli": "^4.15.1", - "gatsby-core-utils": "^3.15.0", - "gatsby-graphiql-explorer": "^2.15.0", - "gatsby-legacy-polyfills": "^2.15.0", - "gatsby-link": "^4.15.0", - "gatsby-page-utils": "^2.15.0", - "gatsby-parcel-config": "0.6.0", - "gatsby-plugin-page-creator": "^4.15.1", - "gatsby-plugin-typescript": "^4.15.0", - "gatsby-plugin-utils": "^3.9.1", - "gatsby-react-router-scroll": "^5.15.0", - "gatsby-script": "^1.0.1", - "gatsby-sharp": "^0.9.0", - "gatsby-telemetry": "^3.15.0", - "gatsby-worker": "^1.15.0", + "gatsby-cli": "^4.19.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-graphiql-explorer": "^2.19.0", + "gatsby-legacy-polyfills": "^2.19.0", + "gatsby-link": "^4.19.1", + "gatsby-page-utils": "^2.19.0", + "gatsby-parcel-config": "0.10.1", + "gatsby-plugin-page-creator": "^4.19.0", + "gatsby-plugin-typescript": "^4.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-react-router-scroll": "^5.19.0", + "gatsby-script": "^1.4.0", + "gatsby-sharp": "^0.13.0", + "gatsby-telemetry": "^3.19.0", + "gatsby-worker": "^1.19.0", "glob": "^7.2.3", "globby": "^11.1.0", "got": "^11.8.2", @@ -34929,14 +35160,13 @@ "graphql-compose": "^9.0.7", "graphql-playground-middleware-express": "^1.7.22", "hasha": "^5.2.2", - "http-proxy": "^1.18.1", "invariant": "^2.2.4", "is-relative": "^1.0.0", "is-relative-url": "^3.0.0", "joi": "^17.4.2", "json-loader": "^0.5.7", "latest-version": "5.1.0", - "lmdb": "2.3.10", + "lmdb": "2.5.3", "lodash": "^4.17.21", "md5-file": "^5.0.0", "meant": "^1.0.3", @@ -34948,6 +35178,7 @@ "moment": "^2.29.1", "multer": "^1.4.3", "node-fetch": "^2.6.6", + "node-html-parser": "^5.3.3", "normalize-path": "^3.0.0", "null-loader": "^4.0.1", "opentracing": "^0.14.5", @@ -34973,8 +35204,6 @@ "slugify": "^1.6.1", "socket.io": "3.1.2", "socket.io-client": "3.1.3", - "source-map": "^0.7.3", - "source-map-support": "^0.5.20", "st": "^2.0.0", "stack-trace": "^0.0.10", "string-similarity": "^1.2.2", @@ -35075,9 +35304,9 @@ } }, "babel-preset-gatsby": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.15.0.tgz", - "integrity": "sha512-NDsRwwYdtTALqgf3HahKTfkPIF4LWeSf5QrZ0zFT6D1pKOGPZxFFLc8Bo6m6VKa73Lx8gxF2DlawGqc9VS2dyw==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.19.0.tgz", + "integrity": "sha512-wjh4lUN1MffsnqHAfRoeOtJFGEObUPR4oxo7fyfx9pZUyqBgXvKXMEoLnwNht5HV5BzT5Xo9dkwNJl0/CNhXHw==", "requires": { "@babel/plugin-proposal-class-properties": "^7.14.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -35092,8 +35321,8 @@ "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.15.0", - "gatsby-legacy-polyfills": "^2.15.0" + "gatsby-core-utils": "^3.19.0", + "gatsby-legacy-polyfills": "^2.19.0" } }, "chalk": { @@ -35119,9 +35348,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "core-js": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", - "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==" + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.24.1.tgz", + "integrity": "sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==" }, "cosmiconfig": { "version": "7.0.1", @@ -35202,11 +35431,6 @@ "lru-cache": "^6.0.0" } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -35246,9 +35470,9 @@ "integrity": "sha512-v8RdbmSFenNxaifo118utlfdxqvJbBWv7Ygfb0kQm2ZLrW1meu8ARjx3gAZExfSwFmMhyyiUltOvQSVDy0Jrsw==" }, "gatsby-cli": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.15.1.tgz", - "integrity": "sha512-PlwcfOYVpG1/YsctnY8M2sNt1wNR46AQD0SKg/lTMdjB/EhBp4jNQNYTEp5eZihOu7Ap98/igM+RMrAUFttj5g==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.19.0.tgz", + "integrity": "sha512-i1B9ktvOECiOZgyKqf0xdYx9bmrIUeZeiK+EOIvIpvFfFUwBmZR6xSHRHYUGX2JVpQiy4QEG25KcPWgF9mYJ3w==", "requires": { "@babel/code-frame": "^7.14.0", "@babel/core": "^7.15.5", @@ -35258,6 +35482,7 @@ "@babel/runtime": "^7.15.4", "@babel/template": "^7.16.7", "@babel/types": "^7.16.8", + "@jridgewell/trace-mapping": "^0.3.13", "@types/common-tags": "^1.8.1", "better-opn": "^2.1.1", "boxen": "^5.1.2", @@ -35266,13 +35491,13 @@ "common-tags": "^1.8.2", "configstore": "^5.0.1", "convert-hrtime": "^3.0.0", - "create-gatsby": "^2.15.1", + "create-gatsby": "^2.19.0", "envinfo": "^7.8.1", "execa": "^5.1.1", "fs-exists-cached": "^1.0.0", "fs-extra": "^10.1.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-telemetry": "^3.15.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-telemetry": "^3.19.0", "hosted-git-info": "^3.0.8", "is-valid-path": "^0.1.1", "joi": "^17.4.2", @@ -35287,7 +35512,6 @@ "resolve-cwd": "^3.0.0", "semver": "^7.3.7", "signal-exit": "^3.0.6", - "source-map": "0.7.3", "stack-trace": "^0.0.10", "strip-ansi": "^6.0.1", "update-notifier": "^5.1.0", @@ -35297,9 +35521,9 @@ }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" }, "ansi-styles": { "version": "4.3.0", @@ -35404,11 +35628,6 @@ "lru-cache": "^6.0.0" } }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -35503,34 +35722,6 @@ "universalify": "^2.0.0" } }, - "lmdb": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", - "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", - "requires": { - "@lmdb/lmdb-darwin-arm64": "2.5.3", - "@lmdb/lmdb-darwin-x64": "2.5.3", - "@lmdb/lmdb-linux-arm": "2.5.3", - "@lmdb/lmdb-linux-arm64": "2.5.3", - "@lmdb/lmdb-linux-x64": "2.5.3", - "@lmdb/lmdb-win32-x64": "2.5.3", - "msgpackr": "^1.5.4", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "5.0.3", - "ordered-binary": "^1.2.4", - "weak-lru-cache": "^1.2.2" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node-gyp-build-optional-packages": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", - "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==" - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -35544,17 +35735,17 @@ } }, "gatsby-graphiql-explorer": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.15.0.tgz", - "integrity": "sha512-L6hjZtbxKwq8GC6XwuaWb8oUEu0AWL02vKjHqdXp2yYBe7g1FsrWjIaI94fGsNCL4d/3bGfh4IKB9cKx+eVb4g==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-2.19.0.tgz", + "integrity": "sha512-wOD1LuWaSbCtZ0E9C2HxMBQj67k8kPnlLMr/VfKHgBh0FfvIavIq5vOq5K9zRIkAzSzYVODGEz2NVdbfVK9Bew==", "requires": { "@babel/runtime": "^7.15.4" } }, "gatsby-legacy-polyfills": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.15.0.tgz", - "integrity": "sha512-EC50uFv3rIT1oB9+WxhiEUWg1Bkxxf+FPMTkNUZKMYc9JBtUwbqWOupjDHIYEq0RNAHx2+Qxs9NzbC3nE4P6/Q==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.19.0.tgz", + "integrity": "sha512-WuyN01eiRxhanfnj6UgsCxU+Pxs9B8rtgxbrwXhlEKX+QdAp4XlywDQ8QXvv8i028QDF9h+VnvGlfcZY4tgQrQ==", "requires": { "@babel/runtime": "^7.15.4", "core-js-compat": "3.9.0" @@ -35577,53 +35768,52 @@ } }, "gatsby-link": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.15.0.tgz", - "integrity": "sha512-46kP4he6dRGDL78SKTY3uWH8glPr2QuVY9v/4RreC6I3LZqI5Wr3F1kyR/LvLXMcXhszCuNJ4lPIOOltBTeX4Q==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-4.19.1.tgz", + "integrity": "sha512-LCazIxhPOGHJKJVrr5s3jJHYtmaCnaaHQtW9WS0CWvPkW/zC4rKDXyEn8xDWVYaUnRnXUVDhv4Psp6J+Xqifxg==", "requires": { - "@babel/runtime": "^7.15.4", "@types/reach__router": "^1.3.10", - "gatsby-page-utils": "^2.15.0", + "gatsby-page-utils": "^2.19.0", "prop-types": "^15.8.1" } }, "gatsby-page-utils": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.15.0.tgz", - "integrity": "sha512-icy/+uRQH94qLlqO2jlRkYFtttWHpQp+LYrtxuLGyLMOa6hPb6dEoVdKet3vGqq0ahmHPJmU7oQgSLs9w6Flog==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-2.19.0.tgz", + "integrity": "sha512-eYStV4jQbuEBKhatH3yzWA+lmoydJBCZVg6w2GG38eSsgcj9pdep8oQqyQdGFU3dy/HizWmWCv+wW9FIUoVQsQ==", "requires": { "@babel/runtime": "^7.15.4", "bluebird": "^3.7.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.15.0", + "gatsby-core-utils": "^3.19.0", "glob": "^7.2.3", "lodash": "^4.17.21", "micromatch": "^4.0.5" } }, "gatsby-parcel-config": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.6.0.tgz", - "integrity": "sha512-X9OIegPN2b12dNkhPM/TeeCkvwGki1Ey7jcfRI6zf59xTGStP/BVfOZFMK1bkzR4RKj25YR4Bk6yr11/jgudPg==", - "requires": { - "@gatsbyjs/parcel-namer-relative-to-cwd": "^1.0.0", - "@parcel/bundler-default": "2.5.0", - "@parcel/compressor-raw": "2.5.0", - "@parcel/namer-default": "2.5.0", - "@parcel/optimizer-terser": "2.5.0", - "@parcel/packager-js": "2.5.0", - "@parcel/packager-raw": "2.5.0", - "@parcel/reporter-dev-server": "2.5.0", - "@parcel/resolver-default": "2.5.0", - "@parcel/runtime-browser-hmr": "2.5.0", - "@parcel/runtime-js": "2.5.0", - "@parcel/runtime-react-refresh": "2.5.0", - "@parcel/runtime-service-worker": "2.5.0", - "@parcel/transformer-js": "2.5.0", - "@parcel/transformer-json": "2.5.0", - "@parcel/transformer-raw": "2.5.0", - "@parcel/transformer-react-refresh-wrap": "2.5.0" + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/gatsby-parcel-config/-/gatsby-parcel-config-0.10.1.tgz", + "integrity": "sha512-KY/HgjOKY6LmG78zLATzz/xOMezPfyGeYpwg7YwmCJq+uIEZXlsSFku4uPbFSn9TM7fHNNjojqlPqAwoGjpn7A==", + "requires": { + "@gatsbyjs/parcel-namer-relative-to-cwd": "1.4.0", + "@parcel/bundler-default": "2.6.2", + "@parcel/compressor-raw": "2.6.2", + "@parcel/namer-default": "2.6.2", + "@parcel/optimizer-terser": "2.6.2", + "@parcel/packager-js": "2.6.2", + "@parcel/packager-raw": "2.6.2", + "@parcel/reporter-dev-server": "2.6.2", + "@parcel/resolver-default": "2.6.2", + "@parcel/runtime-browser-hmr": "2.6.2", + "@parcel/runtime-js": "2.6.2", + "@parcel/runtime-react-refresh": "2.6.2", + "@parcel/runtime-service-worker": "2.6.2", + "@parcel/transformer-js": "2.6.2", + "@parcel/transformer-json": "2.6.2", + "@parcel/transformer-raw": "2.6.2", + "@parcel/transformer-react-refresh-wrap": "2.6.2" } }, "gatsby-plugin-canonical-urls": { @@ -35946,19 +36136,19 @@ } }, "gatsby-plugin-page-creator": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.15.1.tgz", - "integrity": "sha512-EaaTMbBDjAOLzHp8vZEnZcosfQaV3s7v5iHlIuuH3jpIysgMMEBAgVuBJQK8WkhMsIJKpJhJ44NN6LizIV0SMA==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.19.0.tgz", + "integrity": "sha512-JGclCb2lniTjBdFzoiF0Px9EhVY/3uiWx7mqnvfdVO85VVey5+eCKL60Aqamjovo6C+l/0Uldt4uT1EpNLC3Xw==", "requires": { "@babel/runtime": "^7.15.4", "@babel/traverse": "^7.15.4", "@sindresorhus/slugify": "^1.1.2", - "chokidar": "^3.5.2", + "chokidar": "^3.5.3", "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^3.15.0", - "gatsby-page-utils": "^2.15.0", - "gatsby-plugin-utils": "^3.9.1", - "gatsby-telemetry": "^3.15.0", + "gatsby-core-utils": "^3.19.0", + "gatsby-page-utils": "^2.19.0", + "gatsby-plugin-utils": "^3.13.0", + "gatsby-telemetry": "^3.19.0", "globby": "^11.1.0", "lodash": "^4.17.21" } @@ -36074,9 +36264,9 @@ } }, "gatsby-plugin-typescript": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.15.0.tgz", - "integrity": "sha512-2Ul7XndL9fbZG1cltPOU16IabJ5dTvC30WHP06/yze46p66MQx/K6G5Br3c7J0yL7A7tCuLmWtsuwo9+3+Te/Q==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-4.19.0.tgz", + "integrity": "sha512-f+aC4g/pTkUqFLTHo3OLdPQgdIFcEdoM5i8H4Pph5O4rmFXYHkkQKimRJmAz9cBb6/1wN7IBqI9m4k3AefaAjA==", "requires": { "@babel/core": "^7.15.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", @@ -36084,7 +36274,7 @@ "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/preset-typescript": "^7.15.0", "@babel/runtime": "^7.15.4", - "babel-plugin-remove-graphql-queries": "^4.15.0" + "babel-plugin-remove-graphql-queries": "^4.19.0" } }, "gatsby-plugin-utils": { @@ -36179,15 +36369,6 @@ "universalify": "^2.0.0" } }, - "gatsby-sharp": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", - "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", - "requires": { - "@types/sharp": "^0.30.0", - "sharp": "^0.30.3" - } - }, "import-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", @@ -36247,9 +36428,9 @@ } }, "gatsby-react-router-scroll": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.15.0.tgz", - "integrity": "sha512-Cjn8SVUZxwgkLFjRZ9HVeZECC16yIkMOpy5LGuLl50HBI/fFTO0QAvGgs0/Axh7tTyPeO/EaZr018zJI0ZiQhA==", + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-5.19.0.tgz", + "integrity": "sha512-tl1E2/ger3Aw5Vb5n53i9wCBePYqb2dBilO05pd6FfgKYJveFidQwGzzOn1F9smdWq+5c3KJSTlKJaNYPwn72w==", "requires": { "@babel/runtime": "^7.15.4", "prop-types": "^15.8.1" @@ -36676,16 +36857,15 @@ } }, "gatsby-script": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.0.1.tgz", - "integrity": "sha512-ib3sEk/mZfAMERQxAfok+YXwxDR0+XLDWaaEJAvFmcHpowuzyVhiLinjspN5FRR8/39C/c3XUE+fi1cqiaNLOw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gatsby-script/-/gatsby-script-1.4.0.tgz", + "integrity": "sha512-+GmHTAfFq/sQWPvl1E8QvApRfxqqamhdqjFo4YloOQRAlDc+e3nMzTzvgj8z3IWqDqlvEfHMnlvQg60E5ThO/A==", "requires": {} }, "gatsby-sharp": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.9.0.tgz", - "integrity": "sha512-+VNeMILfo+0y5a9IOA+7jBq/nBxY+7gbY3zWAh5B6RyGYTecx7fPTkOBkhGnFrSUhhQ/ZLlnZSceAtJ/y/weKg==", - "optional": true, + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/gatsby-sharp/-/gatsby-sharp-0.13.0.tgz", + "integrity": "sha512-dGuIuWP3rC7hXl/CgkHEY4WQEW+B9Rsg8uo6u+OumuLnLBxD4vTusEIGctVKzlyIxpENEQylQ7w1JKHX9fOy9g==", "requires": { "@types/sharp": "^0.30.0", "sharp": "^0.30.3" @@ -37033,9 +37213,9 @@ } }, "gatsby-worker": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.15.0.tgz", - "integrity": "sha512-N8vxDaUe12Nzy/so83yVewmkpMVnpFRupHykd/ysd65jMsRGyhsmVt/zAhGMyp0MIbJtORV2NDEU2+kF5beXxQ==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/gatsby-worker/-/gatsby-worker-1.19.0.tgz", + "integrity": "sha512-E0I51K5+rSpcUkv3wQ17FHZiicLeMH/Hz7p3oxlPCM43pcvsYJTa68Q0MqI1K6XV6Z8Nf48dERKMvHT0PnY4GQ==", "requires": { "@babel/core": "^7.15.5", "@babel/runtime": "^7.15.4" @@ -37521,9 +37701,9 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" }, "has-cors": { "version": "1.1.0", @@ -37535,10 +37715,18 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.0", @@ -37692,6 +37880,11 @@ "space-separated-tokens": "^1.0.0" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, "header-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", @@ -37771,16 +37964,6 @@ "toidentifier": "1.0.1" } }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, "http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -38234,9 +38417,9 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "requires": { "has-tostringtag": "^1.0.0" } @@ -38312,9 +38495,12 @@ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } }, "is-ssh": { "version": "1.3.3", @@ -38638,60 +38824,30 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "lmdb": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.3.10.tgz", - "integrity": "sha512-GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==", - "requires": { - "lmdb-darwin-arm64": "2.3.10", - "lmdb-darwin-x64": "2.3.10", - "lmdb-linux-arm": "2.3.10", - "lmdb-linux-arm64": "2.3.10", - "lmdb-linux-x64": "2.3.10", - "lmdb-win32-x64": "2.3.10", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.5.3.tgz", + "integrity": "sha512-iBA0cb13CobBSoGJLfZgnrykLlfJipDAnvtf+YwIqqzBEsTeQYsXrHaSBkaHd5wCWeabwrNvhjZoFMUrlo+eLw==", + "requires": { + "@lmdb/lmdb-darwin-arm64": "2.5.3", + "@lmdb/lmdb-darwin-x64": "2.5.3", + "@lmdb/lmdb-linux-arm": "2.5.3", + "@lmdb/lmdb-linux-arm64": "2.5.3", + "@lmdb/lmdb-linux-x64": "2.5.3", + "@lmdb/lmdb-win32-x64": "2.5.3", "msgpackr": "^1.5.4", - "nan": "^2.14.2", "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "^4.3.2", + "node-gyp-build-optional-packages": "5.0.3", "ordered-binary": "^1.2.4", "weak-lru-cache": "^1.2.2" + }, + "dependencies": { + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + } } }, - "lmdb-darwin-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.10.tgz", - "integrity": "sha512-LVXbH2MYu7/ZuQ8+P9rv+SwNyBKltxo7vHAGJS94HWyfwnCbKEYER9PImBvNBwzvgtaYk6x0RMX3oor6e6KdDQ==", - "optional": true - }, - "lmdb-darwin-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.10.tgz", - "integrity": "sha512-gAc/1b/FZOb9yVOT+o0huA+hdW82oxLo5r22dFTLoRUFG1JMzxdTjmnW6ONVOHdqC9a5bt3vBCEY3jmXNqV26A==", - "optional": true - }, - "lmdb-linux-arm": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.10.tgz", - "integrity": "sha512-Rb8+4JjsThuEcJ7GLLwFkCFnoiwv/3hAAbELWITz70buQFF+dCZvCWWgEgmDTxwn5r+wIkdUjmFv4dqqiKQFmQ==", - "optional": true - }, - "lmdb-linux-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.10.tgz", - "integrity": "sha512-Ihr8mdICTK3jA4GXHxrXGK2oekn0mY6zuDSXQDNtyRSH19j3D2Y04A7SEI9S0EP/t5sjKSudYgZbiHDxRCsI5A==", - "optional": true - }, - "lmdb-linux-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.10.tgz", - "integrity": "sha512-E3l3pDiCA9uvnLf+t3qkmBGRO01dp1EHD0x0g0iRnfpAhV7wYbayJGfG93BUt22Tj3fnq4HDo4dQ6ZWaDI1nuw==", - "optional": true - }, - "lmdb-win32-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.10.tgz", - "integrity": "sha512-gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==", - "optional": true - }, "load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -40004,7 +40160,8 @@ "nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "optional": true }, "nanoid": { "version": "3.3.4", @@ -40116,9 +40273,78 @@ "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" }, "node-gyp-build-optional-packages": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.5.tgz", - "integrity": "sha512-5ke7D8SiQsTQL7CkHpfR1tLwfqtKc0KYEmlnkwd40jHCASskZeS98qoZ1qDUns2aUQWikcjidRUs6PM/3iyN/w==" + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz", + "integrity": "sha512-k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==" + }, + "node-html-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.3.3.tgz", + "integrity": "sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw==", + "requires": { + "css-select": "^4.2.1", + "he": "1.2.0" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + } + } }, "node-int64": { "version": "0.4.0", @@ -40131,9 +40357,9 @@ "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==" }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "normalize-package-data": { "version": "2.5.0", @@ -40302,12 +40528,12 @@ } }, "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "object.values": { @@ -41518,7 +41744,7 @@ "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "requires": { "mute-stream": "~0.0.4" } @@ -41623,12 +41849,13 @@ } }, "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -41650,11 +41877,11 @@ } }, "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", "requires": { - "rc": "^1.2.8" + "rc": "1.2.8" } }, "registry-url": { @@ -42910,7 +43137,7 @@ "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" }, "stackframe": { "version": "1.2.0", @@ -43034,36 +43261,38 @@ } }, "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "stringify-entities": { @@ -43131,7 +43360,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==" }, "strip-final-newline": { "version": "2.0.0", @@ -43820,13 +44049,13 @@ "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -44200,6 +44429,15 @@ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -44461,7 +44699,7 @@ "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "utility-types": { "version": "3.10.0", diff --git a/docs/package.json b/docs/package.json index f015d4251b86..0d52261054b2 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,7 +10,7 @@ "@emotion/styled": "^11.8.1", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.16", - "gatsby": "^4.15.2", + "gatsby": "^4.19.2", "gatsby-alias-imports": "^1.0.6", "gatsby-plugin-canonical-urls": "^4.13.0", "gatsby-plugin-catch-links": "^4.17.0", From 15cba447fd0e577f1f60170bb188b5c0eca04dab Mon Sep 17 00:00:00 2001 From: Dreamacro Date: Wed, 3 Aug 2022 16:50:42 +0800 Subject: [PATCH 122/162] gci: add missing `custom-order` setting (#3052) --- pkg/config/linters_settings.go | 1 + pkg/golinters/gci.go | 1 + 2 files changed, 2 insertions(+) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 14bf13cfd804..d4dfcfea8fdb 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -287,6 +287,7 @@ type GciSettings struct { LocalPrefixes string `mapstructure:"local-prefixes"` // Deprecated Sections []string `mapstructure:"sections"` SkipGenerated bool `mapstructure:"skip-generated"` + CustomOrder bool `mapstructure:"custom-order"` } type GocognitSettings struct { diff --git a/pkg/golinters/gci.go b/pkg/golinters/gci.go index 0f719513d794..d07c2126d101 100644 --- a/pkg/golinters/gci.go +++ b/pkg/golinters/gci.go @@ -37,6 +37,7 @@ func NewGci(settings *config.GciSettings) *goanalysis.Linter { rawCfg := gcicfg.YamlConfig{ Cfg: gcicfg.BoolConfig{ SkipGenerated: settings.SkipGenerated, + CustomOrder: settings.CustomOrder, }, SectionStrings: settings.Sections, } From 0ba1388a4194525dfea1e8b91211c49de9d260f2 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Wed, 3 Aug 2022 12:13:50 +0300 Subject: [PATCH 123/162] feat: add usestdlibvars (#3016) --- .golangci.reference.yml | 25 +++++++++++++++++++++++++ go.mod | 1 + go.sum | 2 ++ pkg/config/linters_settings.go | 11 +++++++++++ pkg/golinters/usestdlibvars.go | 33 +++++++++++++++++++++++++++++++++ pkg/lint/lintersdb/manager.go | 6 ++++++ test/testdata/usestdlibvars.go | 13 +++++++++++++ 7 files changed, 91 insertions(+) create mode 100644 pkg/golinters/usestdlibvars.go create mode 100644 test/testdata/usestdlibvars.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 29651c09992e..27123e6414d6 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1669,6 +1669,29 @@ linters-settings: # Default: true begin: false + usestdlibvars: + # Suggest the use of http.MethodXX + # Default: true + http-method: false + # Suggest the use of http.StatusXX + # Default: true + http-status-code: false + # Suggest the use of time.Weekday + # Default: true + time-weekday: true + # Suggest the use of time.Month + # Default: false + time-month: true + # Suggest the use of time.Layout + # Default: false + time-layout: true + # Suggest the use of crypto.Hash + # Default: false + crypto-hash: true + # Suggest the use of pc.DefaultXXPath + # Default: false + default-rpc-path: true + unparam: # Inspect exported functions. # @@ -1934,6 +1957,7 @@ linters: - unconvert - unparam - unused + - usestdlibvars - varcheck - varnamelen - wastedassign @@ -2035,6 +2059,7 @@ linters: - unconvert - unparam - unused + - usestdlibvars - varcheck - varnamelen - wastedassign diff --git a/go.mod b/go.mod index d58286101034..259f16a4829f 100644 --- a/go.mod +++ b/go.mod @@ -74,6 +74,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 + github.com/sashamelentyev/usestdlibvars v1.8.0 github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.6 diff --git a/go.sum b/go.sum index f7a2f59b057b..aefdfdb50238 100644 --- a/go.sum +++ b/go.sum @@ -600,6 +600,8 @@ github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8 github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/sashamelentyev/usestdlibvars v1.8.0 h1:QnWP9IOEuRyYKH+IG0LlQIjuJlc0rfdo4K3/Zh3WRMw= +github.com/sashamelentyev/usestdlibvars v1.8.0/go.mod h1:BFt7b5mSVHaaa26ZupiNRV2ODViQBxZZVhtAxAJRrjs= github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index d4dfcfea8fdb..3c356b40eff5 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -178,6 +178,7 @@ type LintersSettings struct { Thelper ThelperSettings Unparam UnparamSettings Unused StaticCheckSettings + UseStdlibVars UseStdlibVarsSettings Varcheck VarCheckSettings Varnamelen VarnamelenSettings Whitespace WhitespaceSettings @@ -587,6 +588,16 @@ type TenvSettings struct { All bool `mapstructure:"all"` } +type UseStdlibVarsSettings struct { + HTTPMethod bool `mapstructure:"http-method"` + HTTPStatusCode bool `mapstructure:"http-status-code"` + TimeWeekday bool `mapstructure:"time-weekday"` + TimeMonth bool `mapstructure:"time-month"` + TimeLayout bool `mapstructure:"time-layout"` + CryptoHash bool `mapstructure:"crypto-hash"` + DefaultRPCPathFlag bool `mapstructure:"default-rpc-path"` +} + type UnparamSettings struct { CheckExported bool `mapstructure:"check-exported"` Algo string diff --git a/pkg/golinters/usestdlibvars.go b/pkg/golinters/usestdlibvars.go new file mode 100644 index 000000000000..dbb6d953b2b3 --- /dev/null +++ b/pkg/golinters/usestdlibvars.go @@ -0,0 +1,33 @@ +package golinters + +import ( + "github.com/sashamelentyev/usestdlibvars/pkg/analyzer" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewUseStdlibVars(cfg *config.UseStdlibVarsSettings) *goanalysis.Linter { + a := analyzer.New() + + cfgMap := make(map[string]map[string]interface{}) + if cfg != nil { + cfgMap[a.Name] = map[string]interface{}{ + analyzer.HTTPMethodFlag: cfg.HTTPMethod, + analyzer.HTTPStatusCodeFlag: cfg.HTTPStatusCode, + analyzer.TimeWeekdayFlag: cfg.TimeWeekday, + analyzer.TimeMonthFlag: cfg.TimeMonth, + analyzer.TimeLayoutFlag: cfg.TimeLayout, + analyzer.CryptoHashFlag: cfg.CryptoHash, + analyzer.DefaultRPCPathFlag: cfg.DefaultRPCPathFlag, + } + } + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + cfgMap, + ).WithLoadMode(goanalysis.LoadModeSyntax) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 2d5174e54a82..3182e31fa41c 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -164,6 +164,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { thelperCfg *config.ThelperSettings unparamCfg *config.UnparamSettings unusedCfg *config.StaticCheckSettings + usestdlibvars *config.UseStdlibVarsSettings varcheckCfg *config.VarCheckSettings varnamelenCfg *config.VarnamelenSettings whitespaceCfg *config.WhitespaceSettings @@ -767,6 +768,11 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithChangeTypes(). WithURL("https://github.com/dominikh/go-tools/tree/master/unused"), + linter.NewConfig(golinters.NewUseStdlibVars(usestdlibvars)). + WithSince("v1.48.0"). + WithPresets(linter.PresetStyle). + WithURL("https://github.com/sashamelentyev/usestdlibvars"), + linter.NewConfig(golinters.NewVarcheck(varcheckCfg)). WithSince("v1.0.0"). WithLoadForGoAnalysis(). diff --git a/test/testdata/usestdlibvars.go b/test/testdata/usestdlibvars.go new file mode 100644 index 000000000000..c3c4e46324ae --- /dev/null +++ b/test/testdata/usestdlibvars.go @@ -0,0 +1,13 @@ +//golangcitest:args -Eusestdlibvars +package testdata + +import "net/http" + +func _200() { + _ = 200 +} + +func _200_1() { + var w http.ResponseWriter + w.WriteHeader(200) // ERROR `"200" can be replaced by http.StatusOK` +} From 6313fa9a673cbbc339501f077154115254e28509 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Wed, 3 Aug 2022 19:44:19 +0200 Subject: [PATCH 124/162] contextcheck: disable linter (#3050) --- pkg/lint/lintersdb/manager.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 3182e31fa41c..755dfdebe149 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -300,7 +300,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.43.0"). WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). - WithURL("https://github.com/sylvia7788/contextcheck"), + WithURL("https://github.com/sylvia7788/contextcheck"). + WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewCyclop(cyclopCfg)). WithSince("v1.37.0"). From 1557692e59c0db1b6eaa771a5887f9434158683d Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Wed, 3 Aug 2022 20:53:06 +0200 Subject: [PATCH 125/162] feat: go1.19 support (#3037) --- .github/workflows/post-release.yml | 6 ++-- .github/workflows/pr-extra.yml | 6 ++-- .github/workflows/pr.yml | 31 +++++++++++++------ .github/workflows/tag.yml | 12 ++++--- .golangci.reference.yml | 6 ++-- build/Dockerfile | 4 +-- build/Dockerfile.alpine | 4 +-- go.mod | 2 +- .../goanalysis/runner_loadingpackage.go | 10 +++++- .../goanalysis/runner_loadingpackage_ti.go | 21 ------------- .../runner_loadingpackage_ti_go117.go | 20 ------------ pkg/golinters/staticcheck_common.go | 1 + pkg/lint/linter/linter.go | 4 +-- test/linters_test.go | 13 +++----- 14 files changed, 62 insertions(+), 78 deletions(-) delete mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti.go delete mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 9a4da2a1a3f2..91da23b43b00 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -14,8 +14,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). - go-version: 1.18 + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' + go-version: 1.19 - name: Update GitHub action config run: make assets/github-action-config.json diff --git a/.github/workflows/pr-extra.yml b/.github/workflows/pr-extra.yml index 53f705d675c4..1552d4ea194e 100644 --- a/.github/workflows/pr-extra.yml +++ b/.github/workflows/pr-extra.yml @@ -13,8 +13,10 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). - go-version: 1.18 + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' + go-version: 1.19 - name: Run go list run: go list -json -m all > go.list - name: Nancy diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c5ba44d72632..cd3ea3b151f0 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -6,7 +6,7 @@ on: pull_request: env: - GO_VERSION: 1.18 + GO_VERSION: 1.19 jobs: # Check if there any dirty change for go mod tidy @@ -16,7 +16,9 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' go-version: ${{ env.GO_VERSION }} - name: Checkout code uses: actions/checkout@v3 @@ -34,8 +36,11 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). - go-version: ${{ env.GO_VERSION }} + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' +# go-version: ${{ env.GO_VERSION }} # todo(ldez) uncomment after the next release v1.48.0 + go-version: 1.18 - name: lint uses: golangci/golangci-lint-action@v3.2.0 with: @@ -52,7 +57,9 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make.exe test @@ -66,7 +73,9 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make test @@ -77,14 +86,16 @@ jobs: strategy: matrix: golang: - - 1.17 - 1.18 + - 1.19 steps: - uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' go-version: ${{ matrix.golang }} - uses: actions/cache@v3 with: @@ -108,7 +119,9 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' go-version: ${{ env.GO_VERSION }} - name: Check generated files are up to date run: make fast_check_generated diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index 2575bf925ae4..b31c82bbdf73 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -14,8 +14,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). - go-version: 1.18 + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' + go-version: 1.19 - name: Unshallow run: git fetch --prune --unshallow @@ -41,8 +43,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # stable: 'false' # Keep this line to be able to use rc and beta version of Go (ex: 1.18.0-rc1). - go-version: 1.18 + # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). + # https://github.com/actions/setup-go#supported-version-syntax + # stable: 'false' + go-version: 1.19 - name: Unshallow run: git fetch --prune --unshallow diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 27123e6414d6..ab044ff71188 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -68,9 +68,9 @@ run: allow-parallel-runners: false # Define the Go version limit. - # Mainly related to generics support in go1.18. - # Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.17 - go: '1.18' + # Mainly related to generics support since go1.18. + # Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.18 + go: '1.19' # output configuration options diff --git a/build/Dockerfile b/build/Dockerfile index 86c1de1506e2..0bf96710448d 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,5 +1,5 @@ # stage 1 building the code -FROM golang:1.18 as builder +FROM golang:1.19 as builder ARG VERSION ARG SHORT_COMMIT @@ -10,7 +10,7 @@ WORKDIR /golangci RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 -FROM golang:1.18 +FROM golang:1.19 # don't place it into $GOPATH/bin because Drone mounts $GOPATH as volume COPY --from=builder /golangci/golangci-lint /usr/bin/ CMD ["golangci-lint"] diff --git a/build/Dockerfile.alpine b/build/Dockerfile.alpine index a0b15faf71e4..37e97695d1a0 100644 --- a/build/Dockerfile.alpine +++ b/build/Dockerfile.alpine @@ -1,5 +1,5 @@ # stage 1 building the code -FROM golang:1.18-alpine as builder +FROM golang:1.19-alpine as builder ARG VERSION ARG SHORT_COMMIT @@ -15,7 +15,7 @@ RUN apk --no-cache add gcc musl-dev git mercurial RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$VERSION -X main.commit=$SHORT_COMMIT -X main.date=$DATE" -o golangci-lint ./cmd/golangci-lint/main.go # stage 2 -FROM golang:1.18-alpine +FROM golang:1.19-alpine # gcc is required to support cgo; # git and mercurial are needed most times for go get`, etc. # See https://github.com/docker-library/golang/issues/80 diff --git a/go.mod b/go.mod index 259f16a4829f..7c51411e8868 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/golangci/golangci-lint -go 1.18 +go 1.19 require ( 4d63.com/gochecknoglobals v0.1.0 diff --git a/pkg/golinters/goanalysis/runner_loadingpackage.go b/pkg/golinters/goanalysis/runner_loadingpackage.go index 0a9653b8d20c..a5b5cccfeef7 100644 --- a/pkg/golinters/goanalysis/runner_loadingpackage.go +++ b/pkg/golinters/goanalysis/runner_loadingpackage.go @@ -121,7 +121,15 @@ func (lp *loadingPackage) loadFromSource(loadMode LoadMode) error { pkg.IllTyped = true - pkg.TypesInfo = newTypesInfo() + pkg.TypesInfo = &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Instances: make(map[*ast.Ident]types.Instance), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } importer := func(path string) (*types.Package, error) { if path == unsafePkgName { diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti.go deleted file mode 100644 index 798add627074..000000000000 --- a/pkg/golinters/goanalysis/runner_loadingpackage_ti.go +++ /dev/null @@ -1,21 +0,0 @@ -//go:build go1.18 -// +build go1.18 - -package goanalysis - -import ( - "go/ast" - "go/types" -) - -func newTypesInfo() *types.Info { - return &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Instances: make(map[*ast.Ident]types.Instance), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - } -} diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go deleted file mode 100644 index 096ac97c5f07..000000000000 --- a/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go +++ /dev/null @@ -1,20 +0,0 @@ -//go:build go1.17 && !go1.18 -// +build go1.17,!go1.18 - -package goanalysis - -import ( - "go/ast" - "go/types" -) - -func newTypesInfo() *types.Info { - return &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - } -} diff --git a/pkg/golinters/staticcheck_common.go b/pkg/golinters/staticcheck_common.go index 35d473883940..b421d30c1059 100644 --- a/pkg/golinters/staticcheck_common.go +++ b/pkg/golinters/staticcheck_common.go @@ -98,6 +98,7 @@ func staticCheckConfig(settings *config.StaticCheckSettings) *scconfig.Config { } // https://github.com/dominikh/go-tools/blob/9bf17c0388a65710524ba04c2d821469e639fdc2/lintcmd/lint.go#L437-L477 +// //nolint:gocritic // Keep the original source code. func filterAnalyzerNames(analyzers []string, checks []string) map[string]bool { allowedChecks := map[string]bool{} diff --git a/pkg/lint/linter/linter.go b/pkg/lint/linter/linter.go index 01e2196911e0..7d3b2260a519 100644 --- a/pkg/lint/linter/linter.go +++ b/pkg/lint/linter/linter.go @@ -21,8 +21,8 @@ type Noop struct { } func (n Noop) Run(_ context.Context, lintCtx *Context) ([]result.Issue, error) { - lintCtx.Log.Warnf("%s is disabled because of go1.18."+ - " You can track the evolution of the go1.18 support by following the https://github.com/golangci/golangci-lint/issues/2649.", n.name) + lintCtx.Log.Warnf("%s is disabled because of generics."+ + " You can track the evolution of the generics support by following the https://github.com/golangci/golangci-lint/issues/2649.", n.name) return nil, nil } diff --git a/test/linters_test.go b/test/linters_test.go index a5d2a3c0ab7b..9e5d641f5edd 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -312,15 +312,10 @@ func extractRunContextFromComments(t *testing.T, sourcePath string) *runContext require.Failf(t, "invalid prefix of comment line %s", line) } - // TODO(ldez) replace that by strings.Cut when we will drop go1.17 - var before string - var after string - if i := strings.Index(line, " "); i >= 0 { - before = line[:i] - after = strings.TrimSpace(line[i+len(" "):]) - } else { - require.Failf(t, "invalid prefix of comment line %s", line) - } + before, after, found := strings.Cut(line, " ") + require.Truef(t, found, "invalid prefix of comment line %s", line) + + after = strings.TrimSpace(after) switch before { case "//golangcitest:args": From 3ffde13a17071e61d3ab75a6ddd158cf81046d95 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Wed, 3 Aug 2022 19:12:44 -0700 Subject: [PATCH 126/162] dev: remove stable from actions/setup-go (#3055) Co-authored-by: Fernandez Ludovic --- .github/workflows/post-release.yml | 5 +++-- .github/workflows/pr-extra.yml | 5 +++-- .github/workflows/pr.yml | 30 ++++++++++++++++++------------ .github/workflows/tag.yml | 10 ++++++---- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 91da23b43b00..d00c7a095cfd 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -14,9 +14,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: 1.19 - name: Update GitHub action config diff --git a/.github/workflows/pr-extra.yml b/.github/workflows/pr-extra.yml index 1552d4ea194e..2b3016ab5d3d 100644 --- a/.github/workflows/pr-extra.yml +++ b/.github/workflows/pr-extra.yml @@ -13,9 +13,10 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: 1.19 - name: Run go list run: go list -json -m all > go.list diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cd3ea3b151f0..b067e7644034 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -16,9 +16,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ env.GO_VERSION }} - name: Checkout code uses: actions/checkout@v3 @@ -36,9 +37,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 # go-version: ${{ env.GO_VERSION }} # todo(ldez) uncomment after the next release v1.48.0 go-version: 1.18 - name: lint @@ -57,9 +59,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make.exe test @@ -73,9 +76,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI - name: Run tests run: make test @@ -93,9 +97,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ matrix.golang }} - uses: actions/cache@v3 with: @@ -119,9 +124,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: ${{ env.GO_VERSION }} - name: Check generated files are up to date run: make fast_check_generated diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index b31c82bbdf73..c2bb3e6c6047 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -14,9 +14,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: 1.19 - name: Unshallow run: git fetch --prune --unshallow @@ -43,9 +44,10 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - # Keep the following comment to be able to use rc and beta version of Go (ex: 1.18.0-rc.1). # https://github.com/actions/setup-go#supported-version-syntax - # stable: 'false' + # ex: + # - 1.18beta1 -> 1.18.0-beta.1 + # - 1.18rc1 -> 1.18.0-rc.1 go-version: 1.19 - name: Unshallow From 0559b9220bcc3b726041135fca2fd7f26c763a5c Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 4 Aug 2022 10:43:38 +0200 Subject: [PATCH 127/162] build(deps): bump revgrep to HEAD (#3054) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7c51411e8868..84e542c901fd 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca github.com/golangci/misspell v0.3.5 - github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 + github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 github.com/gostaticanalysis/forcetypeassert v0.1.0 diff --git a/go.sum b/go.sum index aefdfdb50238..1c1049c2504d 100644 --- a/go.sum +++ b/go.sum @@ -261,8 +261,8 @@ github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29M github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 h1:SgM7GDZTxtTTQPU84heOxy34iG5Du7F2jcoZnvp+fXI= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= From aeb5860ca84aa6115f8c5b469cec174921350c29 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 4 Aug 2022 11:11:14 +0200 Subject: [PATCH 128/162] build(deps): bump github.com/kisielk/errcheck from 1.6.1 to 1.6.2 (#3059) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 84e542c901fd..ea9f6404b47b 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( github.com/jingyugao/rowserrcheck v1.1.1 github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af github.com/julz/importas v0.1.0 - github.com/kisielk/errcheck v1.6.1 + github.com/kisielk/errcheck v1.6.2 github.com/kulti/thelper v0.6.3 github.com/kunwardeep/paralleltest v1.0.6 github.com/kyoh86/exportloopref v0.1.8 diff --git a/go.sum b/go.sum index 1c1049c2504d..6ad2e3169c2d 100644 --- a/go.sum +++ b/go.sum @@ -389,8 +389,8 @@ github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSX github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.6.1 h1:cErYo+J4SmEjdXZrVXGwLJCE2sB06s23LpkcyWNrT+s= -github.com/kisielk/errcheck v1.6.1/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= +github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= From 2d8fea819e651d384cf47784a5fb9c789cf5bd59 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Thu, 4 Aug 2022 11:19:19 +0200 Subject: [PATCH 129/162] build(deps): bump github.com/daixiang0/gci from 0.6.0 to 0.6.2 (#3058) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ea9f6404b47b..0e4ffe3e2eed 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.6.0 + github.com/daixiang0/gci v0.6.2 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 diff --git a/go.sum b/go.sum index 6ad2e3169c2d..bb8620a1d8f4 100644 --- a/go.sum +++ b/go.sum @@ -132,8 +132,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.6.0 h1:lAQiaHASB8mfRaef9DS/hh7sIPnAQRFlvIJbC58f1Rs= -github.com/daixiang0/gci v0.6.0/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.6.2 h1:TXCP5RqjE/UupXO+p33MEhqdv7QxjKGw5MVkt9ATiMs= +github.com/daixiang0/gci v0.6.2/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= From 0a884a44bd2e048d0d6a86d40b3941ab3265c5f3 Mon Sep 17 00:00:00 2001 From: golangci-releaser <65486276+golangci-releaser@users.noreply.github.com> Date: Thu, 4 Aug 2022 23:28:12 +0300 Subject: [PATCH 130/162] docs: Update documentation and assets (#3062) Co-authored-by: Fernandez Ludovic --- CHANGELOG.md | 17 +++++ README.md | 124 ++++++++++++++++--------------- assets/github-action-config.json | 8 +- docs/template_data.state | 2 +- 4 files changed, 87 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec8163512758..daa5cdf4be4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,23 @@ Follow the news and releases on our [twitter](https://twitter.com/golangci) and our [blog](https://medium.com/golangci). There is the most valuable changes log: +### v1.48.0 + +1. new linters + * `usestdlibvars`:https://github.com/sashamelentyev/usestdlibvars +2. updated linters + * `contextcheck`: disable linter + * `errcheck`: from 1.6.1 to 1.6.2 + * `gci`: add missing `custom-order` setting + * `gci`: from 0.5.0 to 0.6.0 + * `ifshort`: deprecate linter + * `nolint`: drop allow-leading-space option and add "nolint:all" + * `revgrep`: bump to HEAD +3. documentation + * remove outdated info on source install +4. misc + * go1.19 support + ### v1.47.3 1. updated linters: diff --git a/README.md b/README.md index f4537157da32..79952cd8e93e 100644 --- a/README.md +++ b/README.md @@ -77,15 +77,15 @@ The Core Team has the following responsibilities:
@iwankgb

Andrew Shannon Brown

sivchari
+
@golangci-releaser

Ryan Currah

Pierre Durand
-
@golangci-releaser

Denis Tingaikin

Sebastien Rosset
-
Sasha Melentyev

Marat Reymers
+
Sasha Melentyev

David Lobe

Alexey Palazhchenko

Duco van Amstel
@@ -111,7 +111,7 @@ The Core Team has the following responsibilities:
-And 323 more our team members +And 325 more our team members @@ -119,25 +119,25 @@ The Core Team has the following responsibilities: + - + - + - - + + + - - @@ -188,347 +188,349 @@ The Core Team has the following responsibilities: + - + - + - + + + + + - - - - - + + - - - + + + - + - - + + - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - + + - - + + - - + + - - + + - - + +

@leonklingele

Soichiro Kashima

Lucas Bremgartner

Kir Kolyshkin

Mitsuo Heijo

Tim Heckman

@alingse

@alingse

James

Colin Arnott

Luke Shumaker

Márk Sági-Kazár

Kir Kolyshkin

Ville Skyttä

Ryan Boehning

Gustavo Bazan

Aliaksandr Mianzhynski

Eugene Simonov

Peter Mescalchin

Gustavo Bazan

Aliaksandr Mianzhynski

Aleksey Bakin

Eugene Simonov

Ville Skyttä

Anton Zinovyev

sonatard

Daniel Helfand

Benjamin Wang

Faisal Alam

Alex Collins

Ryo Nakao

Tommy Mühle

@kyoh86

Sebastiaan van Stijn

Sebastiaan van Stijn

@Dominik-K

Craig Silverstein

tdakkota

Bartłomiej Klimczak

ferhat elmas

Denis Limarev

M. Ángel Jimeno

M. Ángel Jimeno

Chris Drew

Teiva Harsanyi

Brian Flad

Chris Suszynski

Kailun Qin

Ariel Mashraki

Denis Isaev

Denis Isaev

Dreamacro

Tom Payne

@fsouza

Ryan Olds

Hiroki Suezawa

Lauris BH

Fabrice

Christoph Blecker

Mateusz Bilski

Benjamin Wang

Ben Ye

lufe

@sg0hsmt

Stephanie Wilde-Hobbs

Cory LaNou

Sindre Røkenes Myren

Cory LaNou

Sindre Røkenes Myren

Jakub Chábek

Vitaly Isaev

Pete Wagner

Shulhan

Renato Suero

Ben Wells

Jonathan Chappelow

Lauris BH

Sven Anderson

Ben Wells

Jonathan Chappelow

Sean McGinnis

Eric Wohltman

Borja Clemente

Borja Clemente

Ethan Reesor

masibw

sylvia

masibw

sylvia

Gianguido Sorà

Derek Perkins

Sonia Hamilton

Berezhnoy Pavel

Henry

Sven Anderson

Aofei Sheng

Aofei Sheng

Maksym Pavlenko

Ivan

@ngehrsitz

John Reese

James Lucktaylor

Dale Hui

Ondrej Fabry

Ondrej Fabry

Kishan B

proton

Ghvst Code

Son Luong Ngoc

Markus

Sebastian Spaink

Andrew Lavery

Andrew Lavery

Tariq Ibrahim

Peter Štibraný

kaixiang zhong

@ced42

David Bariod

Stephen Benjamin

Yuki Okushi

Yuki Okushi

Eldar Rakhimberdin

Toon Schoenmakers

Cezar Sá Espinola

Ben Paxton

Connor Adams

Draven

Eric Jain

Eric Jain

David Cuadrado

Martins Irbe

Craig Furman

Yilong Li

Rodrigo Brito

@techknowlogick

takaya

takaya

Mark Sart

Joshua Rubin

Danil Ovchinnikov

Rafael Franco

@ttys3

Linus Arver

Glen Mailer

Glen Mailer

Ian Howell

Chris K

Grigory Zubankov

@xxpxxxxp

subham sarkar

smantic

Ryan Leung

Ryan Leung

Donal Byrne

Marko

Chris Lewis

David Gleich

Muhammad Ikhsan

Denis Titusov

Terdunov Vyacheslav

Terdunov Vyacheslav

Sean Chittenden

Hui Zhu

@Harsimran1

rinsuki

Anton Antonov

@hn8

Kevin Gillette

Kevin Gillette

Milas Bowman

☃ Elliot Shepherd

@nvartolomei

Martin Etmajer

Fisher Xu

Matthew Poer

Cody Ley-Han

Cody Ley-Han

@pohang

@darklore

@to6ka

@evalexpr

Collin Kreklow

Marcin Owsiany

C.J. Jameson

C.J. Jameson

Jack

paul fisher

@ofw

Rafik Draoui

Miles Delahunty

Ryo Sato

Eric Zimanyi

Eric Zimanyi

Boban Acimovic

Dima

David Hill

Troy Ronda

Jared Allard

Osamu TONOMORI

Bo Liu

Bo Liu

Steven Allen

Colin Arnott

Eran Levy

Roman Leventov

Hugo

Mathias Weber

Naveen

Naveen

Florian Gessner

Oscar

Michael

Evgeniy Kulikov

Chris Nesbitt-Smith

Daniel Caballero

Igor Zibarev

Igor Zibarev

Carlton Henderson

Shintaro Ikeda

Matt Braymer-Hayes

Tomas Dabasinskas

Tomas Dabasinskas

@xuri

Charl Matthee

Sriram Venkatesh

Sriram Venkatesh

Peter Schuller

David Golub

Alexander Morozov

@hbandura

Liam White

Alex Dupre

Juanito

Juanito

Jinming Yue

@wxdao

Kévin Dunglas

Sijie Yang

Stephen

Thang Minh Vu

Julia Ogris

Julia Ogris

Greg Curtis

@ac-rappi

Dudás Ádám

Abhishek | अभिषेक

Daniele

Takumasa Sakao

Ben Drucker

Ben Drucker

Stephen Brown II

Matthew Cobbing

@Darlez

Kirill Danshin

mook

Kyungmin Bae

Dylan Arbour

Dylan Arbour

Cory Miller

@andreykuchin

Irina

Petr Pučil

Aaron Bennett

失眠是真滴难受

Daniil Suvorov

Daniil Suvorov

Alexandre Vilain

Thirukumaran Vaseeharan

Alessio Treglia

Alay Patel

Martin Hutchinson

Emanuel Bennici

Mayo

Mayo

Matias Lahti

Sebastian Crane

Alexander Else

Vlado Pajić

Fata Nugraha

Christian Clauss

Johanan Liebermann

Johanan Liebermann

Korjavin Ivan

Eng Zer Jun

Mateus Esdras

Hilário Coelho

Tibo Delor

Francois Parquet

Robert Kopaczewski

Robert Kopaczewski

Marc Tudurí

@opennota

Cyrille Meichel

neglect-yp

Felix

Adrien

Joe Bergevin

Joe Bergevin

Guillaume JG

cnmade

@maxsond

Anirudh Sylendranath

@jumpeiMano

Federico Guerinoni

Alex Rodin

Arjen van der Ende

Alex Rodin

Arjen van der Ende

Oliver Gugger

Devin Gunay

Wei Jian Gan

Tamás Gulácsi

Jack Wilsdon

Michał Suchwałko

Alexander Apalikov

Michał Suchwałko

Alexander Apalikov

Domas Tamašauskas

Stéphane Chausson

neo_sli

@srdhoni

@derekhuizhang

le0tk0k

Sean Schneeweiss

le0tk0k

Sean Schneeweiss

@connorszczepaniak-wk

pprzekwas

@madflow

Axetroy

Arman Tarkhanian

John Adler

@licraft2019

John Adler

@licraft2019

@mlueckest

Lucas Ramage

@malteehrlen

@golangaccount

Thomas Bonfort

Matthieu MOREL

Egor Kovetskiy

Matthieu MOREL

Egor Kovetskiy

Jared Szechy
diff --git a/assets/github-action-config.json b/assets/github-action-config.json index 4138b92b47fc..958f6a9ab80e 100644 --- a/assets/github-action-config.json +++ b/assets/github-action-config.json @@ -1,8 +1,8 @@ { "MinorVersionToConfig": { "latest": { - "TargetVersion": "v1.47.3", - "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.3/golangci-lint-1.47.3-linux-amd64.tar.gz" + "TargetVersion": "v1.48.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.48.0/golangci-lint-1.48.0-linux-amd64.tar.gz" }, "v1.10": { "Error": "golangci-lint version 'v1.10' isn't supported: we support only v1.14.0 and later versions" @@ -158,6 +158,10 @@ "TargetVersion": "v1.47.3", "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.47.3/golangci-lint-1.47.3-linux-amd64.tar.gz" }, + "v1.48": { + "TargetVersion": "v1.48.0", + "AssetURL": "https://github.com/golangci/golangci-lint/releases/download/v1.48.0/golangci-lint-1.48.0-linux-amd64.tar.gz" + }, "v1.5": { "Error": "golangci-lint version 'v1.5' isn't supported: we support only v1.14.0 and later versions" }, diff --git a/docs/template_data.state b/docs/template_data.state index ab47fd031101..2178c1f4ac46 100755 --- a/docs/template_data.state +++ b/docs/template_data.state @@ -1,2 +1,2 @@ This file stores hash of website templates to trigger Netlify rebuild when something changes, e.g. new linter is added. -7ef40e3c484775acc373c523196db1f8ac0c2ebeaa3db790ee654a7fe418e0c0 \ No newline at end of file +d9c6a823b87fdf3154771a52be914d49b50beecfa1a4f5004f61986ca327f055 \ No newline at end of file From d4fd2db3d5ebcd6456633e211d09b52c6c4c70d3 Mon Sep 17 00:00:00 2001 From: sivchari Date: Fri, 5 Aug 2022 19:42:47 +0900 Subject: [PATCH 131/162] nosnakecase: deprecate linter (#3065) Co-authored-by: Fernandez Ludovic --- pkg/lint/lintersdb/manager.go | 3 ++- test/testdata/nosnakecase.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 755dfdebe149..ff19634c90f5 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -640,7 +640,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewNoSnakeCase()). WithSince("v1.47.0"). WithPresets(linter.PresetStyle). - WithURL("https://github.com/sivchari/nosnakecase"), + WithURL("https://github.com/sivchari/nosnakecase"). + Deprecated("The repository of the linter has been deprecated by the owner.", "v1.48.1", "revive(var-naming)"), linter.NewConfig(golinters.NewNoSprintfHostPort()). WithSince("v1.46.0"). diff --git a/test/testdata/nosnakecase.go b/test/testdata/nosnakecase.go index 05d48a1d9677..d74e20b541ab 100644 --- a/test/testdata/nosnakecase.go +++ b/test/testdata/nosnakecase.go @@ -1,4 +1,4 @@ -//golangcitest:args -Enosnakecase +//golangcitest:args -Enosnakecase --internal-cmd-test package testdata import ( From da3b1496896e2627b505b40285a09716310dcbd9 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Fri, 5 Aug 2022 15:49:22 +0200 Subject: [PATCH 132/162] fix: exit early on run --version (#3067) --- pkg/commands/root.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/commands/root.go b/pkg/commands/root.go index 8ab119608dc7..cc5a78dd8d9a 100644 --- a/pkg/commands/root.go +++ b/pkg/commands/root.go @@ -12,13 +12,14 @@ import ( "github.com/spf13/pflag" "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/logutils" ) func (e *Executor) persistentPreRun(_ *cobra.Command, _ []string) error { if e.cfg.Run.PrintVersion { _, _ = fmt.Fprintf(logutils.StdOut, "golangci-lint has version %s built from %s on %s\n", e.version, e.commit, e.date) - return nil + os.Exit(exitcodes.Success) // a return nil is not enough to stop the process because we are inside the `preRun`. } runtime.GOMAXPROCS(e.cfg.Run.Concurrency) From a813244b519cfd50cef964cde532e580af2fd4d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 Aug 2022 04:57:41 +0200 Subject: [PATCH 133/162] build(deps): bump github.com/shirou/gopsutil/v3 from 3.22.6 to 3.22.7 (#3074) --- go.mod | 4 ++-- go.sum | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 0e4ffe3e2eed..51bb5db6e653 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.6.2 + github.com/daixiang0/gci v0.6.3 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 github.com/fatih/color v1.13.0 @@ -77,7 +77,7 @@ require ( github.com/sashamelentyev/usestdlibvars v1.8.0 github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c - github.com/shirou/gopsutil/v3 v3.22.6 + github.com/shirou/gopsutil/v3 v3.22.7 github.com/sirupsen/logrus v1.9.0 github.com/sivchari/containedctx v1.0.2 github.com/sivchari/tenv v1.7.0 diff --git a/go.sum b/go.sum index bb8620a1d8f4..a27b29d18c29 100644 --- a/go.sum +++ b/go.sum @@ -132,8 +132,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daixiang0/gci v0.6.2 h1:TXCP5RqjE/UupXO+p33MEhqdv7QxjKGw5MVkt9ATiMs= -github.com/daixiang0/gci v0.6.2/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.6.3 h1:wUAqXChk8HbwXn8AfxD9DYSCp9Bpz1L3e6Q4Roe+q9E= +github.com/daixiang0/gci v0.6.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -607,8 +607,8 @@ github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDx github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= -github.com/shirou/gopsutil/v3 v3.22.6 h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ= -github.com/shirou/gopsutil/v3 v3.22.6/go.mod h1:EdIubSnZhbAvBS1yJ7Xi+AShB/hxwLHOMz4MCYz7yMs= +github.com/shirou/gopsutil/v3 v3.22.7 h1:flKnuCMfUUrO+oAvwAd6GKZgnPzr098VA/UJ14nhJd4= +github.com/shirou/gopsutil/v3 v3.22.7/go.mod h1:s648gW4IywYzUfE/KjXxUsqrqx/T2xO5VqOXxONeRfI= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -667,7 +667,6 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= From be10ef26362dd27bee862a793cdc9120766bf4e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 Aug 2022 13:57:17 +0200 Subject: [PATCH 134/162] build(deps): bump github.com/mgechev/revive from 1.2.1 to 1.2.2 (#3075) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 4 ++++ go.mod | 4 ++-- go.sum | 9 ++++--- pkg/config/issues.go | 2 +- pkg/golinters/revive.go | 53 +++++++++-------------------------------- 5 files changed, 22 insertions(+), 50 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index ab044ff71188..a7882daf6326 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1316,6 +1316,10 @@ linters-settings: severity: warning disabled: false arguments: [ 3 ] + # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace + - name: datarace + severity: warning + disabled: false # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit - name: deep-exit severity: warning diff --git a/go.mod b/go.mod index 51bb5db6e653..9f8c0550ddda 100644 --- a/go.mod +++ b/go.mod @@ -61,7 +61,7 @@ require ( github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // v1.0 github.com/mattn/go-colorable v0.1.12 github.com/mbilski/exhaustivestruct v1.2.0 - github.com/mgechev/revive v1.2.1 + github.com/mgechev/revive v1.2.2 github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/go-ps v1.0.0 github.com/moricho/tparallel v0.2.1 @@ -114,7 +114,7 @@ require ( github.com/Masterminds/semver v1.5.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 // indirect + github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/ettle/strcase v0.1.1 // indirect github.com/fatih/structtag v1.2.0 // indirect diff --git a/go.sum b/go.sum index a27b29d18c29..620bc121ff0e 100644 --- a/go.sum +++ b/go.sum @@ -48,7 +48,6 @@ github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0S github.com/Antonboom/nilnil v0.1.1 h1:PHhrh5ANKFWRBh7TdYmyyq2gyT2lotnvFvvFbylF81Q= github.com/Antonboom/nilnil v0.1.1/go.mod h1:L1jBqoWM7AOeTD+tSquifKSesRHs4ZdaxvZR+xdJEaI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -108,8 +107,8 @@ github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cb github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.9 h1:mPP4ucLrf/rKZiIG/a9IPXHGlh8p4CzgpyTy6EEutYk= github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= -github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 h1:tFXjAxje9thrTF4h57Ckik+scJjTWdwAtZqZPtOT48M= -github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4/go.mod h1:W8EnPSQ8Nv4fUjc/v1/8tHFqhuOJXnRub0dTfuAQktU= +github.com/chavacava/garif v0.0.0-20220630083739-93517212f375 h1:E7LT642ysztPWE0dfz43cWOvMiF42DyTRC+eZIaO4yI= +github.com/chavacava/garif v0.0.0-20220630083739-93517212f375/go.mod h1:4m1Rv7xfuwWPNKXlThldNuJvutYM6J95wNuuVmn55To= 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= @@ -460,8 +459,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/revive v1.2.1 h1:GjFml7ZsoR0IrQ2E2YIvWFNS5GPDV7xNwvA5GM1HZC4= -github.com/mgechev/revive v1.2.1/go.mod h1:+Ro3wqY4vakcYNtkBWdZC7dBg1xSB6sp054wWwmeFm0= +github.com/mgechev/revive v1.2.2 h1:Cr79eeJ0xslhV9HjaEIdZLjUXl2zFzSu+Kx5XGjH8xM= +github.com/mgechev/revive v1.2.2/go.mod h1:AqmPmem7b5NU69DdRzn5U6czfv7tzXMjjLmZUlk8xOw= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= diff --git a/pkg/config/issues.go b/pkg/config/issues.go index 0f9ac5f61d83..a56823eed8d7 100644 --- a/pkg/config/issues.go +++ b/pkg/config/issues.go @@ -97,7 +97,7 @@ var DefaultExcludePatterns = []ExcludePattern{ }, { ID: "EXC0015", - Pattern: `should have a package comment, unless it's in another file for this package`, + Pattern: `should have a package comment`, Linter: "revive", Why: "Annoying issue about not having a comment. The rare codebase has such comments", }, diff --git a/pkg/golinters/revive.go b/pkg/golinters/revive.go index 906e1c3ef44d..5c160665f52b 100644 --- a/pkg/golinters/revive.go +++ b/pkg/golinters/revive.go @@ -7,7 +7,6 @@ import ( "go/token" "os" "reflect" - "strings" "sync" "github.com/BurntSushi/toml" @@ -183,7 +182,6 @@ func getReviveConfig(cfg *config.ReviveSettings) (*lint.Config, error) { } normalizeConfig(conf) - ignoreRules(conf) reviveDebugf("revive configuration: %#v", conf) @@ -252,7 +250,7 @@ func safeTomlSlice(r []interface{}) []interface{} { // This element is not exported by revive, so we need copy the code. // Extracted from https://github.com/mgechev/revive/blob/v1.1.4/config/config.go#L15 var defaultRules = []lint.Rule{ - // &rule.VarDeclarationsRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (var-declaration) + &rule.VarDeclarationsRule{}, &rule.PackageCommentsRule{}, &rule.DotImportsRule{}, &rule.BlankImportsRule{}, @@ -260,15 +258,15 @@ var defaultRules = []lint.Rule{ &rule.VarNamingRule{}, &rule.IndentErrorFlowRule{}, &rule.RangeRule{}, - // &rule.ErrorfRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (errorf + &rule.ErrorfRule{}, &rule.ErrorNamingRule{}, &rule.ErrorStringsRule{}, &rule.ReceiverNamingRule{}, &rule.IncrementDecrementRule{}, &rule.ErrorReturnRule{}, - // &rule.UnexportedReturnRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (unexported-return) - // &rule.TimeNamingRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (time-naming) - // &rule.ContextKeysType{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (context-keys-type) + &rule.UnexportedReturnRule{}, + &rule.TimeNamingRule{}, + &rule.ContextKeysType{}, &rule.ContextAsArgumentRule{}, } @@ -289,7 +287,7 @@ var allRules = append([]lint.Rule{ &rule.FlagParamRule{}, &rule.UnnecessaryStmtRule{}, &rule.StructTagRule{}, - // &rule.ModifiesValRecRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (modifies-value-receiver) + &rule.ModifiesValRecRule{}, &rule.ConstantLogicalExprRule{}, &rule.BoolLiteralRule{}, &rule.RedefinesBuiltinIDRule{}, @@ -297,7 +295,7 @@ var allRules = append([]lint.Rule{ &rule.FunctionResultsLimitRule{}, &rule.MaxPublicStructsRule{}, &rule.RangeValInClosureRule{}, - // &rule.RangeValAddress{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (range-val-address) + &rule.RangeValAddress{}, &rule.WaitGroupByValueRule{}, &rule.AtomicRule{}, &rule.EmptyLinesRule{}, @@ -307,9 +305,9 @@ var allRules = append([]lint.Rule{ &rule.ImportShadowingRule{}, &rule.BareReturnRule{}, &rule.UnusedReceiverRule{}, - // &rule.UnhandledErrorRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (unhandled-error) + &rule.UnhandledErrorRule{}, &rule.CognitiveComplexityRule{}, - // &rule.StringOfIntRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (string-of-int) + &rule.StringOfIntRule{}, &rule.StringFormatRule{}, &rule.EarlyReturnRule{}, &rule.UnconditionalRecursionRule{}, @@ -320,9 +318,10 @@ var allRules = append([]lint.Rule{ &rule.NestedStructs{}, &rule.IfReturnRule{}, &rule.UselessBreak{}, - // &rule.TimeEqualRule{}, // TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 (time-equal) + &rule.TimeEqualRule{}, &rule.BannedCharsRule{}, &rule.OptimizeOperandsOrderRule{}, + &rule.DataRaceRule{}, }, defaultRules...) const defaultConfidence = 0.8 @@ -386,33 +385,3 @@ func defaultConfig() *lint.Config { } return &defaultConfig } - -// TODO(ldez) https://github.com/golangci/golangci-lint/issues/2997 -func ignoreRules(conf *lint.Config) { - f := []string{ - "context-keys-type", - "errorf", - "modifies-value-receiver", - "range-val-address", - "string-of-int", - "time-equal", - "time-naming", - "unexported-return", - "unhandled-error", - "var-declaration", - } - - var ignored []string - for _, s := range f { - if _, ok := conf.Rules[s]; ok { - delete(conf.Rules, s) - ignored = append(ignored, s) - } - } - - if len(ignored) > 0 { - linterLogger.Warnf("revive: the following rules (%s) are ignored due to a performance problem "+ - "(https://github.com/golangci/golangci-lint/issues/2997)", - strings.Join(ignored, ",")) - } -} From 7d2648ca3f942beef43a3fd15efcdbc89968e1b4 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sun, 7 Aug 2022 22:23:44 +0300 Subject: [PATCH 135/162] docs: fix typo in usestdlibvars documentation (#3078) --- .golangci.reference.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index a7882daf6326..cb8ffb370d17 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1692,7 +1692,7 @@ linters-settings: # Suggest the use of crypto.Hash # Default: false crypto-hash: true - # Suggest the use of pc.DefaultXXPath + # Suggest the use of rpc.DefaultXXPath # Default: false default-rpc-path: true From 1ca9affe926ed3a50e3fcd8498bab864c07288ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 02:01:56 +0200 Subject: [PATCH 136/162] build(deps): bump github.com/mgechev/revive from 1.2.2 to 1.2.3 (#3091) --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 9f8c0550ddda..17b235046848 100644 --- a/go.mod +++ b/go.mod @@ -61,7 +61,7 @@ require ( github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // v1.0 github.com/mattn/go-colorable v0.1.12 github.com/mbilski/exhaustivestruct v1.2.0 - github.com/mgechev/revive v1.2.2 + github.com/mgechev/revive v1.2.3 github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/go-ps v1.0.0 github.com/moricho/tparallel v0.2.1 diff --git a/go.sum b/go.sum index 620bc121ff0e..bcb44e6f9cb1 100644 --- a/go.sum +++ b/go.sum @@ -458,9 +458,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwgOdMUQePUo= github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= -github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= -github.com/mgechev/revive v1.2.2 h1:Cr79eeJ0xslhV9HjaEIdZLjUXl2zFzSu+Kx5XGjH8xM= -github.com/mgechev/revive v1.2.2/go.mod h1:AqmPmem7b5NU69DdRzn5U6czfv7tzXMjjLmZUlk8xOw= +github.com/mgechev/revive v1.2.3 h1:NzIEEa9+WimQ6q2Ov7OcNeySS/IOcwtkQ8RAh0R5UJ4= +github.com/mgechev/revive v1.2.3/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= From 0e044f25e8b96e1751cc584fe3004d54701a947d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 02:12:58 +0200 Subject: [PATCH 137/162] build(deps): bump github.com/sashamelentyev/usestdlibvars from 1.8.0 to 1.10.0 (#3090) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 17b235046848..54cbf5e2ca2a 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 - github.com/sashamelentyev/usestdlibvars v1.8.0 + github.com/sashamelentyev/usestdlibvars v1.10.0 github.com/securego/gosec/v2 v2.12.0 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.7 @@ -173,7 +173,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect + golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index bcb44e6f9cb1..aa1139e629e1 100644 --- a/go.sum +++ b/go.sum @@ -598,8 +598,8 @@ github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8 github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sashamelentyev/usestdlibvars v1.8.0 h1:QnWP9IOEuRyYKH+IG0LlQIjuJlc0rfdo4K3/Zh3WRMw= -github.com/sashamelentyev/usestdlibvars v1.8.0/go.mod h1:BFt7b5mSVHaaa26ZupiNRV2ODViQBxZZVhtAxAJRrjs= +github.com/sashamelentyev/usestdlibvars v1.10.0 h1:hBW8NyJSmHImE/vI1r3gmGWiFkHtnqwd3DnoqoPxxj4= +github.com/sashamelentyev/usestdlibvars v1.10.0/go.mod h1:nBjNFNgqwmaJuFKBvv/KoewMqAQJ8Ijq0z1u2W3nQIo= github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -958,8 +958,8 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f/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 h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME= +golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/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= From f78f6dd322cab7c0047a3aa1fc25cab18273f69f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 02:21:40 +0200 Subject: [PATCH 138/162] build(deps): bump github.com/polyfloyd/go-errorlint from 1.0.0 to 1.0.1 (#3092) --- go.mod | 2 +- go.sum | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 54cbf5e2ca2a..c819cb746706 100644 --- a/go.mod +++ b/go.mod @@ -69,7 +69,7 @@ require ( github.com/nishanths/exhaustive v0.8.1 github.com/nishanths/predeclared v0.2.2 github.com/pkg/errors v0.9.1 - github.com/polyfloyd/go-errorlint v1.0.0 + github.com/polyfloyd/go-errorlint v1.0.1 github.com/quasilyte/go-ruleguard/dsl v0.3.21 github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 diff --git a/go.sum b/go.sum index aa1139e629e1..7dd31f0465cc 100644 --- a/go.sum +++ b/go.sum @@ -541,8 +541,8 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/polyfloyd/go-errorlint v1.0.0 h1:pDrQG0lrh68e602Wfp68BlUTRFoHn8PZYAjLgt2LFsM= -github.com/polyfloyd/go-errorlint v1.0.0/go.mod h1:KZy4xxPJyy88/gldCe5OdW6OQRtNO3EZE7hXzmnebgA= +github.com/polyfloyd/go-errorlint v1.0.1 h1:jwvtOuXGgwK7yww0SqgMrFiMq5B5XprwTSYRekZRHmk= +github.com/polyfloyd/go-errorlint v1.0.1/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -725,6 +725,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= @@ -859,6 +860,7 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx 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 h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 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= @@ -953,7 +955,6 @@ 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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 235df6ef4890d508c4432a08fcf5c97f6fe7b422 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 12 Aug 2022 02:23:50 +0200 Subject: [PATCH 139/162] fix: go.sum --- go.sum | 1 + 1 file changed, 1 insertion(+) diff --git a/go.sum b/go.sum index 7dd31f0465cc..1beb7469b586 100644 --- a/go.sum +++ b/go.sum @@ -959,6 +959,7 @@ golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f/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-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME= golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= From 7fdb723b16721381091c48d1a18576aa5e425b10 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Fri, 12 Aug 2022 16:22:28 +0200 Subject: [PATCH 140/162] docs: remove allow-leading-space option (#3072) --- .golangci.reference.yml | 3 --- .golangci.yml | 1 - test/testdata/fix/in/nolintlint.go | 1 - test/testdata/fix/out/nolintlint.go | 1 - test/testdata/nolintlint.go | 1 - 5 files changed, 7 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index cb8ffb370d17..9f419d14685c 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1159,9 +1159,6 @@ linters-settings: # Disable to ensure that all nolint directives actually have an effect. # Default: false allow-unused: true - # Disable to ensure that nolint directives don't have a leading space. - # Default: true - allow-leading-space: false # Exclude following linters from requiring an explanation. # Default: [] allow-no-explanation: [ ] diff --git a/.golangci.yml b/.golangci.yml index 9778170cb97a..344c0e8431b7 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -61,7 +61,6 @@ linters-settings: misspell: locale: US nolintlint: - allow-leading-space: false allow-unused: false # report any unused nolint directives require-explanation: false # don't require an explanation for nolint directives require-specific: false # don't require nolint directives to be specific about which linter is being skipped diff --git a/test/testdata/fix/in/nolintlint.go b/test/testdata/fix/in/nolintlint.go index 96468754da6b..bfb0e91eef93 100644 --- a/test/testdata/fix/in/nolintlint.go +++ b/test/testdata/fix/in/nolintlint.go @@ -1,6 +1,5 @@ //golangcitest:args -Enolintlint -Elll //golangcitest:expected_linter nolintlint -//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package p import "fmt" diff --git a/test/testdata/fix/out/nolintlint.go b/test/testdata/fix/out/nolintlint.go index 8858f3eeecbd..93b34c6ed955 100644 --- a/test/testdata/fix/out/nolintlint.go +++ b/test/testdata/fix/out/nolintlint.go @@ -1,6 +1,5 @@ //golangcitest:args -Enolintlint -Elll //golangcitest:expected_linter nolintlint -//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package p import "fmt" diff --git a/test/testdata/nolintlint.go b/test/testdata/nolintlint.go index 6d3bf0539e29..1043b9846d28 100644 --- a/test/testdata/nolintlint.go +++ b/test/testdata/nolintlint.go @@ -2,7 +2,6 @@ //golangcitest:expected_linter nolintlint //golangcitest:config linters-settings.nolintlint.require-explanation=true //golangcitest:config linters-settings.nolintlint.require-specific=true -//golangcitest:config linters-settings.nolintlint.allow-leading-space=false package testdata import "fmt" From edeaa17fd53f5d0dea7f219d76562b0dcfef8222 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 13:24:09 +0200 Subject: [PATCH 141/162] build(deps): bump github.com/polyfloyd/go-errorlint from 1.0.1 to 1.0.2 (#3097) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c819cb746706..aef29e807abe 100644 --- a/go.mod +++ b/go.mod @@ -69,7 +69,7 @@ require ( github.com/nishanths/exhaustive v0.8.1 github.com/nishanths/predeclared v0.2.2 github.com/pkg/errors v0.9.1 - github.com/polyfloyd/go-errorlint v1.0.1 + github.com/polyfloyd/go-errorlint v1.0.2 github.com/quasilyte/go-ruleguard/dsl v0.3.21 github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 diff --git a/go.sum b/go.sum index 1beb7469b586..17e02c60ecd0 100644 --- a/go.sum +++ b/go.sum @@ -541,8 +541,8 @@ github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qR github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/polyfloyd/go-errorlint v1.0.1 h1:jwvtOuXGgwK7yww0SqgMrFiMq5B5XprwTSYRekZRHmk= -github.com/polyfloyd/go-errorlint v1.0.1/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= +github.com/polyfloyd/go-errorlint v1.0.2 h1:kp1yvHflYhTmw5m3MmBy8SCyQkKPjwDthVuMH0ug6Yk= +github.com/polyfloyd/go-errorlint v1.0.2/go.mod h1:APVvOesVSAnne5SClsPxPdfvZTVDojXh1/G3qb5wjGI= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= From 9da04f5070e67741bb9c98d77c2ee95f13e241df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 14 Aug 2022 18:21:32 +0200 Subject: [PATCH 142/162] build(deps): bump github.com/go-critic/go-critic from 0.6.3 to 0.6.4 (#3089) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 2 +- .golangci.yml | 1 - go.mod | 8 +- go.sum | 17 +- pkg/commands/executor.go | 5 - pkg/config/linters_settings.go | 16 +- pkg/config/linters_settings_gocritic.go | 366 -------------- pkg/golinters/gocritic.go | 465 +++++++++++++++++- .../gocritic_test.go} | 6 +- pkg/golinters/lll.go | 2 +- pkg/lint/lintersdb/manager.go | 4 +- pkg/result/processors/path_shortener.go | 4 +- test/errchk.go | 2 +- test/testdata/configs/gocritic.yml | 5 +- test/testdata/gocritic.go | 4 + test/testshared/testshared.go | 2 +- 16 files changed, 486 insertions(+), 423 deletions(-) delete mode 100644 pkg/config/linters_settings_gocritic.go rename pkg/{config/linters_settings_gocritic_test.go => golinters/gocritic_test.go} (88%) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 9f419d14685c..46fd2df5adea 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1113,7 +1113,7 @@ linters-settings: makezero: # Allow only slices initialized with a length of zero. # Default: false - always: false + always: true maligned: # Print struct with more effective memory layout or not. diff --git a/.golangci.yml b/.golangci.yml index 344c0e8431b7..90c71c9eb678 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -27,7 +27,6 @@ linters-settings: - ifElseChain - octalLiteral - whyNoLint - - wrapperFunc gocyclo: min-complexity: 15 goimports: diff --git a/go.mod b/go.mod index aef29e807abe..f9dc01e0c4c2 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/fatih/color v1.13.0 github.com/firefart/nonamedreturns v1.0.4 github.com/fzipp/gocyclo v0.6.0 - github.com/go-critic/go-critic v0.6.3 + github.com/go-critic/go-critic v0.6.4 github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b github.com/gofrs/flock v0.8.1 github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 @@ -121,8 +121,8 @@ require ( github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-toolsmith/astcast v1.0.0 // indirect - github.com/go-toolsmith/astcopy v1.0.0 // indirect - github.com/go-toolsmith/astequal v1.0.1 // indirect + github.com/go-toolsmith/astcopy v1.0.1 // indirect + github.com/go-toolsmith/astequal v1.0.2 // indirect github.com/go-toolsmith/astfmt v1.0.0 // indirect github.com/go-toolsmith/astp v1.0.0 // indirect github.com/go-toolsmith/strparse v1.0.0 // indirect @@ -153,7 +153,7 @@ require ( github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.32.1 // indirect github.com/prometheus/procfs v0.7.3 // indirect - github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a // indirect + github.com/quasilyte/go-ruleguard v0.3.17 // indirect github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 // indirect github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect diff --git a/go.sum b/go.sum index 17e02c60ecd0..30ea18bb9312 100644 --- a/go.sum +++ b/go.sum @@ -131,6 +131,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cristalhq/acmd v0.7.0/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= github.com/daixiang0/gci v0.6.3 h1:wUAqXChk8HbwXn8AfxD9DYSCp9Bpz1L3e6Q4Roe+q9E= github.com/daixiang0/gci v0.6.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -170,8 +171,8 @@ github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3n github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-critic/go-critic v0.6.3 h1:abibh5XYBTASawfTQ0rA7dVtQT+6KzpGqb/J+DxRDaw= -github.com/go-critic/go-critic v0.6.3/go.mod h1:c6b3ZP1MQ7o6lPR7Rv3lEf7pYQUmAcx8ABHgdZCQt/k= +github.com/go-critic/go-critic v0.6.4 h1:tucuG1pvOyYgpBIrVxw0R6gwO42lNa92Aq3VaDoIs+E= +github.com/go-critic/go-critic v0.6.4/go.mod h1:qL5SOlk7NtY6sJPoVCTKDIgzNOxHkkkOCVDyi9wJe1U= 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= @@ -190,11 +191,13 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.0 h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8= github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= +github.com/go-toolsmith/astcopy v1.0.1 h1:l09oBhAPyV74kLJ3ZO31iBU8htZGTwr9LTjuMCyL8go= +github.com/go-toolsmith/astcopy v1.0.1/go.mod h1:4TcEdbElGc9twQEYpVo/aieIXfHhiuLh4aLAck6dO7Y= github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astequal v1.0.1 h1:JbSszi42Jiqu36Gnf363HWS9MTEAz67vTQLponh3Moc= github.com/go-toolsmith/astequal v1.0.1/go.mod h1:4oGA3EZXTVItV/ipGiOx7NWkY5veFfcsOJVS2YxltLw= +github.com/go-toolsmith/astequal v1.0.2 h1:+XvaV8zNxua+9+Oa4AHmgmpo4RYAbwr/qjNppLfX2yM= +github.com/go-toolsmith/astequal v1.0.2/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= @@ -570,10 +573,9 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= -github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a h1:sWFavxtIctGrVs5SYZ5Ml1CvrDAs8Kf5kx2PI3C41dA= -github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a/go.mod h1:VMX+OnnSw4LicdiEGtRSD/1X8kW7GuEscjYNr4cOIT4= +github.com/quasilyte/go-ruleguard v0.3.17 h1:cDdoaSbQg11LXPDQqiCK54QmQXsEQQCTIgdcpeULGSI= +github.com/quasilyte/go-ruleguard v0.3.17/go.mod h1:sST5PvaR7yb/Az5ksX8oc88usJ4EGjmJv7cK7y3jyig= github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/go-ruleguard/dsl v0.3.16/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/dsl v0.3.21 h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA= github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= @@ -780,6 +782,7 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 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-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= diff --git a/pkg/commands/executor.go b/pkg/commands/executor.go index d9c747f6f1b5..2723f5c0a92a 100644 --- a/pkg/commands/executor.go +++ b/pkg/commands/executor.go @@ -117,11 +117,6 @@ func NewExecutor(version, commit, date string) *Executor { // recreate after getting config e.DBManager = lintersdb.NewManager(e.cfg, e.log).WithCustomLinters() - e.cfg.LintersSettings.Gocritic.InferEnabledChecks(e.log) - if err = e.cfg.LintersSettings.Gocritic.Validate(e.log); err != nil { - e.log.Fatalf("Invalid gocritic settings: %s", err) - } - // Slice options must be explicitly set for proper merging of config and command-line options. fixSlicesFlags(e.runCmd.Flags()) fixSlicesFlags(e.lintersCmd.Flags()) diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 3c356b40eff5..1e923409a05d 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -40,8 +40,8 @@ var defaultLintersSettings = LintersSettings{ Gocognit: GocognitSettings{ MinComplexity: 30, }, - Gocritic: GocriticSettings{ - SettingsPerCheck: map[string]GocriticCheckSettings{}, + Gocritic: GoCriticSettings{ + SettingsPerCheck: map[string]GoCriticCheckSettings{}, }, Godox: GodoxSettings{ Keywords: []string{}, @@ -133,7 +133,7 @@ type LintersSettings struct { Gci GciSettings Gocognit GocognitSettings Goconst GoConstSettings - Gocritic GocriticSettings + Gocritic GoCriticSettings Gocyclo GoCycloSettings Godot GodotSettings Godox GodoxSettings @@ -306,6 +306,16 @@ type GoConstSettings struct { IgnoreCalls bool `mapstructure:"ignore-calls"` } +type GoCriticSettings struct { + EnabledChecks []string `mapstructure:"enabled-checks"` + DisabledChecks []string `mapstructure:"disabled-checks"` + EnabledTags []string `mapstructure:"enabled-tags"` + DisabledTags []string `mapstructure:"disabled-tags"` + SettingsPerCheck map[string]GoCriticCheckSettings `mapstructure:"settings"` +} + +type GoCriticCheckSettings map[string]interface{} + type GoCycloSettings struct { MinComplexity int `mapstructure:"min-complexity"` } diff --git a/pkg/config/linters_settings_gocritic.go b/pkg/config/linters_settings_gocritic.go deleted file mode 100644 index 7f6905f5f952..000000000000 --- a/pkg/config/linters_settings_gocritic.go +++ /dev/null @@ -1,366 +0,0 @@ -package config - -import ( - "fmt" - "sort" - "strings" - - _ "github.com/go-critic/go-critic/checkers" // this import register checkers - "github.com/go-critic/go-critic/framework/linter" - "github.com/pkg/errors" - - "github.com/golangci/golangci-lint/pkg/logutils" -) - -const gocriticDebugKey = "gocritic" - -var ( - gocriticDebugf = logutils.Debug(gocriticDebugKey) - isGocriticDebug = logutils.HaveDebugTag(gocriticDebugKey) - allGocriticCheckers = linter.GetCheckersInfo() - allGocriticCheckerMap = func() map[string]*linter.CheckerInfo { - checkInfoMap := make(map[string]*linter.CheckerInfo) - for _, checkInfo := range allGocriticCheckers { - checkInfoMap[checkInfo.Name] = checkInfo - } - return checkInfoMap - }() -) - -type GocriticCheckSettings map[string]interface{} - -type GocriticSettings struct { - EnabledChecks []string `mapstructure:"enabled-checks"` - DisabledChecks []string `mapstructure:"disabled-checks"` - EnabledTags []string `mapstructure:"enabled-tags"` - DisabledTags []string `mapstructure:"disabled-tags"` - SettingsPerCheck map[string]GocriticCheckSettings `mapstructure:"settings"` - - inferredEnabledChecks map[string]bool -} - -func debugChecksListf(checks []string, format string, args ...interface{}) { - if isGocriticDebug { - prefix := fmt.Sprintf(format, args...) - gocriticDebugf(prefix+" checks (%d): %s", len(checks), sprintStrings(checks)) - } -} - -func stringsSliceToSet(ss []string) map[string]bool { - ret := make(map[string]bool, len(ss)) - for _, s := range ss { - ret[s] = true - } - - return ret -} - -func buildGocriticTagToCheckersMap() map[string][]string { - tagToCheckers := map[string][]string{} - for _, checker := range allGocriticCheckers { - for _, tag := range checker.Tags { - tagToCheckers[tag] = append(tagToCheckers[tag], checker.Name) - } - } - return tagToCheckers -} - -func gocriticCheckerTagsDebugf() { - if !isGocriticDebug { - return - } - - tagToCheckers := buildGocriticTagToCheckersMap() - - allTags := make([]string, 0, len(tagToCheckers)) - for tag := range tagToCheckers { - allTags = append(allTags, tag) - } - sort.Strings(allTags) - - gocriticDebugf("All gocritic existing tags and checks:") - for _, tag := range allTags { - debugChecksListf(tagToCheckers[tag], " tag %q", tag) - } -} - -func (s *GocriticSettings) gocriticDisabledCheckersDebugf() { - if !isGocriticDebug { - return - } - - var disabledCheckers []string - for _, checker := range allGocriticCheckers { - if s.inferredEnabledChecks[strings.ToLower(checker.Name)] { - continue - } - - disabledCheckers = append(disabledCheckers, checker.Name) - } - - if len(disabledCheckers) == 0 { - gocriticDebugf("All checks are enabled") - } else { - debugChecksListf(disabledCheckers, "Final not used") - } -} - -func (s *GocriticSettings) InferEnabledChecks(log logutils.Log) { - gocriticCheckerTagsDebugf() - - enabledByDefaultChecks := getDefaultEnabledGocriticCheckersNames() - debugChecksListf(enabledByDefaultChecks, "Enabled by default") - - disabledByDefaultChecks := getDefaultDisabledGocriticCheckersNames() - debugChecksListf(disabledByDefaultChecks, "Disabled by default") - - enabledChecks := make([]string, 0, len(s.EnabledTags)+len(enabledByDefaultChecks)) - - // EnabledTags - if len(s.EnabledTags) != 0 { - tagToCheckers := buildGocriticTagToCheckersMap() - for _, tag := range s.EnabledTags { - enabledChecks = append(enabledChecks, tagToCheckers[tag]...) - } - debugChecksListf(enabledChecks, "Enabled by config tags %s", sprintStrings(s.EnabledTags)) - } - - if !(len(s.EnabledTags) == 0 && len(s.EnabledChecks) != 0) { - // don't use default checks only if we have no enabled tags and enable some checks manually - enabledChecks = append(enabledChecks, enabledByDefaultChecks...) - } - - // DisabledTags - if len(s.DisabledTags) != 0 { - enabledChecks = filterByDisableTags(enabledChecks, s.DisabledTags, log) - } - - // EnabledChecks - if len(s.EnabledChecks) != 0 { - debugChecksListf(s.EnabledChecks, "Enabled by config") - - alreadyEnabledChecksSet := stringsSliceToSet(enabledChecks) - for _, enabledCheck := range s.EnabledChecks { - if alreadyEnabledChecksSet[enabledCheck] { - log.Warnf("No need to enable check %q: it's already enabled", enabledCheck) - continue - } - enabledChecks = append(enabledChecks, enabledCheck) - } - } - - // DisabledChecks - if len(s.DisabledChecks) != 0 { - debugChecksListf(s.DisabledChecks, "Disabled by config") - - enabledChecksSet := stringsSliceToSet(enabledChecks) - for _, disabledCheck := range s.DisabledChecks { - if !enabledChecksSet[disabledCheck] { - log.Warnf("Gocritic check %q was explicitly disabled via config. However, as this check "+ - "is disabled by default, there is no need to explicitly disable it via config.", disabledCheck) - continue - } - delete(enabledChecksSet, disabledCheck) - } - - enabledChecks = nil - for enabledCheck := range enabledChecksSet { - enabledChecks = append(enabledChecks, enabledCheck) - } - } - - s.inferredEnabledChecks = map[string]bool{} - for _, check := range enabledChecks { - s.inferredEnabledChecks[strings.ToLower(check)] = true - } - - debugChecksListf(enabledChecks, "Final used") - s.gocriticDisabledCheckersDebugf() -} - -func validateStringsUniq(ss []string) error { - set := map[string]bool{} - for _, s := range ss { - _, ok := set[s] - if ok { - return fmt.Errorf("%q occurs multiple times in list", s) - } - set[s] = true - } - - return nil -} - -func intersectStringSlice(s1, s2 []string) []string { - s1Map := make(map[string]struct{}, len(s1)) - for _, s := range s1 { - s1Map[s] = struct{}{} - } - - result := make([]string, 0) - for _, s := range s2 { - if _, exists := s1Map[s]; exists { - result = append(result, s) - } - } - - return result -} - -func (s *GocriticSettings) Validate(log logutils.Log) error { - if len(s.EnabledTags) == 0 { - if len(s.EnabledChecks) != 0 && len(s.DisabledChecks) != 0 { - return errors.New("both enabled and disabled check aren't allowed for gocritic") - } - } else { - if err := validateStringsUniq(s.EnabledTags); err != nil { - return errors.Wrap(err, "validate enabled tags") - } - - tagToCheckers := buildGocriticTagToCheckersMap() - for _, tag := range s.EnabledTags { - if _, ok := tagToCheckers[tag]; !ok { - return fmt.Errorf("gocritic [enabled]tag %q doesn't exist", tag) - } - } - } - - if len(s.DisabledTags) > 0 { - tagToCheckers := buildGocriticTagToCheckersMap() - for _, tag := range s.EnabledTags { - if _, ok := tagToCheckers[tag]; !ok { - return fmt.Errorf("gocritic [disabled]tag %q doesn't exist", tag) - } - } - } - - if err := validateStringsUniq(s.EnabledChecks); err != nil { - return errors.Wrap(err, "validate enabled checks") - } - if err := validateStringsUniq(s.DisabledChecks); err != nil { - return errors.Wrap(err, "validate disabled checks") - } - - if err := s.validateCheckerNames(log); err != nil { - return errors.Wrap(err, "validation failed") - } - - return nil -} - -func (s *GocriticSettings) IsCheckEnabled(name string) bool { - return s.inferredEnabledChecks[strings.ToLower(name)] -} - -func sprintAllowedCheckerNames(allowedNames map[string]bool) string { - namesSlice := make([]string, 0, len(allowedNames)) - for name := range allowedNames { - namesSlice = append(namesSlice, name) - } - return sprintStrings(namesSlice) -} - -func sprintStrings(ss []string) string { - sort.Strings(ss) - return fmt.Sprint(ss) -} - -// getAllCheckerNames returns a map containing all checker names supported by gocritic. -func getAllCheckerNames() map[string]bool { - allCheckerNames := make(map[string]bool, len(allGocriticCheckers)) - for _, checker := range allGocriticCheckers { - allCheckerNames[strings.ToLower(checker.Name)] = true - } - - return allCheckerNames -} - -func isEnabledByDefaultGocriticCheck(info *linter.CheckerInfo) bool { - return !info.HasTag("experimental") && - !info.HasTag("opinionated") && - !info.HasTag("performance") -} - -func getDefaultEnabledGocriticCheckersNames() []string { - var enabled []string - for _, info := range allGocriticCheckers { - enable := isEnabledByDefaultGocriticCheck(info) - if enable { - enabled = append(enabled, info.Name) - } - } - - return enabled -} - -func getDefaultDisabledGocriticCheckersNames() []string { - var disabled []string - for _, info := range allGocriticCheckers { - enable := isEnabledByDefaultGocriticCheck(info) - if !enable { - disabled = append(disabled, info.Name) - } - } - - return disabled -} - -func (s *GocriticSettings) validateCheckerNames(log logutils.Log) error { - allowedNames := getAllCheckerNames() - - for _, name := range s.EnabledChecks { - if !allowedNames[strings.ToLower(name)] { - return fmt.Errorf("enabled checker %s doesn't exist, all existing checkers: %s", - name, sprintAllowedCheckerNames(allowedNames)) - } - } - - for _, name := range s.DisabledChecks { - if !allowedNames[strings.ToLower(name)] { - return fmt.Errorf("disabled checker %s doesn't exist, all existing checkers: %s", - name, sprintAllowedCheckerNames(allowedNames)) - } - } - - for checkName := range s.SettingsPerCheck { - if _, ok := allowedNames[checkName]; !ok { - return fmt.Errorf("invalid setting, checker %s doesn't exist, all existing checkers: %s", - checkName, sprintAllowedCheckerNames(allowedNames)) - } - if !s.IsCheckEnabled(checkName) { - log.Warnf("Gocritic settings were provided for not enabled check %q", checkName) - } - } - - return nil -} - -func (s *GocriticSettings) GetLowercasedParams() map[string]GocriticCheckSettings { - ret := make(map[string]GocriticCheckSettings, len(s.SettingsPerCheck)) - for checker, params := range s.SettingsPerCheck { - ret[strings.ToLower(checker)] = params - } - return ret -} - -func filterByDisableTags(enabledChecks, disableTags []string, log logutils.Log) []string { - enabledChecksSet := stringsSliceToSet(enabledChecks) - for _, enabledCheck := range enabledChecks { - checkInfo, checkInfoExists := allGocriticCheckerMap[enabledCheck] - if !checkInfoExists { - log.Warnf("Gocritic check %q was not exists via filtering disabled tags", enabledCheck) - continue - } - hitTags := intersectStringSlice(checkInfo.Tags, disableTags) - if len(hitTags) != 0 { - delete(enabledChecksSet, enabledCheck) - } - } - debugChecksListf(enabledChecks, "Disabled by config tags %s", sprintStrings(disableTags)) - - enabledChecks = nil - for enabledCheck := range enabledChecksSet { - enabledChecks = append(enabledChecks, enabledCheck) - } - return enabledChecks -} diff --git a/pkg/golinters/gocritic.go b/pkg/golinters/gocritic.go index a53d57662461..d15dabc6341a 100644 --- a/pkg/golinters/gocritic.go +++ b/pkg/golinters/gocritic.go @@ -11,31 +11,39 @@ import ( "strings" "sync" + "github.com/go-critic/go-critic/checkers" gocriticlinter "github.com/go-critic/go-critic/framework/linter" + "github.com/pkg/errors" "golang.org/x/tools/go/analysis" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" "github.com/golangci/golangci-lint/pkg/lint/linter" + "github.com/golangci/golangci-lint/pkg/logutils" "github.com/golangci/golangci-lint/pkg/result" ) -const gocriticName = "gocritic" +const goCriticName = "gocritic" -func NewGocritic(settings *config.GocriticSettings, cfg *config.Config) *goanalysis.Linter { +const goCriticDebugKey = "gocritic" + +var ( + goCriticDebugf = logutils.Debug(goCriticDebugKey) + isGoCriticDebug = logutils.HaveDebugTag(goCriticDebugKey) +) + +func NewGoCritic(settings *config.GoCriticSettings, cfg *config.Config) *goanalysis.Linter { var mu sync.Mutex var resIssues []goanalysis.Issue - sizes := types.SizesFor("gc", runtime.GOARCH) - - wrapper := goCriticWrapper{ + wrapper := &goCriticWrapper{ settings: settings, cfg: cfg, - sizes: sizes, + sizes: types.SizesFor("gc", runtime.GOARCH), } analyzer := &analysis.Analyzer{ - Name: gocriticName, + Name: goCriticName, Doc: goanalysis.TheOnlyanalyzerDoc, Run: func(pass *analysis.Pass) (interface{}, error) { issues, err := wrapper.run(pass) @@ -56,24 +64,56 @@ func NewGocritic(settings *config.GocriticSettings, cfg *config.Config) *goanaly } return goanalysis.NewLinter( - gocriticName, + goCriticName, `Provides diagnostics that check for bugs, performance and style issues. Extensible without recompilation through dynamic rules. Dynamic rules are written declaratively with AST patterns, filters, report message and optional suggestion.`, []*analysis.Analyzer{analyzer}, nil, - ).WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { - return resIssues - }).WithLoadMode(goanalysis.LoadModeTypesInfo) + ). + WithContextSetter(func(context *linter.Context) { + wrapper.init() + }). + WithIssuesReporter(func(*linter.Context) []goanalysis.Issue { + return resIssues + }).WithLoadMode(goanalysis.LoadModeTypesInfo) } type goCriticWrapper struct { - settings *config.GocriticSettings - cfg *config.Config - sizes types.Sizes + settings *config.GoCriticSettings + settingsWrapper *goCriticSettingsWrapper + cfg *config.Config + sizes types.Sizes + once sync.Once +} + +func (w *goCriticWrapper) init() { + if w.settings != nil { + // the 'defer' is here to catch the panic from checkers.InitEmbeddedRules() + defer func() { + if err := recover(); err != nil { + linterLogger.Fatalf("%s: %v: setting an explicit GOROOT can fix this problem.", goCriticName, err) + return + } + }() + w.once.Do(checkers.InitEmbeddedRules) + + settingsWrapper := newGoCriticSettingsWrapper(w.settings) + + settingsWrapper.inferEnabledChecks(linterLogger) + if err := settingsWrapper.validate(linterLogger); err != nil { + linterLogger.Fatalf("%s: invalid settings: %s", goCriticName, err) + } + + w.settingsWrapper = settingsWrapper + } } -func (w goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { +func (w *goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { + if w.settingsWrapper == nil { + return nil, fmt.Errorf("the settings wrapper is nil") + } + linterCtx := gocriticlinter.NewContext(pass.Fset, w.sizes) enabledCheckers, err := w.buildEnabledCheckers(linterCtx) @@ -93,12 +133,12 @@ func (w goCriticWrapper) run(pass *analysis.Pass) ([]goanalysis.Issue, error) { return issues, nil } -func (w goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { - allParams := w.settings.GetLowercasedParams() +func (w *goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) ([]*gocriticlinter.Checker, error) { + allParams := w.settingsWrapper.getLowerCasedParams() var enabledCheckers []*gocriticlinter.Checker for _, info := range gocriticlinter.GetCheckersInfo() { - if !w.settings.IsCheckEnabled(info.Name) { + if !w.settingsWrapper.isCheckEnabled(info.Name) { continue } @@ -116,23 +156,23 @@ func (w goCriticWrapper) buildEnabledCheckers(linterCtx *gocriticlinter.Context) return enabledCheckers, nil } -func runGocriticOnPackage(linterCtx *gocriticlinter.Context, checkers []*gocriticlinter.Checker, +func runGocriticOnPackage(linterCtx *gocriticlinter.Context, checks []*gocriticlinter.Checker, files []*ast.File) []result.Issue { var res []result.Issue for _, f := range files { filename := filepath.Base(linterCtx.FileSet.Position(f.Pos()).Filename) linterCtx.SetFileInfo(filename, f) - issues := runGocriticOnFile(linterCtx, f, checkers) + issues := runGocriticOnFile(linterCtx, f, checks) res = append(res, issues...) } return res } -func runGocriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checkers []*gocriticlinter.Checker) []result.Issue { +func runGocriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checks []*gocriticlinter.Checker) []result.Issue { var res []result.Issue - for _, c := range checkers { + for _, c := range checks { // All checkers are expected to use *lint.Context // as read-only structure, so no copying is required. for _, warn := range c.Check(f) { @@ -140,7 +180,7 @@ func runGocriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checkers issue := result.Issue{ Pos: pos, Text: fmt.Sprintf("%s: %s", c.Info.Name, warn.Text), - FromLinter: gocriticName, + FromLinter: goCriticName, } if warn.HasQuickFix() { @@ -160,7 +200,7 @@ func runGocriticOnFile(linterCtx *gocriticlinter.Context, f *ast.File, checkers return res } -func (w goCriticWrapper) configureCheckerInfo(info *gocriticlinter.CheckerInfo, allParams map[string]config.GocriticCheckSettings) error { +func (w *goCriticWrapper) configureCheckerInfo(info *gocriticlinter.CheckerInfo, allParams map[string]config.GoCriticCheckSettings) error { params := allParams[strings.ToLower(info.Name)] if params == nil { // no config for this checker return nil @@ -208,7 +248,7 @@ func normalizeCheckerInfoParams(info *gocriticlinter.CheckerInfo) gocriticlinter // but the file parsers (TOML, YAML, JSON) don't create the same representation for raw type. // then we have to convert value types into the expected value types. // Maybe in the future, this kind of conversion will be done in go-critic itself. -func (w goCriticWrapper) normalizeCheckerParamsValue(p interface{}) interface{} { +func (w *goCriticWrapper) normalizeCheckerParamsValue(p interface{}) interface{} { rv := reflect.ValueOf(p) switch rv.Type().Kind() { case reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8, reflect.Int: @@ -222,3 +262,378 @@ func (w goCriticWrapper) normalizeCheckerParamsValue(p interface{}) interface{} return p } } + +// TODO(ldez): rewrite and simplify goCriticSettingsWrapper. + +type goCriticSettingsWrapper struct { + *config.GoCriticSettings + + allCheckers []*gocriticlinter.CheckerInfo + allCheckerMap map[string]*gocriticlinter.CheckerInfo + + inferredEnabledChecks map[string]bool +} + +func newGoCriticSettingsWrapper(settings *config.GoCriticSettings) *goCriticSettingsWrapper { + allCheckers := gocriticlinter.GetCheckersInfo() + + allCheckerMap := make(map[string]*gocriticlinter.CheckerInfo) + for _, checkInfo := range allCheckers { + allCheckerMap[checkInfo.Name] = checkInfo + } + + return &goCriticSettingsWrapper{ + GoCriticSettings: settings, + allCheckers: allCheckers, + allCheckerMap: allCheckerMap, + inferredEnabledChecks: map[string]bool{}, + } +} + +func (s *goCriticSettingsWrapper) buildTagToCheckersMap() map[string][]string { + tagToCheckers := map[string][]string{} + + for _, checker := range s.allCheckers { + for _, tag := range checker.Tags { + tagToCheckers[tag] = append(tagToCheckers[tag], checker.Name) + } + } + + return tagToCheckers +} + +func (s *goCriticSettingsWrapper) checkerTagsDebugf() { + if !isGoCriticDebug { + return + } + + tagToCheckers := s.buildTagToCheckersMap() + + allTags := make([]string, 0, len(tagToCheckers)) + for tag := range tagToCheckers { + allTags = append(allTags, tag) + } + + sort.Strings(allTags) + + goCriticDebugf("All gocritic existing tags and checks:") + for _, tag := range allTags { + debugChecksListf(tagToCheckers[tag], " tag %q", tag) + } +} + +func (s *goCriticSettingsWrapper) disabledCheckersDebugf() { + if !isGoCriticDebug { + return + } + + var disabledCheckers []string + for _, checker := range s.allCheckers { + if s.inferredEnabledChecks[strings.ToLower(checker.Name)] { + continue + } + + disabledCheckers = append(disabledCheckers, checker.Name) + } + + if len(disabledCheckers) == 0 { + goCriticDebugf("All checks are enabled") + } else { + debugChecksListf(disabledCheckers, "Final not used") + } +} + +func (s *goCriticSettingsWrapper) inferEnabledChecks(log logutils.Log) { + s.checkerTagsDebugf() + + enabledByDefaultChecks := s.getDefaultEnabledCheckersNames() + debugChecksListf(enabledByDefaultChecks, "Enabled by default") + + disabledByDefaultChecks := s.getDefaultDisabledCheckersNames() + debugChecksListf(disabledByDefaultChecks, "Disabled by default") + + enabledChecks := make([]string, 0, len(s.EnabledTags)+len(enabledByDefaultChecks)) + + // EnabledTags + if len(s.EnabledTags) != 0 { + tagToCheckers := s.buildTagToCheckersMap() + for _, tag := range s.EnabledTags { + enabledChecks = append(enabledChecks, tagToCheckers[tag]...) + } + + debugChecksListf(enabledChecks, "Enabled by config tags %s", sprintStrings(s.EnabledTags)) + } + + if !(len(s.EnabledTags) == 0 && len(s.EnabledChecks) != 0) { + // don't use default checks only if we have no enabled tags and enable some checks manually + enabledChecks = append(enabledChecks, enabledByDefaultChecks...) + } + + // DisabledTags + if len(s.DisabledTags) != 0 { + enabledChecks = s.filterByDisableTags(enabledChecks, s.DisabledTags, log) + } + + // EnabledChecks + if len(s.EnabledChecks) != 0 { + debugChecksListf(s.EnabledChecks, "Enabled by config") + + alreadyEnabledChecksSet := stringsSliceToSet(enabledChecks) + for _, enabledCheck := range s.EnabledChecks { + if alreadyEnabledChecksSet[enabledCheck] { + log.Warnf("No need to enable check %q: it's already enabled", enabledCheck) + continue + } + enabledChecks = append(enabledChecks, enabledCheck) + } + } + + // DisabledChecks + if len(s.DisabledChecks) != 0 { + debugChecksListf(s.DisabledChecks, "Disabled by config") + + enabledChecksSet := stringsSliceToSet(enabledChecks) + for _, disabledCheck := range s.DisabledChecks { + if !enabledChecksSet[disabledCheck] { + log.Warnf("Gocritic check %q was explicitly disabled via config. However, as this check "+ + "is disabled by default, there is no need to explicitly disable it via config.", disabledCheck) + continue + } + delete(enabledChecksSet, disabledCheck) + } + + enabledChecks = nil + for enabledCheck := range enabledChecksSet { + enabledChecks = append(enabledChecks, enabledCheck) + } + } + + s.inferredEnabledChecks = map[string]bool{} + for _, check := range enabledChecks { + s.inferredEnabledChecks[strings.ToLower(check)] = true + } + + debugChecksListf(enabledChecks, "Final used") + + s.disabledCheckersDebugf() +} + +func (s *goCriticSettingsWrapper) validate(log logutils.Log) error { + if len(s.EnabledTags) == 0 { + if len(s.EnabledChecks) != 0 && len(s.DisabledChecks) != 0 { + return errors.New("both enabled and disabled check aren't allowed for gocritic") + } + } else { + if err := validateStringsUniq(s.EnabledTags); err != nil { + return errors.Wrap(err, "validate enabled tags") + } + + tagToCheckers := s.buildTagToCheckersMap() + + for _, tag := range s.EnabledTags { + if _, ok := tagToCheckers[tag]; !ok { + return fmt.Errorf("gocritic [enabled]tag %q doesn't exist", tag) + } + } + } + + if len(s.DisabledTags) > 0 { + tagToCheckers := s.buildTagToCheckersMap() + for _, tag := range s.EnabledTags { + if _, ok := tagToCheckers[tag]; !ok { + return fmt.Errorf("gocritic [disabled]tag %q doesn't exist", tag) + } + } + } + + if err := validateStringsUniq(s.EnabledChecks); err != nil { + return errors.Wrap(err, "validate enabled checks") + } + + if err := validateStringsUniq(s.DisabledChecks); err != nil { + return errors.Wrap(err, "validate disabled checks") + } + + if err := s.validateCheckerNames(log); err != nil { + return errors.Wrap(err, "validation failed") + } + + return nil +} + +func (s *goCriticSettingsWrapper) isCheckEnabled(name string) bool { + return s.inferredEnabledChecks[strings.ToLower(name)] +} + +// getAllCheckerNames returns a map containing all checker names supported by gocritic. +func (s *goCriticSettingsWrapper) getAllCheckerNames() map[string]bool { + allCheckerNames := make(map[string]bool, len(s.allCheckers)) + + for _, checker := range s.allCheckers { + allCheckerNames[strings.ToLower(checker.Name)] = true + } + + return allCheckerNames +} + +func (s *goCriticSettingsWrapper) getDefaultEnabledCheckersNames() []string { + var enabled []string + + for _, info := range s.allCheckers { + enable := s.isEnabledByDefaultCheck(info) + if enable { + enabled = append(enabled, info.Name) + } + } + + return enabled +} + +func (s *goCriticSettingsWrapper) getDefaultDisabledCheckersNames() []string { + var disabled []string + + for _, info := range s.allCheckers { + enable := s.isEnabledByDefaultCheck(info) + if !enable { + disabled = append(disabled, info.Name) + } + } + + return disabled +} + +func (s *goCriticSettingsWrapper) validateCheckerNames(log logutils.Log) error { + allowedNames := s.getAllCheckerNames() + + for _, name := range s.EnabledChecks { + if !allowedNames[strings.ToLower(name)] { + return fmt.Errorf("enabled checker %s doesn't exist, all existing checkers: %s", + name, sprintAllowedCheckerNames(allowedNames)) + } + } + + for _, name := range s.DisabledChecks { + if !allowedNames[strings.ToLower(name)] { + return fmt.Errorf("disabled checker %s doesn't exist, all existing checkers: %s", + name, sprintAllowedCheckerNames(allowedNames)) + } + } + + for checkName := range s.SettingsPerCheck { + if _, ok := allowedNames[checkName]; !ok { + return fmt.Errorf("invalid setting, checker %s doesn't exist, all existing checkers: %s", + checkName, sprintAllowedCheckerNames(allowedNames)) + } + + if !s.isCheckEnabled(checkName) { + log.Warnf("%s: settings were provided for not enabled check %q", goCriticName, checkName) + } + } + + return nil +} + +func (s *goCriticSettingsWrapper) getLowerCasedParams() map[string]config.GoCriticCheckSettings { + ret := make(map[string]config.GoCriticCheckSettings, len(s.SettingsPerCheck)) + + for checker, params := range s.SettingsPerCheck { + ret[strings.ToLower(checker)] = params + } + + return ret +} + +func (s *goCriticSettingsWrapper) filterByDisableTags(enabledChecks, disableTags []string, log logutils.Log) []string { + enabledChecksSet := stringsSliceToSet(enabledChecks) + + for _, enabledCheck := range enabledChecks { + checkInfo, checkInfoExists := s.allCheckerMap[enabledCheck] + if !checkInfoExists { + log.Warnf("%s: check %q was not exists via filtering disabled tags", goCriticName, enabledCheck) + continue + } + + hitTags := intersectStringSlice(checkInfo.Tags, disableTags) + if len(hitTags) != 0 { + delete(enabledChecksSet, enabledCheck) + } + } + + debugChecksListf(enabledChecks, "Disabled by config tags %s", sprintStrings(disableTags)) + + enabledChecks = nil + for enabledCheck := range enabledChecksSet { + enabledChecks = append(enabledChecks, enabledCheck) + } + + return enabledChecks +} + +func (s *goCriticSettingsWrapper) isEnabledByDefaultCheck(info *gocriticlinter.CheckerInfo) bool { + return !info.HasTag("experimental") && + !info.HasTag("opinionated") && + !info.HasTag("performance") +} + +func validateStringsUniq(ss []string) error { + set := map[string]bool{} + + for _, s := range ss { + _, ok := set[s] + if ok { + return fmt.Errorf("%q occurs multiple times in list", s) + } + set[s] = true + } + + return nil +} + +func intersectStringSlice(s1, s2 []string) []string { + s1Map := make(map[string]struct{}, len(s1)) + + for _, s := range s1 { + s1Map[s] = struct{}{} + } + + results := make([]string, 0) + for _, s := range s2 { + if _, exists := s1Map[s]; exists { + results = append(results, s) + } + } + + return results +} + +func sprintAllowedCheckerNames(allowedNames map[string]bool) string { + namesSlice := make([]string, 0, len(allowedNames)) + + for name := range allowedNames { + namesSlice = append(namesSlice, name) + } + + return sprintStrings(namesSlice) +} + +func sprintStrings(ss []string) string { + sort.Strings(ss) + return fmt.Sprint(ss) +} + +func debugChecksListf(checks []string, format string, args ...interface{}) { + if !isGoCriticDebug { + return + } + + goCriticDebugf("%s checks (%d): %s", fmt.Sprintf(format, args...), len(checks), sprintStrings(checks)) +} + +func stringsSliceToSet(ss []string) map[string]bool { + ret := make(map[string]bool, len(ss)) + for _, s := range ss { + ret[s] = true + } + + return ret +} diff --git a/pkg/config/linters_settings_gocritic_test.go b/pkg/golinters/gocritic_test.go similarity index 88% rename from pkg/config/linters_settings_gocritic_test.go rename to pkg/golinters/gocritic_test.go index 6b961a7379dd..cb6dcbe25b39 100644 --- a/pkg/config/linters_settings_gocritic_test.go +++ b/pkg/golinters/gocritic_test.go @@ -1,4 +1,4 @@ -package config +package golinters import ( "log" @@ -25,7 +25,9 @@ func Test_filterByDisableTags(t *testing.T) { disabledTags := []string{"experimental", "opinionated"} enabledChecks := []string{"appendAssign", "sortSlice", "caseOrder", "dupImport"} - filterEnabledChecks := filterByDisableTags(enabledChecks, disabledTags, &tLog{}) + settingsWrapper := newGoCriticSettingsWrapper(nil) + + filterEnabledChecks := settingsWrapper.filterByDisableTags(enabledChecks, disabledTags, &tLog{}) sort.Strings(filterEnabledChecks) diff --git a/pkg/golinters/lll.go b/pkg/golinters/lll.go index 25b767a0b58a..8b5ebd3cf57f 100644 --- a/pkg/golinters/lll.go +++ b/pkg/golinters/lll.go @@ -88,7 +88,7 @@ func getLLLIssuesForFile(filename string, maxLineLen int, tabSpaces string) ([]r scanner := bufio.NewScanner(f) for scanner.Scan() { line := scanner.Text() - line = strings.Replace(line, "\t", tabSpaces, -1) + line = strings.ReplaceAll(line, "\t", tabSpaces) lineLen := utf8.RuneCountInString(line) if lineLen > maxLineLen { res = append(res, result.Issue{ diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index ff19634c90f5..4552153c69bd 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -119,7 +119,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { gciCfg *config.GciSettings gocognitCfg *config.GocognitSettings goconstCfg *config.GoConstSettings - gocriticCfg *config.GocriticSettings + gocriticCfg *config.GoCriticSettings gocycloCfg *config.GoCycloSettings godotCfg *config.GodotSettings godoxCfg *config.GodoxSettings @@ -436,7 +436,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/jgautheron/goconst"), - linter.NewConfig(golinters.NewGocritic(gocriticCfg, m.cfg)). + linter.NewConfig(golinters.NewGoCritic(gocriticCfg, m.cfg)). WithSince("v1.12.0"). WithPresets(linter.PresetStyle, linter.PresetMetaLinter). WithLoadForGoAnalysis(). diff --git a/pkg/result/processors/path_shortener.go b/pkg/result/processors/path_shortener.go index 484f7f1f115c..6b66bea8b020 100644 --- a/pkg/result/processors/path_shortener.go +++ b/pkg/result/processors/path_shortener.go @@ -31,8 +31,8 @@ func (p PathShortener) Name() string { func (p PathShortener) Process(issues []result.Issue) ([]result.Issue, error) { return transformIssues(issues, func(i *result.Issue) *result.Issue { newI := i - newI.Text = strings.Replace(newI.Text, p.wd+"/", "", -1) - newI.Text = strings.Replace(newI.Text, p.wd, "", -1) + newI.Text = strings.ReplaceAll(newI.Text, p.wd+"/", "") + newI.Text = strings.ReplaceAll(newI.Text, p.wd, "") return newI }), nil } diff --git a/test/errchk.go b/test/errchk.go index 76bb96ce1112..4285e21a0631 100644 --- a/test/errchk.go +++ b/test/errchk.go @@ -33,7 +33,7 @@ func errorCheck(outStr string, wantAuto bool, defaultWantedLinter string, fullsh for i := range out { for j := 0; j < len(fullshort); j += 2 { full, short := fullshort[j], fullshort[j+1] - out[i] = strings.Replace(out[i], full, short, -1) + out[i] = strings.ReplaceAll(out[i], full, short) } } diff --git a/test/testdata/configs/gocritic.yml b/test/testdata/configs/gocritic.yml index 5cdda3736af5..019e6afb83fa 100644 --- a/test/testdata/configs/gocritic.yml +++ b/test/testdata/configs/gocritic.yml @@ -3,10 +3,11 @@ linters-settings: enabled-checks: - rangeValCopy - flagDeref + - wrapperFunc - ruleguard settings: - rangevalcopy: - sizethreshold: 2 + rangeValCopy: + sizeThreshold: 2 ruleguard: debug: dupSubExpr failOn: dsl,import diff --git a/test/testdata/gocritic.go b/test/testdata/gocritic.go index d3b59fce3f22..d59bc48ebbeb 100644 --- a/test/testdata/gocritic.go +++ b/test/testdata/gocritic.go @@ -42,3 +42,7 @@ func gocriticDup(x bool) { log.Print("x is true") } } + +func gocriticRuleWrapperFunc() { + strings.Replace("abcabc", "a", "d", -1) // ERROR "ruleguard: this Replace call can be simplified.*" +} diff --git a/test/testshared/testshared.go b/test/testshared/testshared.go index 9291532be429..55b606d840bc 100644 --- a/test/testshared/testshared.go +++ b/test/testshared/testshared.go @@ -154,7 +154,7 @@ func (r *LintRunner) RunCommandWithYamlConfig(cfg, command string, args ...strin } cfg = strings.TrimSpace(cfg) - cfg = strings.Replace(cfg, "\t", " ", -1) + cfg = strings.ReplaceAll(cfg, "\t", " ") err = os.WriteFile(cfgPath, []byte(cfg), os.ModePerm) assert.NoError(r.t, err) From f7fba37cc927e1b71b098a4a9e5e54f3db5c8e01 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 15 Aug 2022 18:23:07 +0200 Subject: [PATCH 143/162] dev: replace golangcitest:config by golangcitest:config_path (#3099) --- test/fix_test.go | 6 +- test/linters_test.go | 84 ++----------------- test/testdata/configs/cyclop.yml | 3 + test/testdata/configs/dupl.yml | 3 + test/testdata/configs/errcheck_exclude.yml | 4 + .../configs/errcheck_ignore_default.yml | 3 + .../configs/errcheck_type_assertions.yml | 3 + .../forbidigo_include_godoc_examples.yml | 4 + test/testdata/configs/funlen.yml | 4 + test/testdata/configs/gocognit.yml | 3 + .../configs/goconst_calls_enabled.yml | 3 + test/testdata/configs/goconst_dont_ignore.yml | 3 + test/testdata/configs/goconst_ignore.yml | 3 + test/testdata/configs/gocyclo.yml | 3 + test/testdata/configs/godox.yml | 5 ++ test/testdata/configs/gofmt_no_simplify.yml | 3 + test/testdata/configs/gofumpt-fix.yml | 3 + test/testdata/configs/gofumpt_with_extra.yml | 3 + test/testdata/configs/goimports.yml | 3 + test/testdata/configs/govet.yml | 3 + .../testdata/configs/govet_fieldalignment.yml | 3 + test/testdata/configs/govet_ifaceassert.yml | 3 + test/testdata/configs/lll.yml | 3 + test/testdata/configs/makezero_always.yml | 3 + test/testdata/configs/nestif.yml | 3 + test/testdata/configs/nolintlint.yml | 4 + test/testdata/configs/nolintlint_unused.yml | 3 + test/testdata/configs/whitespace-fix.yml | 4 + test/testdata/configs/wsl.yml | 3 + test/testdata/cyclop.go | 2 +- test/testdata/dupl.go | 2 +- test/testdata/errcheck_exclude.go | 3 +- test/testdata/errcheck_ignore_default.go | 2 +- test/testdata/errcheck_type_assertions.go | 2 +- test/testdata/fix/in/gofumpt.go | 2 +- test/testdata/fix/in/whitespace.go | 3 +- test/testdata/fix/out/gofumpt.go | 2 +- test/testdata/fix/out/whitespace.go | 3 +- .../forbidigo_include_godoc_examples_test.go | 2 +- test/testdata/funlen.go | 3 +- test/testdata/gocognit.go | 2 +- test/testdata/goconst_calls_enabled.go | 2 +- test/testdata/goconst_dont_ignore_test.go | 2 +- test/testdata/goconst_ignore_test.go | 2 +- test/testdata/gocyclo.go | 2 +- test/testdata/godox.go | 2 +- test/testdata/gofmt_no_simplify.go | 2 +- test/testdata/gofumpt_with_extra.go | 2 +- test/testdata/goimports/goimports.go | 2 +- test/testdata/govet.go | 2 +- test/testdata/govet_fieldalignment.go | 2 +- test/testdata/govet_ifaceassert.go | 2 +- test/testdata/lll.go | 2 +- test/testdata/makezero_always.go | 2 +- test/testdata/nestif.go | 2 +- test/testdata/nolintlint.go | 3 +- test/testdata/nolintlint_unused.go | 2 +- test/testdata/wsl.go | 2 +- test/testshared/testshared.go | 3 +- 59 files changed, 126 insertions(+), 118 deletions(-) create mode 100644 test/testdata/configs/cyclop.yml create mode 100644 test/testdata/configs/dupl.yml create mode 100644 test/testdata/configs/errcheck_exclude.yml create mode 100644 test/testdata/configs/errcheck_ignore_default.yml create mode 100644 test/testdata/configs/errcheck_type_assertions.yml create mode 100644 test/testdata/configs/forbidigo_include_godoc_examples.yml create mode 100644 test/testdata/configs/funlen.yml create mode 100644 test/testdata/configs/gocognit.yml create mode 100644 test/testdata/configs/goconst_calls_enabled.yml create mode 100644 test/testdata/configs/goconst_dont_ignore.yml create mode 100644 test/testdata/configs/goconst_ignore.yml create mode 100644 test/testdata/configs/gocyclo.yml create mode 100644 test/testdata/configs/godox.yml create mode 100644 test/testdata/configs/gofmt_no_simplify.yml create mode 100644 test/testdata/configs/gofumpt-fix.yml create mode 100644 test/testdata/configs/gofumpt_with_extra.yml create mode 100644 test/testdata/configs/goimports.yml create mode 100644 test/testdata/configs/govet.yml create mode 100644 test/testdata/configs/govet_fieldalignment.yml create mode 100644 test/testdata/configs/govet_ifaceassert.yml create mode 100644 test/testdata/configs/lll.yml create mode 100644 test/testdata/configs/makezero_always.yml create mode 100644 test/testdata/configs/nestif.yml create mode 100644 test/testdata/configs/nolintlint.yml create mode 100644 test/testdata/configs/nolintlint_unused.yml create mode 100644 test/testdata/configs/whitespace-fix.yml create mode 100644 test/testdata/configs/wsl.yml diff --git a/test/fix_test.go b/test/fix_test.go index 41a2a492de3e..6b0e27e36db2 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -7,7 +7,6 @@ import ( "testing" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" @@ -56,15 +55,12 @@ func TestFix(t *testing.T) { args = append(args, rc.args...) - cfg, err := yaml.Marshal(rc.config) - require.NoError(t, err) - var runResult *testshared.RunResult if rc.configPath != "" { args = append(args, "-c", rc.configPath) runResult = testshared.NewLintRunner(t).RunCommand("run", args...) } else { - runResult = testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...) + runResult = testshared.NewLintRunner(t).RunWithYamlConfig("", args...) } // nolintlint test uses non existing linters (bob, alice) diff --git a/test/linters_test.go b/test/linters_test.go index 9e5d641f5edd..637067d959d5 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -14,7 +14,6 @@ import ( hcversion "github.com/hashicorp/go-version" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" @@ -82,7 +81,7 @@ func TestGoimportsLocal(t *testing.T) { args = append(args, rc.args...) - cfg, err := yaml.Marshal(rc.config) + cfg, err := os.ReadFile(rc.configPath) require.NoError(t, err) testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). @@ -175,25 +174,6 @@ func TestFileOutput(t *testing.T) { require.Contains(t, string(b), `"Issues":[`) } -func saveConfig(t *testing.T, cfg map[string]interface{}) (cfgPath string, finishFunc func()) { - f, err := os.CreateTemp("", "golangci_lint_test") - require.NoError(t, err) - - cfgPath = f.Name() + ".yml" - err = os.Rename(f.Name(), cfgPath) - require.NoError(t, err) - - err = yaml.NewEncoder(f).Encode(cfg) - require.NoError(t, err) - - return cfgPath, func() { - require.NoError(t, f.Close()) - if os.Getenv("GL_KEEP_TEMP_FILES") != "1" { - require.NoError(t, os.Remove(cfgPath)) - } - } -} - func testOneSource(t *testing.T, sourcePath string) { args := []string{ "run", @@ -210,25 +190,16 @@ func testOneSource(t *testing.T, sourcePath string) { t.Skipf("Skipped: %s", sourcePath) } - var cfgPath string - if rc.config != nil { - p, finish := saveConfig(t, rc.config) - defer finish() - cfgPath = p - } else if rc.configPath != "" { - cfgPath = rc.configPath - } - for _, addArg := range []string{"", "-Etypecheck"} { caseArgs := append([]string{}, args...) caseArgs = append(caseArgs, rc.args...) if addArg != "" { caseArgs = append(caseArgs, addArg) } - if cfgPath == "" { + if rc.configPath == "" { caseArgs = append(caseArgs, "--no-config") } else { - caseArgs = append(caseArgs, "-c", cfgPath) + caseArgs = append(caseArgs, "-c", rc.configPath) } caseArgs = append(caseArgs, sourcePath) @@ -241,41 +212,17 @@ func testOneSource(t *testing.T, sourcePath string) { type runContext struct { args []string - config map[string]interface{} configPath string expectedLinter string } -func buildConfigFromShortRepr(t *testing.T, repr string, config map[string]interface{}) { - kv := strings.Split(repr, "=") - require.Len(t, kv, 2, "repr: %s", repr) - - keyParts := strings.Split(kv[0], ".") - require.True(t, len(keyParts) >= 2, len(keyParts)) - - lastObj := config - for _, k := range keyParts[:len(keyParts)-1] { - var v map[string]interface{} - if lastObj[k] == nil { - v = map[string]interface{}{} - } else { - v = lastObj[k].(map[string]interface{}) - } - - lastObj[k] = v - lastObj = v - } - - lastObj[keyParts[len(keyParts)-1]] = kv[1] -} - func skipMultilineComment(scanner *bufio.Scanner) { for line := scanner.Text(); !strings.Contains(line, "*/") && scanner.Scan(); { line = scanner.Text() } } -//nolint:gocyclo,funlen +//nolint:gocyclo func extractRunContextFromComments(t *testing.T, sourcePath string) *runContext { f, err := os.Open(sourcePath) require.NoError(t, err) @@ -324,14 +271,6 @@ func extractRunContextFromComments(t *testing.T, sourcePath string) *runContext rc.args = strings.Split(after, " ") continue - case "//golangcitest:config": - require.NotEmpty(t, after) - if rc.config == nil { - rc.config = map[string]interface{}{} - } - buildConfigFromShortRepr(t, after, rc.config) - continue - case "//golangcitest:config_path": require.NotEmpty(t, after) rc.configPath = after @@ -394,10 +333,7 @@ func TestTparallel(t *testing.T) { args = append(args, rc.args...) - cfg, err := yaml.Marshal(rc.config) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). + testshared.NewLintRunner(t).RunWithYamlConfig("", args...). ExpectHasIssue( "testdata/tparallel/missing_toplevel_test.go:7:6: TestTopLevel should call t.Parallel on the top level as well as its subtests\n", ) @@ -416,10 +352,7 @@ func TestTparallel(t *testing.T) { args = append(args, rc.args...) - cfg, err := yaml.Marshal(rc.config) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). + testshared.NewLintRunner(t).RunWithYamlConfig("", args...). ExpectHasIssue( "testdata/tparallel/missing_subtest_test.go:7:6: TestSubtests's subtests should call t.Parallel\n", ) @@ -438,9 +371,6 @@ func TestTparallel(t *testing.T) { args = append(args, rc.args...) - cfg, err := yaml.Marshal(rc.config) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...).ExpectNoIssues() + testshared.NewLintRunner(t).RunWithYamlConfig("", args...).ExpectNoIssues() }) } diff --git a/test/testdata/configs/cyclop.yml b/test/testdata/configs/cyclop.yml new file mode 100644 index 000000000000..abc1deb1b34f --- /dev/null +++ b/test/testdata/configs/cyclop.yml @@ -0,0 +1,3 @@ +linters-settings: + cyclop: + max-complexity: 15 diff --git a/test/testdata/configs/dupl.yml b/test/testdata/configs/dupl.yml new file mode 100644 index 000000000000..8abf10175e0c --- /dev/null +++ b/test/testdata/configs/dupl.yml @@ -0,0 +1,3 @@ +linters-settings: + dupl: + threshold: 20 diff --git a/test/testdata/configs/errcheck_exclude.yml b/test/testdata/configs/errcheck_exclude.yml new file mode 100644 index 000000000000..19fac1567019 --- /dev/null +++ b/test/testdata/configs/errcheck_exclude.yml @@ -0,0 +1,4 @@ +linters-settings: + errcheck: + check-blank: true + exclude: testdata/errcheck/exclude.txt diff --git a/test/testdata/configs/errcheck_ignore_default.yml b/test/testdata/configs/errcheck_ignore_default.yml new file mode 100644 index 000000000000..fe801445f7ae --- /dev/null +++ b/test/testdata/configs/errcheck_ignore_default.yml @@ -0,0 +1,3 @@ +linters-settings: + errcheck: + check-blank: true diff --git a/test/testdata/configs/errcheck_type_assertions.yml b/test/testdata/configs/errcheck_type_assertions.yml new file mode 100644 index 000000000000..aa2ba20a422d --- /dev/null +++ b/test/testdata/configs/errcheck_type_assertions.yml @@ -0,0 +1,3 @@ +linters-settings: + errcheck: + check-type-assertions: true diff --git a/test/testdata/configs/forbidigo_include_godoc_examples.yml b/test/testdata/configs/forbidigo_include_godoc_examples.yml new file mode 100644 index 000000000000..8bf10328866a --- /dev/null +++ b/test/testdata/configs/forbidigo_include_godoc_examples.yml @@ -0,0 +1,4 @@ +linters-settings: + forbidigo: + exclude-godoc-examples: false + diff --git a/test/testdata/configs/funlen.yml b/test/testdata/configs/funlen.yml new file mode 100644 index 000000000000..47acaaf42dff --- /dev/null +++ b/test/testdata/configs/funlen.yml @@ -0,0 +1,4 @@ +linters-settings: + funlen: + lines: 20 + statements: 10 diff --git a/test/testdata/configs/gocognit.yml b/test/testdata/configs/gocognit.yml new file mode 100644 index 000000000000..451443caf1a6 --- /dev/null +++ b/test/testdata/configs/gocognit.yml @@ -0,0 +1,3 @@ +linters-settings: + gocognit: + min-complexity: 2 diff --git a/test/testdata/configs/goconst_calls_enabled.yml b/test/testdata/configs/goconst_calls_enabled.yml new file mode 100644 index 000000000000..5d0d09585f7d --- /dev/null +++ b/test/testdata/configs/goconst_calls_enabled.yml @@ -0,0 +1,3 @@ +linters-settings: + goconst: + ignore-calls: false diff --git a/test/testdata/configs/goconst_dont_ignore.yml b/test/testdata/configs/goconst_dont_ignore.yml new file mode 100644 index 000000000000..fed6e5b28707 --- /dev/null +++ b/test/testdata/configs/goconst_dont_ignore.yml @@ -0,0 +1,3 @@ +linters-settings: + goconst: + ignore-tests: false diff --git a/test/testdata/configs/goconst_ignore.yml b/test/testdata/configs/goconst_ignore.yml new file mode 100644 index 000000000000..f0fd0c242bae --- /dev/null +++ b/test/testdata/configs/goconst_ignore.yml @@ -0,0 +1,3 @@ +linters-settings: + goconst: + ignore-tests: true diff --git a/test/testdata/configs/gocyclo.yml b/test/testdata/configs/gocyclo.yml new file mode 100644 index 000000000000..c42672fae94d --- /dev/null +++ b/test/testdata/configs/gocyclo.yml @@ -0,0 +1,3 @@ +linters-settings: + gocyclo: + min-complexity: 20 diff --git a/test/testdata/configs/godox.yml b/test/testdata/configs/godox.yml new file mode 100644 index 000000000000..d9bd4d44f6d2 --- /dev/null +++ b/test/testdata/configs/godox.yml @@ -0,0 +1,5 @@ +linters-settings: + godox: + keywords: + - FIXME + - TODO diff --git a/test/testdata/configs/gofmt_no_simplify.yml b/test/testdata/configs/gofmt_no_simplify.yml new file mode 100644 index 000000000000..ceeaa00f9946 --- /dev/null +++ b/test/testdata/configs/gofmt_no_simplify.yml @@ -0,0 +1,3 @@ +linters-settings: + gofmt: + simplify: false diff --git a/test/testdata/configs/gofumpt-fix.yml b/test/testdata/configs/gofumpt-fix.yml new file mode 100644 index 000000000000..921da9f4c15c --- /dev/null +++ b/test/testdata/configs/gofumpt-fix.yml @@ -0,0 +1,3 @@ +linters-settings: + gofumpt: + extra-rules: true diff --git a/test/testdata/configs/gofumpt_with_extra.yml b/test/testdata/configs/gofumpt_with_extra.yml new file mode 100644 index 000000000000..921da9f4c15c --- /dev/null +++ b/test/testdata/configs/gofumpt_with_extra.yml @@ -0,0 +1,3 @@ +linters-settings: + gofumpt: + extra-rules: true diff --git a/test/testdata/configs/goimports.yml b/test/testdata/configs/goimports.yml new file mode 100644 index 000000000000..cb8c0edf99f8 --- /dev/null +++ b/test/testdata/configs/goimports.yml @@ -0,0 +1,3 @@ +linters-settings: + goimports: + local-prefixes: github.com/golangci/golangci-lint diff --git a/test/testdata/configs/govet.yml b/test/testdata/configs/govet.yml new file mode 100644 index 000000000000..86e8edd3377c --- /dev/null +++ b/test/testdata/configs/govet.yml @@ -0,0 +1,3 @@ +linters-settings: + govet: + check-shadowing: true diff --git a/test/testdata/configs/govet_fieldalignment.yml b/test/testdata/configs/govet_fieldalignment.yml new file mode 100644 index 000000000000..a4d4fe91f67d --- /dev/null +++ b/test/testdata/configs/govet_fieldalignment.yml @@ -0,0 +1,3 @@ +linters-settings: + govet: + enable: fieldalignment diff --git a/test/testdata/configs/govet_ifaceassert.yml b/test/testdata/configs/govet_ifaceassert.yml new file mode 100644 index 000000000000..581dbc05100e --- /dev/null +++ b/test/testdata/configs/govet_ifaceassert.yml @@ -0,0 +1,3 @@ +linters-settings: + govet: + enable: ifaceassert diff --git a/test/testdata/configs/lll.yml b/test/testdata/configs/lll.yml new file mode 100644 index 000000000000..2e2fde53e908 --- /dev/null +++ b/test/testdata/configs/lll.yml @@ -0,0 +1,3 @@ +linters-settings: + lll: + tab-width: 4 diff --git a/test/testdata/configs/makezero_always.yml b/test/testdata/configs/makezero_always.yml new file mode 100644 index 000000000000..d7d1fa656cfb --- /dev/null +++ b/test/testdata/configs/makezero_always.yml @@ -0,0 +1,3 @@ +linters-settings: + makezero: + always: true diff --git a/test/testdata/configs/nestif.yml b/test/testdata/configs/nestif.yml new file mode 100644 index 000000000000..e6c4fb0cf58b --- /dev/null +++ b/test/testdata/configs/nestif.yml @@ -0,0 +1,3 @@ +linters-settings: + nestif: + min-complexity: 1 diff --git a/test/testdata/configs/nolintlint.yml b/test/testdata/configs/nolintlint.yml new file mode 100644 index 000000000000..b0cc6ebd7ec4 --- /dev/null +++ b/test/testdata/configs/nolintlint.yml @@ -0,0 +1,4 @@ +linters-settings: + nolintlint: + require-explanation: true + require-specific: true diff --git a/test/testdata/configs/nolintlint_unused.yml b/test/testdata/configs/nolintlint_unused.yml new file mode 100644 index 000000000000..b92160a83fda --- /dev/null +++ b/test/testdata/configs/nolintlint_unused.yml @@ -0,0 +1,3 @@ +linters-settings: + nolintlint: + allow-unused: false diff --git a/test/testdata/configs/whitespace-fix.yml b/test/testdata/configs/whitespace-fix.yml new file mode 100644 index 000000000000..dad470cee82d --- /dev/null +++ b/test/testdata/configs/whitespace-fix.yml @@ -0,0 +1,4 @@ +linters-settings: + whitespace: + multi-if: true + multi-func: true diff --git a/test/testdata/configs/wsl.yml b/test/testdata/configs/wsl.yml new file mode 100644 index 000000000000..4197633eef95 --- /dev/null +++ b/test/testdata/configs/wsl.yml @@ -0,0 +1,3 @@ +linters-settings: + wsl: + allow-cuddle-declarations: false diff --git a/test/testdata/cyclop.go b/test/testdata/cyclop.go index 23870aba4eda..de93a9dab659 100644 --- a/test/testdata/cyclop.go +++ b/test/testdata/cyclop.go @@ -1,5 +1,5 @@ //golangcitest:args -Ecyclop -//golangcitest:config linters-settings.cyclop.max-complexity=15 +//golangcitest:config_path testdata/configs/cyclop.yml package testdata func cyclopComplexFunc(s string) { // ERROR "calculated cyclomatic complexity for function cyclopComplexFunc is 22, max is 15" diff --git a/test/testdata/dupl.go b/test/testdata/dupl.go index 109372f84355..863c334cd1cf 100644 --- a/test/testdata/dupl.go +++ b/test/testdata/dupl.go @@ -1,5 +1,5 @@ //golangcitest:args -Edupl -//golangcitest:config linters-settings.dupl.threshold=20 +//golangcitest:config_path testdata/configs/dupl.yml package testdata type DuplLogger struct{} diff --git a/test/testdata/errcheck_exclude.go b/test/testdata/errcheck_exclude.go index 69af590a75a6..b6ddd9872cfa 100644 --- a/test/testdata/errcheck_exclude.go +++ b/test/testdata/errcheck_exclude.go @@ -1,6 +1,5 @@ //golangcitest:args -Eerrcheck -//golangcitest:config linters-settings.errcheck.check-blank=true -//golangcitest:config linters-settings.errcheck.exclude=testdata/errcheck/exclude.txt +//golangcitest:config_path testdata/configs/errcheck_exclude.yml package testdata import ( diff --git a/test/testdata/errcheck_ignore_default.go b/test/testdata/errcheck_ignore_default.go index 961c9cdaabbe..e7a1466eb9da 100644 --- a/test/testdata/errcheck_ignore_default.go +++ b/test/testdata/errcheck_ignore_default.go @@ -1,5 +1,5 @@ //golangcitest:args -Eerrcheck -//golangcitest:config linters-settings.errcheck.check-blank=true +//golangcitest:config_path testdata/configs/errcheck_ignore_default.yml package testdata import ( diff --git a/test/testdata/errcheck_type_assertions.go b/test/testdata/errcheck_type_assertions.go index 9a581fb2273b..94a192ef276b 100644 --- a/test/testdata/errcheck_type_assertions.go +++ b/test/testdata/errcheck_type_assertions.go @@ -1,5 +1,5 @@ //golangcitest:args -Eerrcheck -//golangcitest:config linters-settings.errcheck.check-type-assertions=true +//golangcitest:config_path testdata/configs/errcheck_type_assertions.yml package testdata func ErrorTypeAssertion(filter map[string]interface{}) bool { diff --git a/test/testdata/fix/in/gofumpt.go b/test/testdata/fix/in/gofumpt.go index 1fc4a8d6ada6..83b6c9783ed3 100644 --- a/test/testdata/fix/in/gofumpt.go +++ b/test/testdata/fix/in/gofumpt.go @@ -1,5 +1,5 @@ //golangcitest:args -Egofumpt -//golangcitest:config linters-settings.gofumpt.extra-rules=true +//golangcitest:config_path testdata/configs/gofumpt-fix.yml package p import "fmt" diff --git a/test/testdata/fix/in/whitespace.go b/test/testdata/fix/in/whitespace.go index b720d3c3802a..be8050e22f26 100644 --- a/test/testdata/fix/in/whitespace.go +++ b/test/testdata/fix/in/whitespace.go @@ -1,6 +1,5 @@ //golangcitest:args -Ewhitespace -//golangcitest:config linters-settings.whitespace.multi-if=true -//golangcitest:config linters-settings.whitespace.multi-func=true +//golangcitest:config_path testdata/configs/whitespace-fix.yml package p import "fmt" diff --git a/test/testdata/fix/out/gofumpt.go b/test/testdata/fix/out/gofumpt.go index a0ca50b05e66..dd366b7cce41 100644 --- a/test/testdata/fix/out/gofumpt.go +++ b/test/testdata/fix/out/gofumpt.go @@ -1,5 +1,5 @@ //golangcitest:args -Egofumpt -//golangcitest:config linters-settings.gofumpt.extra-rules=true +//golangcitest:config_path testdata/configs/gofumpt-fix.yml package p import "fmt" diff --git a/test/testdata/fix/out/whitespace.go b/test/testdata/fix/out/whitespace.go index df6e3fa68a97..653a7343fb09 100644 --- a/test/testdata/fix/out/whitespace.go +++ b/test/testdata/fix/out/whitespace.go @@ -1,6 +1,5 @@ //golangcitest:args -Ewhitespace -//golangcitest:config linters-settings.whitespace.multi-if=true -//golangcitest:config linters-settings.whitespace.multi-func=true +//golangcitest:config_path testdata/configs/whitespace-fix.yml package p import "fmt" diff --git a/test/testdata/forbidigo_include_godoc_examples_test.go b/test/testdata/forbidigo_include_godoc_examples_test.go index 9812af1ce152..ea6fc3e055ea 100644 --- a/test/testdata/forbidigo_include_godoc_examples_test.go +++ b/test/testdata/forbidigo_include_godoc_examples_test.go @@ -1,5 +1,5 @@ //golangcitest:args -Eforbidigo -//golangcitest:config linters-settings.forbidigo.exclude-godoc-examples=false +//golangcitest:config_path testdata/configs/forbidigo_include_godoc_examples.yml package testdata import "fmt" diff --git a/test/testdata/funlen.go b/test/testdata/funlen.go index 5dbbf195d2f7..f8059dbcf578 100644 --- a/test/testdata/funlen.go +++ b/test/testdata/funlen.go @@ -1,6 +1,5 @@ //golangcitest:args -Efunlen -//golangcitest:config linters-settings.funlen.lines=20 -//golangcitest:config linters-settings.funlen.statements=10 +//golangcitest:config_path testdata/configs/funlen.yml package testdata func TooManyLines() { // ERROR `Function 'TooManyLines' is too long \(22 > 20\)` diff --git a/test/testdata/gocognit.go b/test/testdata/gocognit.go index 79a4a0f1ef6e..ffd582a30200 100644 --- a/test/testdata/gocognit.go +++ b/test/testdata/gocognit.go @@ -1,5 +1,5 @@ //golangcitest:args -Egocognit -//golangcitest:config linters-settings.gocognit.min-complexity=2 +//golangcitest:config_path testdata/configs/gocognit.yml package testdata func GoCognit_CC4_GetWords(number int) string { // ERROR "cognitive complexity 4 of func .* is high .*" diff --git a/test/testdata/goconst_calls_enabled.go b/test/testdata/goconst_calls_enabled.go index d813ad236a2d..83df4e78b7e1 100644 --- a/test/testdata/goconst_calls_enabled.go +++ b/test/testdata/goconst_calls_enabled.go @@ -1,5 +1,5 @@ //golangcitest:args -Egoconst -//golangcitest:config linters-settings.goconst.ignore-calls=false +//golangcitest:config_path testdata/configs/goconst_calls_enabled.yml package testdata import "fmt" diff --git a/test/testdata/goconst_dont_ignore_test.go b/test/testdata/goconst_dont_ignore_test.go index 51ebd97ae555..7282827047a1 100644 --- a/test/testdata/goconst_dont_ignore_test.go +++ b/test/testdata/goconst_dont_ignore_test.go @@ -1,5 +1,5 @@ //golangcitest:args -Egoconst -//golangcitest:config linters-settings.goconst.ignore-tests=false +//golangcitest:config_path testdata/configs/goconst_dont_ignore.yml package testdata import ( diff --git a/test/testdata/goconst_ignore_test.go b/test/testdata/goconst_ignore_test.go index 9ef9eb129a94..5180b62ab394 100644 --- a/test/testdata/goconst_ignore_test.go +++ b/test/testdata/goconst_ignore_test.go @@ -1,5 +1,5 @@ //golangcitest:args -Egoconst -//golangcitest:config linters-settings.goconst.ignore-tests=true +//golangcitest:config_path testdata/configs/goconst_ignore.yml package testdata import ( diff --git a/test/testdata/gocyclo.go b/test/testdata/gocyclo.go index ca5b85ca8b44..3fd1040ee596 100644 --- a/test/testdata/gocyclo.go +++ b/test/testdata/gocyclo.go @@ -1,5 +1,5 @@ //golangcitest:args -Egocyclo -//golangcitest:config linters-settings.gocyclo.min-complexity=20 +//golangcitest:config_path testdata/configs/gocyclo.yml package testdata import "net/http" diff --git a/test/testdata/godox.go b/test/testdata/godox.go index c86b9c26bff3..e6f2364d6583 100644 --- a/test/testdata/godox.go +++ b/test/testdata/godox.go @@ -1,5 +1,5 @@ //golangcitest:args -Egodox -//golangcitest:config linters-settings.godox.keywords=FIXME,TODO +//golangcitest:config_path testdata/configs/godox.yml package testdata func todoLeftInCode() { diff --git a/test/testdata/gofmt_no_simplify.go b/test/testdata/gofmt_no_simplify.go index 98267ad3abce..423e60488928 100644 --- a/test/testdata/gofmt_no_simplify.go +++ b/test/testdata/gofmt_no_simplify.go @@ -1,5 +1,5 @@ //golangcitest:args -Egofmt -//golangcitest:config linters-settings.gofmt.simplify=false +//golangcitest:config_path testdata/configs/gofmt_no_simplify.yml package testdata import "fmt" diff --git a/test/testdata/gofumpt_with_extra.go b/test/testdata/gofumpt_with_extra.go index 00c7f21e13d6..9fdab582c09d 100644 --- a/test/testdata/gofumpt_with_extra.go +++ b/test/testdata/gofumpt_with_extra.go @@ -1,5 +1,5 @@ //golangcitest:args -Egofumpt -//golangcitest:config linters-settings.gofumpt.extra-rules=true +//golangcitest:config_path testdata/configs/gofumpt_with_extra.yml package testdata import "fmt" diff --git a/test/testdata/goimports/goimports.go b/test/testdata/goimports/goimports.go index a614bb5921df..a94b76c24b19 100644 --- a/test/testdata/goimports/goimports.go +++ b/test/testdata/goimports/goimports.go @@ -1,5 +1,5 @@ //golangcitest:args -Egoimports -//golangcitest:config linters-settings.goimports.local-prefixes=github.com/golangci/golangci-lint +//golangcitest:config_path testdata/configs/goimports.yml package goimports import ( diff --git a/test/testdata/govet.go b/test/testdata/govet.go index 5d0b8f81e26d..53c0e35d7d71 100644 --- a/test/testdata/govet.go +++ b/test/testdata/govet.go @@ -1,5 +1,5 @@ //golangcitest:args -Egovet -//golangcitest:config linters-settings.govet.check-shadowing=true +//golangcitest:config_path testdata/configs/govet.yml package testdata import ( diff --git a/test/testdata/govet_fieldalignment.go b/test/testdata/govet_fieldalignment.go index 20e3790da3f3..e7d6ffce8566 100644 --- a/test/testdata/govet_fieldalignment.go +++ b/test/testdata/govet_fieldalignment.go @@ -1,5 +1,5 @@ //golangcitest:args -Egovet -//golangcitest:config linters-settings.govet.enable=fieldalignment +//golangcitest:config_path testdata/configs/govet_fieldalignment.yml package testdata type gvfaGood struct { diff --git a/test/testdata/govet_ifaceassert.go b/test/testdata/govet_ifaceassert.go index 3e2020ccd3e2..fc8910e3daee 100644 --- a/test/testdata/govet_ifaceassert.go +++ b/test/testdata/govet_ifaceassert.go @@ -1,5 +1,5 @@ //golangcitest:args -Egovet -//golangcitest:config linters-settings.govet.enable=ifaceassert +//golangcitest:config_path testdata/configs/govet_ifaceassert.yml package testdata import ( diff --git a/test/testdata/lll.go b/test/testdata/lll.go index e961c7b0f150..331e78d5aad6 100644 --- a/test/testdata/lll.go +++ b/test/testdata/lll.go @@ -1,5 +1,5 @@ //golangcitest:args -Elll -//golangcitest:config linters-settings.lll.tab-width=4 +//golangcitest:config_path testdata/configs/lll.yml package testdata func Lll() { diff --git a/test/testdata/makezero_always.go b/test/testdata/makezero_always.go index 622c49c5104c..89093e0fc7b0 100644 --- a/test/testdata/makezero_always.go +++ b/test/testdata/makezero_always.go @@ -1,5 +1,5 @@ //golangcitest:args -Emakezero -//golangcitest:config linters-settings.makezero.always=true +//golangcitest:config_path testdata/configs/makezero_always.yml package testdata import "math" diff --git a/test/testdata/nestif.go b/test/testdata/nestif.go index 219635545601..5dc7da326801 100644 --- a/test/testdata/nestif.go +++ b/test/testdata/nestif.go @@ -1,5 +1,5 @@ //golangcitest:args -Enestif -//golangcitest:config linters-settings.nestif.min-complexity=1 +//golangcitest:config_path testdata/configs/nestif.yml package testdata func _() { diff --git a/test/testdata/nolintlint.go b/test/testdata/nolintlint.go index 1043b9846d28..da5537f0a045 100644 --- a/test/testdata/nolintlint.go +++ b/test/testdata/nolintlint.go @@ -1,7 +1,6 @@ //golangcitest:args -Enolintlint -Emisspell //golangcitest:expected_linter nolintlint -//golangcitest:config linters-settings.nolintlint.require-explanation=true -//golangcitest:config linters-settings.nolintlint.require-specific=true +//golangcitest:config_path testdata/configs/nolintlint.yml package testdata import "fmt" diff --git a/test/testdata/nolintlint_unused.go b/test/testdata/nolintlint_unused.go index 96bc2a70cbfa..34c32ae994de 100644 --- a/test/testdata/nolintlint_unused.go +++ b/test/testdata/nolintlint_unused.go @@ -1,6 +1,6 @@ //golangcitest:args -Enolintlint -Evarcheck -//golangcitest:config linters-settings.nolintlint.allow-unused=false //golangcitest:expected_linter nolintlint +//golangcitest:config_path testdata/configs/nolintlint_unused.yml package testdata import "fmt" diff --git a/test/testdata/wsl.go b/test/testdata/wsl.go index 03b6988d4d70..75311c5c2fc8 100644 --- a/test/testdata/wsl.go +++ b/test/testdata/wsl.go @@ -1,5 +1,5 @@ //golangcitest:args -Ewsl -//golangcitest:config linters-settings.wsl.tests=1 +//golangcitest:config_path testdata/configs/wsl.yml package testdata import ( diff --git a/test/testshared/testshared.go b/test/testshared/testshared.go index 55b606d840bc..e3c55cd0ec28 100644 --- a/test/testshared/testshared.go +++ b/test/testshared/testshared.go @@ -153,8 +153,7 @@ func (r *LintRunner) RunCommandWithYamlConfig(cfg, command string, args ...strin defer os.Remove(cfgPath) } - cfg = strings.TrimSpace(cfg) - cfg = strings.ReplaceAll(cfg, "\t", " ") + cfg = strings.ReplaceAll(strings.TrimSpace(cfg), "\t", " ") err = os.WriteFile(cfgPath, []byte(cfg), os.ModePerm) assert.NoError(r.t, err) From 5e140494b614bf72ec94235e5d1f64bc42c02b25 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Mon, 15 Aug 2022 21:56:32 +0200 Subject: [PATCH 144/162] dev: rewrite the tests framework (#3100) --- test/bench/bench_test.go | 2 +- test/data.go | 1 - test/enabled_linters_test.go | 74 ++-- test/fix_test.go | 32 +- test/linters_test.go | 458 +++++++++--------------- test/run_test.go | 555 +++++++++++++++++++++++------ test/testdata/staticcheck.go | 5 - test/testshared/directives.go | 121 +++++++ test/testshared/directives_test.go | 20 ++ test/testshared/runner.go | 324 +++++++++++++++++ test/testshared/runner_test.go | 225 ++++++++++++ test/testshared/testdata/all.go | 10 + test/testshared/testshared.go | 163 --------- 13 files changed, 1378 insertions(+), 612 deletions(-) create mode 100644 test/testshared/directives.go create mode 100644 test/testshared/directives_test.go create mode 100644 test/testshared/runner.go create mode 100644 test/testshared/runner_test.go create mode 100644 test/testshared/testdata/all.go delete mode 100644 test/testshared/testshared.go diff --git a/test/bench/bench_test.go b/test/bench/bench_test.go index a6e83212bb93..3e565b9732c1 100644 --- a/test/bench/bench_test.go +++ b/test/bench/bench_test.go @@ -201,7 +201,7 @@ func runOne(b *testing.B, run func(*testing.B), progName string) *runResult { } func BenchmarkGolangciLint(b *testing.B) { - testshared.NewLintRunner(b).Install() + testshared.InstallGolangciLint(b) type bcase struct { name string diff --git a/test/data.go b/test/data.go index 63a6076bb981..217be64c6340 100644 --- a/test/data.go +++ b/test/data.go @@ -5,7 +5,6 @@ import ( ) const testdataDir = "testdata" -const binName = "../golangci-lint" var minimalPkg = getTestDataDir("minimalpkg") diff --git a/test/enabled_linters_test.go b/test/enabled_linters_test.go index 70cb4ffc47c2..0b1f5c56ce84 100644 --- a/test/enabled_linters_test.go +++ b/test/enabled_linters_test.go @@ -23,7 +23,7 @@ func inSlice(s []string, v string) bool { func getEnabledByDefaultFastLintersExcept(except ...string) []string { m := lintersdb.NewManager(nil, nil) ebdl := m.GetAllEnabledByDefaultLinters() - ret := []string{} + var ret []string for _, lc := range ebdl { if lc.IsSlowLinter() { continue @@ -52,7 +52,7 @@ func getAllFastLintersWith(with ...string) []string { func getEnabledByDefaultLinters() []string { ebdl := lintersdb.NewManager(nil, nil).GetAllEnabledByDefaultLinters() - ret := []string{} + var ret []string for _, lc := range ebdl { ret = append(ret, lc.Name()) } @@ -76,15 +76,13 @@ func getEnabledByDefaultFastLintersWith(with ...string) []string { //nolint:funlen func TestEnabledLinters(t *testing.T) { - type tc struct { + cases := []struct { name string cfg string - el []string - args string + enabledLinters []string + args []string noImplicitFast bool - } - - cases := []tc{ + }{ { name: "disable govet in config", cfg: ` @@ -92,7 +90,7 @@ func TestEnabledLinters(t *testing.T) { disable: - govet `, - el: getEnabledByDefaultFastLintersExcept("govet"), + enabledLinters: getEnabledByDefaultFastLintersExcept("govet"), }, { name: "enable golint in config", @@ -101,22 +99,22 @@ func TestEnabledLinters(t *testing.T) { enable: - golint `, - el: getEnabledByDefaultFastLintersWith("golint"), + enabledLinters: getEnabledByDefaultFastLintersWith("golint"), }, { - name: "disable govet in cmd", - args: "-Dgovet", - el: getEnabledByDefaultFastLintersExcept("govet"), + name: "disable govet in cmd", + args: []string{"-Dgovet"}, + enabledLinters: getEnabledByDefaultFastLintersExcept("govet"), }, { name: "enable gofmt in cmd and enable golint in config", - args: "-Egofmt", + args: []string{"-Egofmt"}, cfg: ` linters: enable: - golint `, - el: getEnabledByDefaultFastLintersWith("golint", "gofmt"), + enabledLinters: getEnabledByDefaultFastLintersWith("golint", "gofmt"), }, { name: "fast option in config", @@ -124,7 +122,7 @@ func TestEnabledLinters(t *testing.T) { linters: fast: true `, - el: getEnabledByDefaultFastLintersWith(), + enabledLinters: getEnabledByDefaultFastLintersWith(), noImplicitFast: true, }, { @@ -133,13 +131,13 @@ func TestEnabledLinters(t *testing.T) { linters: fast: false `, - el: getEnabledByDefaultLinters(), + enabledLinters: getEnabledByDefaultLinters(), noImplicitFast: true, }, { name: "set fast option in command-line", - args: "--fast", - el: getEnabledByDefaultFastLintersWith(), + args: []string{"--fast"}, + enabledLinters: getEnabledByDefaultFastLintersWith(), noImplicitFast: true, }, { @@ -148,8 +146,8 @@ func TestEnabledLinters(t *testing.T) { linters: fast: false `, - args: "--fast", - el: getEnabledByDefaultFastLintersWith(), + args: []string{"--fast"}, + enabledLinters: getEnabledByDefaultFastLintersWith(), noImplicitFast: true, }, { @@ -158,36 +156,42 @@ func TestEnabledLinters(t *testing.T) { linters: fast: true `, - args: "--fast=false", - el: getEnabledByDefaultLinters(), + args: []string{"--fast=false"}, + enabledLinters: getEnabledByDefaultLinters(), noImplicitFast: true, }, { name: "fast option combined with enable and enable-all", - args: "--enable-all --fast --enable=unused", - el: getAllFastLintersWith("unused"), + args: []string{"--enable-all", "--fast", "--enable=unused"}, + enabledLinters: getAllFastLintersWith("unused"), noImplicitFast: true, }, } - runner := testshared.NewLintRunner(t) + testshared.InstallGolangciLint(t) + for _, c := range cases { c := c t.Run(c.name, func(t *testing.T) { t.Parallel() - runArgs := []string{"--verbose"} + args := []string{"--verbose"} if !c.noImplicitFast { - runArgs = append(runArgs, "--fast") + args = append(args, "--fast") } - if c.args != "" { - runArgs = append(runArgs, strings.Split(c.args, " ")...) - } - r := runner.RunCommandWithYamlConfig(c.cfg, "linters", runArgs...) - sort.StringSlice(c.el).Sort() - expectedLine := fmt.Sprintf("Active %d linters: [%s]", len(c.el), strings.Join(c.el, " ")) - r.ExpectOutputContains(expectedLine) + r := testshared.NewRunnerBuilder(t). + WithCommand("linters"). + WithArgs(args...). + WithArgs(c.args...). + WithConfig(c.cfg). + Runner(). + Run() + + sort.StringSlice(c.enabledLinters).Sort() + + r.ExpectOutputContains(fmt.Sprintf("Active %d linters: [%s]", + len(c.enabledLinters), strings.Join(c.enabledLinters, " "))) }) } } diff --git a/test/fix_test.go b/test/fix_test.go index 6b0e27e36db2..f39a96893c52 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -35,36 +35,34 @@ func TestFix(t *testing.T) { err := exec.Command("cp", "-R", fixDir, tmpDir).Run() require.NoError(t, err) + testshared.InstallGolangciLint(t) + inputs := findSources(tmpDir, "in", "*.go") for _, input := range inputs { input := input t.Run(filepath.Base(input), func(t *testing.T) { t.Parallel() - args := []string{ - "--go=1.17", // TODO(ldez): we force to use an old version of Go for the CI and the tests. - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - "--allow-parallel-runners", "--fix", - input, - } - rc := extractRunContextFromComments(t, input) + rc := testshared.ParseTestDirectives(t, input) if rc == nil { t.Logf("Skipped: %s", input) return } - args = append(args, rc.args...) - - var runResult *testshared.RunResult - if rc.configPath != "" { - args = append(args, "-c", rc.configPath) - runResult = testshared.NewLintRunner(t).RunCommand("run", args...) - } else { - runResult = testshared.NewLintRunner(t).RunWithYamlConfig("", args...) - } + runResult := testshared.NewRunnerBuilder(t). + WithRunContext(rc). + WithTargetPath(input). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number", + "--fix"). + Runner(). + Run() // nolintlint test uses non existing linters (bob, alice) - if rc.expectedLinter != "nolintlint" { + if rc.ExpectedLinter != "nolintlint" { runResult.ExpectExitCode(exitcodes.Success) } diff --git a/test/linters_test.go b/test/linters_test.go index 637067d959d5..c1e49ccf6361 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -1,45 +1,30 @@ package test import ( - "bufio" "fmt" - "go/build/constraint" "os" "os/exec" "path" "path/filepath" - "runtime" - "strings" "testing" - hcversion "github.com/hashicorp/go-version" "github.com/stretchr/testify/require" "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" ) -func runGoErrchk(c *exec.Cmd, defaultExpectedLinter string, files []string, t *testing.T) { - output, err := c.CombinedOutput() - // The returned error will be nil if the test file does not have any issues - // and thus the linter exits with exit code 0. So perform the additional - // assertions only if the error is non-nil. - if err != nil { - var exitErr *exec.ExitError - require.ErrorAs(t, err, &exitErr) - require.Equal(t, exitcodes.IssuesFound, exitErr.ExitCode(), "Unexpected exit code: %s", string(output)) - } - - fullshort := make([]string, 0, len(files)*2) - for _, f := range files { - fullshort = append(fullshort, f, filepath.Base(f)) - } +func TestSourcesFromTestdataWithIssuesDir(t *testing.T) { + testSourcesFromDir(t, testdataDir) +} - err = errorCheck(string(output), false, defaultExpectedLinter, fullshort...) - require.NoError(t, err) +func TestTypecheck(t *testing.T) { + testSourcesFromDir(t, filepath.Join(testdataDir, "notcompiles")) } func testSourcesFromDir(t *testing.T, dir string) { + t.Helper() + t.Log(filepath.Join(dir, "*.go")) findSources := func(pathPatterns ...string) []string { @@ -50,7 +35,7 @@ func testSourcesFromDir(t *testing.T, dir string) { } sources := findSources(dir, "*.go") - testshared.NewLintRunner(t).Install() + testshared.InstallGolangciLint(t) for _, s := range sources { s := s @@ -61,88 +46,92 @@ func testSourcesFromDir(t *testing.T, dir string) { } } -func TestSourcesFromTestdataWithIssuesDir(t *testing.T) { - testSourcesFromDir(t, testdataDir) -} - -func TestTypecheck(t *testing.T) { - testSourcesFromDir(t, filepath.Join(testdataDir, "notcompiles")) -} +func testOneSource(t *testing.T, sourcePath string) { + t.Helper() -func TestGoimportsLocal(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "goimports", "goimports.go") args := []string{ - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - sourcePath, + "--allow-parallel-runners", + "--disable-all", + "--print-issued-lines=false", + "--out-format=line-number", + "--max-same-issues=100", } - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - cfg, err := os.ReadFile(rc.configPath) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/goimports/goimports.go:8: File is not `goimports`-ed") -} - -func TestGciLocal(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - args := []string{ - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - sourcePath, + rc := testshared.ParseTestDirectives(t, sourcePath) + if rc == nil { + t.Skipf("Skipped: %s", sourcePath) } - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) + for _, addArg := range []string{"", "-Etypecheck"} { + caseArgs := append([]string{}, args...) - args = append(args, rc.args...) + if addArg != "" { + caseArgs = append(caseArgs, addArg) + } - cfg, err := os.ReadFile(rc.configPath) - require.NoError(t, err) + files := []string{sourcePath} + + runner := testshared.NewRunnerBuilder(t). + WithNoParallelRunners(). + WithArgs(caseArgs...). + WithRunContext(rc). + WithTargetPath(sourcePath). + Runner() + + output, err := runner.RawRun() + // The returned error will be nil if the test file does not have any issues + // and thus the linter exits with exit code 0. + // So perform the additional assertions only if the error is non-nil. + if err != nil { + var exitErr *exec.ExitError + require.ErrorAs(t, err, &exitErr) + require.Equal(t, exitcodes.IssuesFound, exitErr.ExitCode(), "Unexpected exit code: %s", string(output)) + } - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). - ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed") + fullshort := make([]string, 0, len(files)*2) + for _, f := range files { + fullshort = append(fullshort, f, filepath.Base(f)) + } + + err = errorCheck(string(output), false, rc.ExpectedLinter, fullshort...) + require.NoError(t, err) + } } func TestMultipleOutputs(t *testing.T) { sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - args := []string{ - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number,json:stdout", - sourcePath, - } - - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - cfg, err := os.ReadFile(rc.configPath) - require.NoError(t, err) - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number,json:stdout", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputContains(`"Issues":[`) } func TestStderrOutput(t *testing.T) { sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - args := []string{ - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number,json:stderr", - sourcePath, - } - - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - cfg, err := os.ReadFile(rc.configPath) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number,json:stderr", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputContains(`"Issues":[`) } @@ -151,21 +140,19 @@ func TestFileOutput(t *testing.T) { resultPath := path.Join(t.TempDir(), "golangci_lint_test_result") sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - args := []string{ - "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", - fmt.Sprintf("--out-format=json:%s,line-number", resultPath), - sourcePath, - } - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - cfg, err := os.ReadFile(rc.configPath) - require.NoError(t, err) - - testshared.NewLintRunner(t).RunWithYamlConfig(string(cfg), args...). + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + fmt.Sprintf("--out-format=json:%s,line-number", resultPath), + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). ExpectOutputNotContains(`"Issues":[`) @@ -174,203 +161,98 @@ func TestFileOutput(t *testing.T) { require.Contains(t, string(b), `"Issues":[`) } -func testOneSource(t *testing.T, sourcePath string) { - args := []string{ - "run", - "--go=1.17", // TODO(ldez): we force to use an old version of Go for the CI and the tests. - "--allow-parallel-runners", - "--disable-all", - "--print-issued-lines=false", - "--out-format=line-number", - "--max-same-issues=100", - } - - rc := extractRunContextFromComments(t, sourcePath) - if rc == nil { - t.Skipf("Skipped: %s", sourcePath) - } - - for _, addArg := range []string{"", "-Etypecheck"} { - caseArgs := append([]string{}, args...) - caseArgs = append(caseArgs, rc.args...) - if addArg != "" { - caseArgs = append(caseArgs, addArg) - } - if rc.configPath == "" { - caseArgs = append(caseArgs, "--no-config") - } else { - caseArgs = append(caseArgs, "-c", rc.configPath) - } - - caseArgs = append(caseArgs, sourcePath) - - cmd := exec.Command(binName, caseArgs...) - t.Log(caseArgs) - runGoErrchk(cmd, rc.expectedLinter, []string{sourcePath}, t) - } -} - -type runContext struct { - args []string - configPath string - expectedLinter string -} +func TestLinter_goimports_local(t *testing.T) { + sourcePath := filepath.Join(testdataDir, "goimports", "goimports.go") -func skipMultilineComment(scanner *bufio.Scanner) { - for line := scanner.Text(); !strings.Contains(line, "*/") && scanner.Scan(); { - line = scanner.Text() - } + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + ExpectHasIssue("testdata/goimports/goimports.go:8: File is not `goimports`-ed") } -//nolint:gocyclo -func extractRunContextFromComments(t *testing.T, sourcePath string) *runContext { - f, err := os.Open(sourcePath) - require.NoError(t, err) - defer f.Close() - - rc := &runContext{} - - scanner := bufio.NewScanner(f) - for scanner.Scan() { - line := scanner.Text() - if strings.HasPrefix(line, "/*") { - skipMultilineComment(scanner) - continue - } - if strings.TrimSpace(line) == "" { - continue - } - if !strings.HasPrefix(line, "//") { - break - } - - if strings.HasPrefix(line, "//go:build") || strings.HasPrefix(line, "// +build") { - parse, err := constraint.Parse(line) - require.NoError(t, err) - - if !parse.Eval(buildTagGoVersion) { - return nil - } - - continue - } - - if !strings.HasPrefix(line, "//golangcitest:") { - require.Failf(t, "invalid prefix of comment line %s", line) - } - - before, after, found := strings.Cut(line, " ") - require.Truef(t, found, "invalid prefix of comment line %s", line) - - after = strings.TrimSpace(after) - - switch before { - case "//golangcitest:args": - require.Nil(t, rc.args) - require.NotEmpty(t, after) - rc.args = strings.Split(after, " ") - continue - - case "//golangcitest:config_path": - require.NotEmpty(t, after) - rc.configPath = after - continue - - case "//golangcitest:expected_linter": - require.NotEmpty(t, after) - rc.expectedLinter = after - continue - - default: - require.Failf(t, "invalid prefix of comment line %s", line) - } - } - - // guess the expected linter if none is specified - if rc.expectedLinter == "" { - for _, arg := range rc.args { - if strings.HasPrefix(arg, "-E") && !strings.Contains(arg, ",") { - require.Empty(t, rc.expectedLinter, "could not infer expected linter for errors because multiple linters are enabled. Please use the `//golangcitest:expected_linter ` directive in your test to indicate the linter-under-test.") //nolint:lll - rc.expectedLinter = arg[2:] - } - } - } +func TestLinter_gci_Local(t *testing.T) { + sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - return rc + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed") } -func buildTagGoVersion(tag string) bool { - vRuntime, err := hcversion.NewVersion(strings.TrimPrefix(runtime.Version(), "go")) - if err != nil { - return false +// TODO(ldez) need to be converted to a classic linter test. +func TestLinter_tparallel(t *testing.T) { + testCases := []struct { + desc string + sourcePath string + expected func(result *testshared.RunnerResult) + }{ + { + desc: "should fail on missing top-level Parallel()", + sourcePath: filepath.Join(testdataDir, "tparallel", "missing_toplevel_test.go"), + expected: func(result *testshared.RunnerResult) { + result.ExpectHasIssue( + "testdata/tparallel/missing_toplevel_test.go:7:6: TestTopLevel should call t.Parallel on the top level as well as its subtests\n", + ) + }, + }, + { + desc: "should fail on missing subtest Parallel()", + sourcePath: filepath.Join(testdataDir, "tparallel", "missing_subtest_test.go"), + expected: func(result *testshared.RunnerResult) { + result.ExpectHasIssue( + "testdata/tparallel/missing_subtest_test.go:7:6: TestSubtests's subtests should call t.Parallel\n", + ) + }, + }, + { + desc: "should pass on parallel test with no subtests", + sourcePath: filepath.Join(testdataDir, "tparallel", "happy_path_test.go"), + expected: func(result *testshared.RunnerResult) { + result.ExpectNoIssues() + }, + }, } - vTag, err := hcversion.NewVersion(strings.TrimPrefix(tag, "go")) - if err != nil { - return false + testshared.InstallGolangciLint(t) + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + result := testshared.NewRunnerBuilder(t). + WithDirectives(test.sourcePath). + WithArgs( + "--disable-all", + "--enable", + "tparallel", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number", + ). + WithTargetPath(test.sourcePath). + Runner(). + Run() + + test.expected(result) + }) } - - return vRuntime.GreaterThanOrEqual(vTag) -} - -func TestExtractRunContextFromComments(t *testing.T) { - rc := extractRunContextFromComments(t, filepath.Join(testdataDir, "goimports", "goimports.go")) - require.NotNil(t, rc) - require.Equal(t, []string{"-Egoimports"}, rc.args) -} - -func TestTparallel(t *testing.T) { - t.Run("should fail on missing top-level Parallel()", func(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "tparallel", "missing_toplevel_test.go") - args := []string{ - "--disable-all", "--enable", "tparallel", - "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - sourcePath, - } - - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - testshared.NewLintRunner(t).RunWithYamlConfig("", args...). - ExpectHasIssue( - "testdata/tparallel/missing_toplevel_test.go:7:6: TestTopLevel should call t.Parallel on the top level as well as its subtests\n", - ) - }) - - t.Run("should fail on missing subtest Parallel()", func(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "tparallel", "missing_subtest_test.go") - args := []string{ - "--disable-all", "--enable", "tparallel", - "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - sourcePath, - } - - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - testshared.NewLintRunner(t).RunWithYamlConfig("", args...). - ExpectHasIssue( - "testdata/tparallel/missing_subtest_test.go:7:6: TestSubtests's subtests should call t.Parallel\n", - ) - }) - - t.Run("should pass on parallel test with no subtests", func(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "tparallel", "happy_path_test.go") - args := []string{ - "--disable-all", "--enable", "tparallel", - "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - sourcePath, - } - - rc := extractRunContextFromComments(t, sourcePath) - require.NotNil(t, rc) - - args = append(args, rc.args...) - - testshared.NewLintRunner(t).RunWithYamlConfig("", args...).ExpectNoIssues() - }) } diff --git a/test/run_test.go b/test/run_test.go index cf1f55496912..da938540a613 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -16,39 +16,66 @@ func getCommonRunArgs() []string { return []string{"--skip-dirs", "testdata_etc/,pkg/golinters/goanalysis/(checker|passes)"} } -func withCommonRunArgs(args ...string) []string { - return append(getCommonRunArgs(), args...) -} - func TestAutogeneratedNoIssues(t *testing.T) { - testshared.NewLintRunner(t).Run(getTestDataDir("autogenerated")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithTargetPath(getTestDataDir("autogenerated")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestEmptyDirRun(t *testing.T) { - testshared.NewLintRunner(t, "GO111MODULE=off").Run(getTestDataDir("nogofiles")). + testshared.NewRunnerBuilder(t). + WithEnviron("GO111MODULE=off"). + WithTargetPath(getTestDataDir("nogofiles")). + Runner(). + Install(). + Run(). ExpectExitCode(exitcodes.NoGoFiles). ExpectOutputContains(": no go files to analyze") } func TestNotExistingDirRun(t *testing.T) { - testshared.NewLintRunner(t, "GO111MODULE=off").Run(getTestDataDir("no_such_dir")). + testshared.NewRunnerBuilder(t). + WithEnviron("GO111MODULE=off"). + WithTargetPath(getTestDataDir("no_such_dir")). + Runner(). + Install(). + Run(). ExpectExitCode(exitcodes.Failure). ExpectOutputContains("cannot find package"). ExpectOutputContains("/testdata/no_such_dir") } func TestSymlinkLoop(t *testing.T) { - testshared.NewLintRunner(t).Run(getTestDataDir("symlink_loop", "...")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithTargetPath(getTestDataDir("symlink_loop", "...")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } +// TODO(ldez): remove this in v2. func TestDeadline(t *testing.T) { - testshared.NewLintRunner(t).Run("--deadline=1ms", getProjectRoot()). + testshared.NewRunnerBuilder(t). + WithArgs("--deadline=1ms"). + WithTargetPath(getProjectRoot()). + Runner(). + Install(). + Run(). ExpectExitCode(exitcodes.Timeout). ExpectOutputContains(`Timeout exceeded: try increasing it by passing --timeout option`) } func TestTimeout(t *testing.T) { - testshared.NewLintRunner(t).Run("--timeout=1ms", getProjectRoot()). + testshared.NewRunnerBuilder(t). + WithArgs("--timeout=1ms"). + WithTargetPath(getProjectRoot()). + Runner(). + Install(). + Run(). ExpectExitCode(exitcodes.Timeout). ExpectOutputContains(`Timeout exceeded: try increasing it by passing --timeout option`) } @@ -81,53 +108,135 @@ func TestTimeoutInConfig(t *testing.T) { }, } - r := testshared.NewLintRunner(t) + testshared.InstallGolangciLint(t) + for _, c := range cases { // Run with disallowed option set only in config - r.RunWithYamlConfig(c.cfg, withCommonRunArgs(minimalPkg)...).ExpectExitCode(exitcodes.Timeout). + testshared.NewRunnerBuilder(t). + WithConfig(c.cfg). + WithArgs(getCommonRunArgs()...). + WithTargetPath(minimalPkg). + Runner(). + Run(). + ExpectExitCode(exitcodes.Timeout). ExpectOutputContains(`Timeout exceeded: try increasing it by passing --timeout option`) } } func TestTestsAreLintedByDefault(t *testing.T) { - testshared.NewLintRunner(t).Run(getTestDataDir("withtests")). + testshared.NewRunnerBuilder(t). + WithTargetPath(getTestDataDir("withtests")). + Runner(). + Install(). + Run(). ExpectHasIssue("don't use `init` function") } func TestCgoOk(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--enable-all", "-D", "nosnakecase,gci", getTestDataDir("cgo")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--timeout=3m", + "--enable-all", + "-D", + "nosnakecase,gci", + ). + WithTargetPath(getTestDataDir("cgo")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestCgoWithIssues(t *testing.T) { - r := testshared.NewLintRunner(t) - r.Run("--no-config", "--disable-all", "-Egovet", getTestDataDir("cgo_with_issues")). - ExpectHasIssue("Printf format %t has arg cs of wrong type") - r.Run("--no-config", "--disable-all", "-Estaticcheck", getTestDataDir("cgo_with_issues")). - ExpectHasIssue("SA5009: Printf format %t has arg #1 of wrong type") - r.Run("--no-config", "--disable-all", "-Egofmt", getTestDataDir("cgo_with_issues")). - ExpectHasIssue("File is not `gofmt`-ed with `-s` (gofmt)") - r.Run("--no-config", "--disable-all", "-Erevive", getTestDataDir("cgo_with_issues")). - ExpectHasIssue("indent-error-flow: if block ends with a return statement") + testshared.InstallGolangciLint(t) + + testCases := []struct { + desc string + args []string + targetPath string + expected string + }{ + { + desc: "govet", + args: []string{"--no-config", "--disable-all", "-Egovet"}, + targetPath: getTestDataDir("cgo_with_issues"), + expected: "Printf format %t has arg cs of wrong type", + }, + { + desc: "staticcheck", + args: []string{"--no-config", "--disable-all", "-Estaticcheck"}, + targetPath: getTestDataDir("cgo_with_issues"), + expected: "SA5009: Printf format %t has arg #1 of wrong type", + }, + { + desc: "gofmt", + args: []string{"--no-config", "--disable-all", "-Egofmt"}, + targetPath: getTestDataDir("cgo_with_issues"), + expected: "File is not `gofmt`-ed with `-s` (gofmt)", + }, + { + desc: "revive", + args: []string{"--no-config", "--disable-all", "-Erevive"}, + targetPath: getTestDataDir("cgo_with_issues"), + expected: "indent-error-flow: if block ends with a return statement", + }, + } + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + testshared.NewRunnerBuilder(t). + WithArgs(test.args...). + WithTargetPath(test.targetPath). + Runner(). + Run(). + ExpectHasIssue(test.expected) + }) + } } func TestUnsafeOk(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--enable-all", getTestDataDir("unsafe")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs("--enable-all"). + WithTargetPath(getTestDataDir("unsafe")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestGovetCustomFormatter(t *testing.T) { - testshared.NewLintRunner(t).Run(getTestDataDir("govet_custom_formatter")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithTargetPath(getTestDataDir("govet_custom_formatter")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestLineDirectiveProcessedFilesLiteLoading(t *testing.T) { - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", - "--exclude-use-default=false", "-Egolint", getTestDataDir("quicktemplate")) - output := strings.Join([]string{ "testdata/quicktemplate/hello.qtpl.go:26:1: exported function `StreamHello` should have comment or be unexported (golint)", "testdata/quicktemplate/hello.qtpl.go:50:1: exported function `Hello` should have comment or be unexported (golint)", "testdata/quicktemplate/hello.qtpl.go:39:1: exported function `WriteHello` should have comment or be unexported (golint)", }, "\n") - r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(output + "\n") + + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "--exclude-use-default=false", + "-Egolint", + ). + WithTargetPath(getTestDataDir("quicktemplate")). + Runner(). + Install(). + Run(). + ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(output + "\n") } func TestSortedResults(t *testing.T) { @@ -136,16 +245,16 @@ func TestSortedResults(t *testing.T) { want string }{ { - "--sort-results=false", - strings.Join([]string{ + opt: "--sort-results=false", + want: strings.Join([]string{ "testdata/sort_results/main.go:12:5: `db` is unused (deadcode)", "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", }, "\n"), }, { - "--sort-results=true", - strings.Join([]string{ + opt: "--sort-results=true", + want: strings.Join([]string{ "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", "testdata/sort_results/main.go:12:5: `db` is unused (deadcode)", "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", @@ -155,97 +264,286 @@ func TestSortedResults(t *testing.T) { dir := getTestDataDir("sort_results") - t.Parallel() - for i := range testCases { - test := testCases[i] + testshared.InstallGolangciLint(t) + + for _, test := range testCases { + test := test t.Run(test.opt, func(t *testing.T) { - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", test.opt, dir) - r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(test.want + "\n") + t.Parallel() + + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs("--print-issued-lines=false", test.opt). + WithTargetPath(dir). + Runner(). + Run(). + ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(test.want + "\n") }) } } func TestLineDirectiveProcessedFilesFullLoading(t *testing.T) { - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", - "--exclude-use-default=false", "-Egolint,govet", getTestDataDir("quicktemplate")) - output := strings.Join([]string{ "testdata/quicktemplate/hello.qtpl.go:26:1: exported function `StreamHello` should have comment or be unexported (golint)", "testdata/quicktemplate/hello.qtpl.go:50:1: exported function `Hello` should have comment or be unexported (golint)", "testdata/quicktemplate/hello.qtpl.go:39:1: exported function `WriteHello` should have comment or be unexported (golint)", }, "\n") - r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(output + "\n") + + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "--exclude-use-default=false", + "-Egolint,govet", + ). + WithTargetPath(getTestDataDir("quicktemplate")). + Runner(). + Install(). + Run(). + ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(output + "\n") } func TestLintFilesWithLineDirective(t *testing.T) { - r := testshared.NewLintRunner(t) - r.Run("-Edupl", "--disable-all", "--config=testdata/linedirective/dupl.yml", getTestDataDir("linedirective")). - ExpectHasIssue("21-23 lines are duplicate of `testdata/linedirective/hello.go:25-27` (dupl)") - r.Run("-Egofmt", "--disable-all", "--no-config", getTestDataDir("linedirective")). - ExpectHasIssue("File is not `gofmt`-ed with `-s` (gofmt)") - r.Run("-Egoimports", "--disable-all", "--no-config", getTestDataDir("linedirective")). - ExpectHasIssue("File is not `goimports`-ed (goimports)") - r. - Run("-Egomodguard", "--disable-all", "--config=testdata/linedirective/gomodguard.yml", getTestDataDir("linedirective")). - ExpectHasIssue("import of package `github.com/ryancurrah/gomodguard` is blocked because the module is not " + - "in the allowed modules list. (gomodguard)") - r.Run("-Elll", "--disable-all", "--config=testdata/linedirective/lll.yml", getTestDataDir("linedirective")). - ExpectHasIssue("line is 57 characters (lll)") - r.Run("-Emisspell", "--disable-all", "--no-config", getTestDataDir("linedirective")). - ExpectHasIssue("is a misspelling of `language` (misspell)") - r.Run("-Ewsl", "--disable-all", "--no-config", getTestDataDir("linedirective")). - ExpectHasIssue("block should not start with a whitespace (wsl)") + testshared.InstallGolangciLint(t) + + testCases := []struct { + desc string + args []string + configPath string + targetPath string + expected string + }{ + { + desc: "dupl", + args: []string{ + "-Edupl", + "--disable-all", + }, + configPath: "testdata/linedirective/dupl.yml", + targetPath: getTestDataDir("linedirective"), + expected: "21-23 lines are duplicate of `testdata/linedirective/hello.go:25-27` (dupl)", + }, + { + desc: "gofmt", + args: []string{ + "-Egofmt", + "--disable-all", + }, + targetPath: getTestDataDir("linedirective"), + expected: "File is not `gofmt`-ed with `-s` (gofmt)", + }, + { + desc: "goimports", + args: []string{ + "-Egoimports", + "--disable-all", + }, + targetPath: getTestDataDir("linedirective"), + expected: "File is not `goimports`-ed (goimports)", + }, + { + desc: "gomodguard", + args: []string{ + "-Egomodguard", + "--disable-all", + }, + configPath: "testdata/linedirective/gomodguard.yml", + targetPath: getTestDataDir("linedirective"), + expected: "import of package `github.com/ryancurrah/gomodguard` is blocked because the module is not " + + "in the allowed modules list. (gomodguard)", + }, + { + desc: "lll", + args: []string{ + "-Elll", + "--disable-all", + }, + configPath: "testdata/linedirective/lll.yml", + targetPath: getTestDataDir("linedirective"), + expected: "line is 57 characters (lll)", + }, + { + desc: "misspell", + args: []string{ + "-Emisspell", + "--disable-all", + }, + configPath: "", + targetPath: getTestDataDir("linedirective"), + expected: "is a misspelling of `language` (misspell)", + }, + { + desc: "wsl", + args: []string{ + "-Ewsl", + "--disable-all", + }, + configPath: "", + targetPath: getTestDataDir("linedirective"), + expected: "block should not start with a whitespace (wsl)", + }, + } + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + testshared.NewRunnerBuilder(t). + WithArgs(test.args...). + WithTargetPath(test.targetPath). + WithConfigFile(test.configPath). + Runner(). + Run(). + ExpectHasIssue(test.expected) + }) + } } func TestSkippedDirsNoMatchArg(t *testing.T) { dir := getTestDataDir("skipdirs", "skip_me", "nested") - res := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", "--skip-dirs", dir, "-Egolint", dir) - res.ExpectExitCode(exitcodes.IssuesFound). + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "--skip-dirs", dir, + "-Egolint", + ). + WithTargetPath(dir). + Runner(). + Install(). + Run(). + ExpectExitCode(exitcodes.IssuesFound). ExpectOutputEq("testdata/skipdirs/skip_me/nested/with_issue.go:8:9: `if` block ends with " + "a `return` statement, so drop this `else` and outdent its block (golint)\n") } func TestSkippedDirsTestdata(t *testing.T) { - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", "-Egolint", getTestDataDir("skipdirs", "...")) - - r.ExpectNoIssues() // all was skipped because in testdata + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "-Egolint", + ). + WithTargetPath(getTestDataDir("skipdirs", "...")). + Runner(). + Install(). + Run(). + ExpectNoIssues() // all was skipped because in testdata } func TestDeadcodeNoFalsePositivesInMainPkg(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--disable-all", "-Edeadcode", getTestDataDir("deadcode_main_pkg")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs("--disable-all", "-Edeadcode"). + WithTargetPath(getTestDataDir("deadcode_main_pkg")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestIdentifierUsedOnlyInTests(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "--disable-all", "-Eunused", getTestDataDir("used_only_in_tests")).ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs("--disable-all", "-Eunused"). + WithTargetPath(getTestDataDir("used_only_in_tests")). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestUnusedCheckExported(t *testing.T) { - t.Skip("Issue955") - testshared.NewLintRunner(t).Run("-c", "testdata_etc/unused_exported/golangci.yml", "testdata_etc/unused_exported/...").ExpectNoIssues() + testshared.NewRunnerBuilder(t). + WithConfigFile("testdata_etc/unused_exported/golangci.yml"). + WithTargetPath("testdata_etc/unused_exported/..."). + Runner(). + Install(). + Run(). + ExpectNoIssues() } func TestConfigFileIsDetected(t *testing.T) { - checkGotConfig := func(r *testshared.RunResult) { - r.ExpectExitCode(exitcodes.Success). - ExpectOutputEq("test\n") // test config contains InternalTest: true, it triggers such output + testshared.InstallGolangciLint(t) + + testCases := []struct { + desc string + targetPath string + }{ + { + desc: "explicit", + targetPath: getTestDataDir("withconfig", "pkg"), + }, + { + desc: "recursive", + targetPath: getTestDataDir("withconfig", "..."), + }, } - r := testshared.NewLintRunner(t) - checkGotConfig(r.Run(getTestDataDir("withconfig", "pkg"))) - checkGotConfig(r.Run(getTestDataDir("withconfig", "..."))) + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + testshared.NewRunnerBuilder(t). + // WithNoConfig(). + WithTargetPath(test.targetPath). + Runner(). + Run(). + ExpectExitCode(exitcodes.Success). + // test config contains InternalTest: true, it triggers such output + ExpectOutputEq("test\n") + }) + } } func TestEnableAllFastAndEnableCanCoexist(t *testing.T) { - r := testshared.NewLintRunner(t) - r.Run(withCommonRunArgs("--no-config", "--fast", "--enable-all", "--enable=typecheck", minimalPkg)...). - ExpectExitCode(exitcodes.Success, exitcodes.IssuesFound) - r.Run(withCommonRunArgs("--no-config", "--enable-all", "--enable=typecheck", minimalPkg)...). - ExpectExitCode(exitcodes.Failure) + testshared.InstallGolangciLint(t) + + testCases := []struct { + desc string + args []string + expected []int + }{ + { + desc: "fast", + args: []string{"--fast", "--enable-all", "--enable=typecheck"}, + expected: []int{exitcodes.Success, exitcodes.IssuesFound}, + }, + { + desc: "all", + args: []string{"--enable-all", "--enable=typecheck"}, + expected: []int{exitcodes.Failure}, + }, + } + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs(getCommonRunArgs()...). + WithArgs(test.args...). + WithTargetPath(minimalPkg). + Runner(). + Run(). + ExpectExitCode(test.expected...) + }) + } } func TestEnabledPresetsAreNotDuplicated(t *testing.T) { - testshared.NewLintRunner(t).Run("--no-config", "-v", "-p", "style,bugs", minimalPkg). + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs("-v", "-p", "style,bugs"). + WithTargetPath(minimalPkg). + Runner(). + Install(). + Run(). ExpectOutputContains("Active presets: [bugs style]") } @@ -254,8 +552,17 @@ func TestAbsPathDirAnalysis(t *testing.T) { absDir, err := filepath.Abs(dir) assert.NoError(t, err) - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", "-Egolint", absDir) - r.ExpectHasIssue("`if` block ends with a `return` statement") + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "-Egolint", + ). + WithTargetPath(absDir). + Runner(). + Install(). + Run(). + ExpectHasIssue("`if` block ends with a `return` statement") } func TestAbsPathFileAnalysis(t *testing.T) { @@ -263,8 +570,17 @@ func TestAbsPathFileAnalysis(t *testing.T) { absDir, err := filepath.Abs(dir) assert.NoError(t, err) - r := testshared.NewLintRunner(t).Run("--print-issued-lines=false", "--no-config", "-Egolint", absDir) - r.ExpectHasIssue("`if` block ends with a `return` statement") + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs( + "--print-issued-lines=false", + "-Egolint", + ). + WithTargetPath(absDir). + Runner(). + Install(). + Run(). + ExpectHasIssue("`if` block ends with a `return` statement") } func TestDisallowedOptionsInConfig(t *testing.T) { @@ -311,40 +627,75 @@ func TestDisallowedOptionsInConfig(t *testing.T) { }, } - r := testshared.NewLintRunner(t) + testshared.InstallGolangciLint(t) + for _, c := range cases { // Run with disallowed option set only in config - r.RunWithYamlConfig(c.cfg, withCommonRunArgs(minimalPkg)...).ExpectExitCode(exitcodes.Failure) + testshared.NewRunnerBuilder(t). + WithConfig(c.cfg). + WithArgs(getCommonRunArgs()...). + WithTargetPath(minimalPkg). + Runner(). + Run(). + ExpectExitCode(exitcodes.Failure) if c.option == "" { continue } - args := []string{c.option, "--fast", minimalPkg} + args := []string{c.option, "--fast"} // Run with disallowed option set only in command-line - r.Run(withCommonRunArgs(args...)...).ExpectExitCode(exitcodes.Success) + testshared.NewRunnerBuilder(t). + WithNoConfig(). + WithArgs(getCommonRunArgs()...). + WithArgs(args...). + WithTargetPath(minimalPkg). + Runner(). + Run(). + ExpectExitCode(exitcodes.Success) // Run with disallowed option set both in command-line and in config - r.RunWithYamlConfig(c.cfg, withCommonRunArgs(args...)...).ExpectExitCode(exitcodes.Failure) + + testshared.NewRunnerBuilder(t). + WithConfig(c.cfg). + WithArgs(getCommonRunArgs()...). + WithArgs(args...). + WithTargetPath(minimalPkg). + Runner(). + Run(). + ExpectExitCode(exitcodes.Failure) } } func TestPathPrefix(t *testing.T) { - for _, tt := range []struct { - Name string - Args []string - Pattern string + testCases := []struct { + desc string + args []string + pattern string }{ - {"empty", nil, "^testdata/withtests/"}, - {"prefixed", []string{"--path-prefix=cool"}, "^cool/testdata/withtests"}, - } { - t.Run(tt.Name, func(t *testing.T) { - testshared.NewLintRunner(t).Run( - append(tt.Args, getTestDataDir("withtests"))..., - ).ExpectOutputRegexp( - tt.Pattern, - ) + { + desc: "empty", + pattern: "^testdata/withtests/", + }, + { + desc: "prefixed", + args: []string{"--path-prefix=cool"}, + pattern: "^cool/testdata/withtests", + }, + } + + testshared.InstallGolangciLint(t) + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + testshared.NewRunnerBuilder(t). + WithArgs(test.args...). + WithTargetPath(getTestDataDir("withtests")). + Runner(). + Run(). + ExpectOutputRegexp(test.pattern) }) } } diff --git a/test/testdata/staticcheck.go b/test/testdata/staticcheck.go index da775618139b..bf1b4e3962d4 100644 --- a/test/testdata/staticcheck.go +++ b/test/testdata/staticcheck.go @@ -3,7 +3,6 @@ package testdata import ( "fmt" - "runtime" ) func Staticcheck() { @@ -22,10 +21,6 @@ func StaticcheckNolintMegacheck() { x = x //nolint:megacheck } -func StaticcheckDeprecated() { - _ = runtime.CPUProfile() // ERROR "SA1019: runtime.CPUProfile has been deprecated .*" -} - func StaticcheckPrintf() { x := "dummy" fmt.Printf("%d", x) // ERROR "SA5009: Printf format %d has arg #1 of wrong type" diff --git a/test/testshared/directives.go b/test/testshared/directives.go new file mode 100644 index 000000000000..5599ad6ab10c --- /dev/null +++ b/test/testshared/directives.go @@ -0,0 +1,121 @@ +package testshared + +import ( + "bufio" + "go/build/constraint" + "os" + "runtime" + "strings" + "testing" + + hcversion "github.com/hashicorp/go-version" + "github.com/stretchr/testify/require" +) + +// RunContext FIXME rename? +type RunContext struct { + Args []string + ConfigPath string + ExpectedLinter string +} + +// ParseTestDirectives parses test directives from sources files. +// +//nolint:gocyclo +func ParseTestDirectives(tb testing.TB, sourcePath string) *RunContext { + tb.Helper() + + f, err := os.Open(sourcePath) + require.NoError(tb, err) + tb.Cleanup(func() { _ = f.Close() }) + + rc := &RunContext{} + + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := scanner.Text() + if strings.HasPrefix(line, "/*") { + skipMultilineComment(scanner) + continue + } + if strings.TrimSpace(line) == "" { + continue + } + if !strings.HasPrefix(line, "//") { + break + } + + if strings.HasPrefix(line, "//go:build") || strings.HasPrefix(line, "// +build") { + parse, err := constraint.Parse(line) + require.NoError(tb, err) + + if !parse.Eval(buildTagGoVersion) { + return nil + } + + continue + } + + if !strings.HasPrefix(line, "//golangcitest:") { + require.Failf(tb, "invalid prefix of comment line %s", line) + } + + before, after, found := strings.Cut(line, " ") + require.Truef(tb, found, "invalid prefix of comment line %s", line) + + after = strings.TrimSpace(after) + + switch before { + case "//golangcitest:args": + require.Nil(tb, rc.Args) + require.NotEmpty(tb, after) + rc.Args = strings.Split(after, " ") + continue + + case "//golangcitest:config_path": + require.NotEmpty(tb, after) + rc.ConfigPath = after + continue + + case "//golangcitest:expected_linter": + require.NotEmpty(tb, after) + rc.ExpectedLinter = after + continue + + default: + require.Failf(tb, "invalid prefix of comment line %s", line) + } + } + + // guess the expected linter if none is specified + if rc.ExpectedLinter == "" { + for _, arg := range rc.Args { + if strings.HasPrefix(arg, "-E") && !strings.Contains(arg, ",") { + require.Empty(tb, rc.ExpectedLinter, "could not infer expected linter for errors because multiple linters are enabled. Please use the `//golangcitest:expected_linter ` directive in your test to indicate the linter-under-test.") //nolint:lll + rc.ExpectedLinter = arg[2:] + } + } + } + + return rc +} + +func skipMultilineComment(scanner *bufio.Scanner) { + for line := scanner.Text(); !strings.Contains(line, "*/") && scanner.Scan(); { + line = scanner.Text() + } +} + +func buildTagGoVersion(tag string) bool { + vRuntime, err := hcversion.NewVersion(strings.TrimPrefix(runtime.Version(), "go")) + if err != nil { + return false + } + + vTag, err := hcversion.NewVersion(strings.TrimPrefix(tag, "go")) + if err != nil { + return false + } + + return vRuntime.GreaterThanOrEqual(vTag) +} diff --git a/test/testshared/directives_test.go b/test/testshared/directives_test.go new file mode 100644 index 000000000000..fa0c62820897 --- /dev/null +++ b/test/testshared/directives_test.go @@ -0,0 +1,20 @@ +package testshared + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestParseTestDirectives(t *testing.T) { + rc := ParseTestDirectives(t, "./testdata/all.go") + require.NotNil(t, rc) + + expected := &RunContext{ + Args: []string{"-Efoo", "--simple", "--hello=world"}, + ConfigPath: "testdata/example.yml", + ExpectedLinter: "bar", + } + assert.Equal(t, expected, rc) +} diff --git a/test/testshared/runner.go b/test/testshared/runner.go new file mode 100644 index 000000000000..1b872e837cb1 --- /dev/null +++ b/test/testshared/runner.go @@ -0,0 +1,324 @@ +package testshared + +import ( + "os" + "os/exec" + "strings" + "sync" + "syscall" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/golangci/golangci-lint/pkg/exitcodes" + "github.com/golangci/golangci-lint/pkg/logutils" +) + +const binName = "../golangci-lint" + +type RunnerBuilder struct { + tb testing.TB + log logutils.Log + + command string + env []string + + configPath string + noConfig bool + allowParallelRunners bool + args []string + target string +} + +func NewRunnerBuilder(tb testing.TB) *RunnerBuilder { + tb.Helper() + + log := logutils.NewStderrLog("test") + log.SetLevel(logutils.LogLevelInfo) + + return &RunnerBuilder{ + tb: tb, + log: log, + command: "run", + allowParallelRunners: true, + } +} + +func (b *RunnerBuilder) WithCommand(command string) *RunnerBuilder { + b.command = command + + return b +} + +func (b *RunnerBuilder) WithNoConfig() *RunnerBuilder { + b.noConfig = true + + return b +} + +func (b *RunnerBuilder) WithConfigFile(cfgPath string) *RunnerBuilder { + b.configPath = cfgPath + b.noConfig = cfgPath == "" + + return b +} + +func (b *RunnerBuilder) WithConfig(cfg string) *RunnerBuilder { + b.tb.Helper() + + content := strings.ReplaceAll(strings.TrimSpace(cfg), "\t", " ") + + if content == "" { + return b.WithNoConfig() + } + + cfgFile, err := os.CreateTemp("", "golangci_lint_test*.yml") + require.NoError(b.tb, err) + + cfgPath := cfgFile.Name() + b.tb.Cleanup(func() { + if os.Getenv("GL_KEEP_TEMP_FILES") != "1" { + _ = os.Remove(cfgPath) + } + }) + + _, err = cfgFile.WriteString(content) + require.NoError(b.tb, err) + + return b.WithConfigFile(cfgPath) +} + +func (b *RunnerBuilder) WithRunContext(rc *RunContext) *RunnerBuilder { + if rc == nil { + return b + } + + return b.WithConfigFile(rc.ConfigPath).WithArgs(rc.Args...) +} + +func (b *RunnerBuilder) WithDirectives(sourcePath string) *RunnerBuilder { + b.tb.Helper() + + return b.WithRunContext(ParseTestDirectives(b.tb, sourcePath)) +} + +func (b *RunnerBuilder) WithEnviron(environ ...string) *RunnerBuilder { + b.env = environ + + return b +} + +func (b *RunnerBuilder) WithNoParallelRunners() *RunnerBuilder { + b.allowParallelRunners = false + + return b +} + +func (b *RunnerBuilder) WithArgs(args ...string) *RunnerBuilder { + b.args = append(b.args, args...) + + return b +} + +func (b *RunnerBuilder) WithTargetPath(target string) *RunnerBuilder { + b.target = target + + return b +} + +func (b *RunnerBuilder) Runner() *Runner { + b.tb.Helper() + + if b.noConfig && b.configPath != "" { + b.tb.Fatal("--no-config and -c cannot be used at the same time") + } + + arguments := []string{ + "--go=1.17", // TODO(ldez): we force to use an old version of Go for the CI and the tests. + "--internal-cmd-test", + } + + if b.allowParallelRunners { + arguments = append(arguments, "--allow-parallel-runners") + } + + if b.noConfig { + arguments = append(arguments, "--no-config") + } + + if b.configPath != "" { + arguments = append(arguments, "-c", b.configPath) + } + + if len(b.args) != 0 { + arguments = append(arguments, b.args...) + } + + if b.target != "" { + arguments = append(arguments, b.target) + } + + return &Runner{ + log: b.log, + tb: b.tb, + env: b.env, + command: b.command, + args: arguments, + } +} + +type Runner struct { + log logutils.Log + tb testing.TB + + env []string + command string + args []string + + installOnce sync.Once +} + +func (r *Runner) Install() *Runner { + r.tb.Helper() + + r.installOnce.Do(func() { + InstallGolangciLint(r.tb) + }) + + return r +} + +func (r *Runner) Run() *RunnerResult { + r.tb.Helper() + + runArgs := append([]string{r.command}, r.args...) + + defer func(startedAt time.Time) { + r.log.Infof("ran [%s %s] in %s", binName, strings.Join(runArgs, " "), time.Since(startedAt)) + }(time.Now()) + + cmd := exec.Command(binName, runArgs...) + cmd.Env = append(os.Environ(), r.env...) + + out, err := cmd.CombinedOutput() + if err != nil { + if exitError, ok := err.(*exec.ExitError); ok { + if len(exitError.Stderr) != 0 { + r.log.Infof("stderr: %s", exitError.Stderr) + } + + ws := exitError.Sys().(syscall.WaitStatus) + + return &RunnerResult{ + tb: r.tb, + output: string(out), + exitCode: ws.ExitStatus(), + } + } + + r.tb.Errorf("can't get error code from %s", err) + + return nil + } + + // success, exitCode should be 0 if go is ok + ws := cmd.ProcessState.Sys().(syscall.WaitStatus) + + return &RunnerResult{ + tb: r.tb, + output: string(out), + exitCode: ws.ExitStatus(), + } +} + +func (r *Runner) RawRun() ([]byte, error) { + r.tb.Helper() + + runArgs := append([]string{r.command}, r.args...) + + defer func(startedAt time.Time) { + r.log.Infof("ran [../golangci-lint %s] in %s", strings.Join(runArgs, " "), time.Since(startedAt)) + }(time.Now()) + + cmd := exec.Command("../golangci-lint", runArgs...) + cmd.Env = append(os.Environ(), r.env...) + + return cmd.CombinedOutput() +} + +type RunnerResult struct { + tb testing.TB + + output string + exitCode int +} + +func (r *RunnerResult) ExpectNoIssues() { + r.tb.Helper() + + assert.Equal(r.tb, "", r.output, "exit code is %d", r.exitCode) + assert.Equal(r.tb, exitcodes.Success, r.exitCode, "output is %s", r.output) +} + +func (r *RunnerResult) ExpectExitCode(possibleCodes ...int) *RunnerResult { + r.tb.Helper() + + for _, pc := range possibleCodes { + if pc == r.exitCode { + return r + } + } + + assert.Fail(r.tb, "invalid exit code", "exit code (%d) must be one of %v: %s", r.exitCode, possibleCodes, r.output) + return r +} + +// ExpectOutputRegexp can be called with either a string or compiled regexp +func (r *RunnerResult) ExpectOutputRegexp(s interface{}) *RunnerResult { + r.tb.Helper() + + assert.Regexp(r.tb, s, r.output, "exit code is %d", r.exitCode) + return r +} + +func (r *RunnerResult) ExpectOutputContains(s string) *RunnerResult { + r.tb.Helper() + + assert.Contains(r.tb, r.output, s, "exit code is %d", r.exitCode) + return r +} + +func (r *RunnerResult) ExpectOutputNotContains(s string) *RunnerResult { + r.tb.Helper() + + assert.NotContains(r.tb, r.output, s, "exit code is %d", r.exitCode) + return r +} + +func (r *RunnerResult) ExpectOutputEq(s string) *RunnerResult { + r.tb.Helper() + + assert.Equal(r.tb, s, r.output, "exit code is %d", r.exitCode) + return r +} + +func (r *RunnerResult) ExpectHasIssue(issueText string) *RunnerResult { + r.tb.Helper() + + return r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputContains(issueText) +} + +func InstallGolangciLint(tb testing.TB) { + tb.Helper() + + if os.Getenv("GOLANGCI_LINT_INSTALLED") == "true" { + return + } + + cmd := exec.Command("make", "-C", "..", "build") + + err := cmd.Run() + assert.NoError(tb, err, "Can't go install golangci-lint") +} diff --git a/test/testshared/runner_test.go b/test/testshared/runner_test.go new file mode 100644 index 000000000000..36c1e347dacd --- /dev/null +++ b/test/testshared/runner_test.go @@ -0,0 +1,225 @@ +package testshared + +import ( + "regexp" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/golangci/golangci-lint/pkg/exitcodes" +) + +//nolint:funlen +func TestRunnerBuilder_Runner(t *testing.T) { + testCases := []struct { + desc string + builder *RunnerBuilder + expected *Runner + }{ + { + desc: "default", + builder: NewRunnerBuilder(t), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + }, + }, + }, + { + desc: "with command", + builder: NewRunnerBuilder(t).WithCommand("example"), + expected: &Runner{ + env: []string(nil), + command: "example", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + }, + }, + }, + { + desc: "with no-config", + builder: NewRunnerBuilder(t).WithNoConfig(), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "--no-config", + }, + }, + }, + { + desc: "with config file", + builder: NewRunnerBuilder(t).WithConfigFile("./testdata/example.yml"), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "-c", + "./testdata/example.yml", + }, + }, + }, + { + desc: "with directives", + builder: NewRunnerBuilder(t).WithDirectives("./testdata/all.go"), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "-c", + "testdata/example.yml", + "-Efoo", + "--simple", + "--hello=world", + }, + }, + }, + { + desc: "with environ", + builder: NewRunnerBuilder(t).WithEnviron("FOO=BAR", "FII=BIR"), + expected: &Runner{ + env: []string{"FOO=BAR", "FII=BIR"}, + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + }, + }, + }, + { + desc: "with no parallel runners", + builder: NewRunnerBuilder(t).WithNoParallelRunners(), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + }, + }, + }, + { + desc: "with args", + builder: NewRunnerBuilder(t).WithArgs("-Efoo", "--simple", "--hello=world"), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "-Efoo", + "--simple", + "--hello=world", + }, + }, + }, + { + desc: "with target path", + builder: NewRunnerBuilder(t).WithTargetPath("./testdata/all.go"), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "./testdata/all.go", + }, + }, + }, + { + desc: "with RunContext (directives)", + builder: NewRunnerBuilder(t). + WithRunContext(&RunContext{ + Args: []string{"-Efoo", "--simple", "--hello=world"}, + ConfigPath: "testdata/example.yml", + ExpectedLinter: "test", + }), + expected: &Runner{ + env: []string(nil), + command: "run", + args: []string{ + "--go=1.17", + "--internal-cmd-test", + "--allow-parallel-runners", + "-c", + "testdata/example.yml", + "-Efoo", + "--simple", + "--hello=world", + }, + }, + }, + } + + for _, test := range testCases { + test := test + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + runner := test.builder.Runner() + + assert.NotNil(t, runner.log) + assert.NotNil(t, runner.tb) + assert.Equal(t, test.expected.env, runner.env) + assert.Equal(t, test.expected.env, runner.env) + assert.Equal(t, test.expected.env, runner.env) + assert.Equal(t, test.expected.command, runner.command) + assert.Equal(t, test.expected.args, runner.args) + }) + } +} + +func TestRunnerResult_ExpectExitCode(t *testing.T) { + r := &RunnerResult{tb: t, exitCode: exitcodes.Success} + r.ExpectExitCode(exitcodes.Failure, exitcodes.Success) +} + +func TestRunnerResult_ExpectNoIssues(t *testing.T) { + r := &RunnerResult{tb: t} + r.ExpectNoIssues() +} + +func TestRunnerResult_ExpectOutputContains(t *testing.T) { + r := &RunnerResult{tb: t, output: "this is an output"} + r.ExpectOutputContains("an") +} + +func TestRunnerResult_ExpectHasIssue(t *testing.T) { + r := &RunnerResult{tb: t, exitCode: exitcodes.IssuesFound, output: "this is an output"} + r.ExpectHasIssue("an") +} + +func TestRunnerResult_ExpectOutputEq(t *testing.T) { + r := &RunnerResult{tb: t, output: "this is an output"} + r.ExpectOutputEq("this is an output") +} + +func TestRunnerResult_ExpectOutputNotContains(t *testing.T) { + r := &RunnerResult{tb: t, output: "this is an output"} + r.ExpectOutputNotContains("one") +} + +func TestRunnerResult_ExpectOutputRegexp(t *testing.T) { + r := &RunnerResult{tb: t, output: "this is an output"} + r.ExpectOutputRegexp(regexp.MustCompile(`an.+`)) + r.ExpectOutputRegexp(`an.+`) + r.ExpectOutputRegexp("an") +} diff --git a/test/testshared/testdata/all.go b/test/testshared/testdata/all.go new file mode 100644 index 000000000000..ca997786281b --- /dev/null +++ b/test/testshared/testdata/all.go @@ -0,0 +1,10 @@ +//golangcitest:args -Efoo --simple --hello=world +//golangcitest:config_path testdata/example.yml +//golangcitest:expected_linter bar +package testdata + +import "fmt" + +func main() { + fmt.Println("Hello") +} diff --git a/test/testshared/testshared.go b/test/testshared/testshared.go deleted file mode 100644 index e3c55cd0ec28..000000000000 --- a/test/testshared/testshared.go +++ /dev/null @@ -1,163 +0,0 @@ -package testshared - -import ( - "os" - "os/exec" - "strings" - "sync" - "syscall" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/golangci/golangci-lint/pkg/exitcodes" - "github.com/golangci/golangci-lint/pkg/logutils" -) - -type LintRunner struct { - t assert.TestingT - log logutils.Log - env []string - installOnce sync.Once -} - -func NewLintRunner(t assert.TestingT, environ ...string) *LintRunner { - log := logutils.NewStderrLog("test") - log.SetLevel(logutils.LogLevelInfo) - return &LintRunner{ - t: t, - log: log, - env: environ, - } -} - -func (r *LintRunner) Install() { - r.installOnce.Do(func() { - if os.Getenv("GOLANGCI_LINT_INSTALLED") == "true" { - return - } - - cmd := exec.Command("make", "-C", "..", "build") - assert.NoError(r.t, cmd.Run(), "Can't go install golangci-lint") - }) -} - -type RunResult struct { - t assert.TestingT - - output string - exitCode int -} - -func (r *RunResult) ExpectNoIssues() { - assert.Equal(r.t, "", r.output, "exit code is %d", r.exitCode) - assert.Equal(r.t, exitcodes.Success, r.exitCode, "output is %s", r.output) -} - -func (r *RunResult) ExpectExitCode(possibleCodes ...int) *RunResult { - for _, pc := range possibleCodes { - if pc == r.exitCode { - return r - } - } - - assert.Fail(r.t, "invalid exit code", "exit code (%d) must be one of %v: %s", r.exitCode, possibleCodes, r.output) - return r -} - -// ExpectOutputRegexp can be called with either a string or compiled regexp -func (r *RunResult) ExpectOutputRegexp(s interface{}) *RunResult { - assert.Regexp(r.t, s, r.output, "exit code is %d", r.exitCode) - return r -} - -func (r *RunResult) ExpectOutputContains(s string) *RunResult { - assert.Contains(r.t, r.output, s, "exit code is %d", r.exitCode) - return r -} - -func (r *RunResult) ExpectOutputNotContains(s string) *RunResult { - assert.NotContains(r.t, r.output, s, "exit code is %d", r.exitCode) - return r -} - -func (r *RunResult) ExpectOutputEq(s string) *RunResult { - assert.Equal(r.t, s, r.output, "exit code is %d", r.exitCode) - return r -} - -func (r *RunResult) ExpectHasIssue(issueText string) *RunResult { - return r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputContains(issueText) -} - -func (r *LintRunner) Run(args ...string) *RunResult { - newArgs := append([]string{"--allow-parallel-runners"}, args...) - return r.RunCommand("run", newArgs...) -} - -func (r *LintRunner) RunCommand(command string, args ...string) *RunResult { - r.Install() - - runArgs := append([]string{command}, - "--go=1.17", // TODO(ldez): we force to use an old version of Go for the CI and the tests. - "--internal-cmd-test", - ) - runArgs = append(runArgs, args...) - - defer func(startedAt time.Time) { - r.log.Infof("ran [../golangci-lint %s] in %s", strings.Join(runArgs, " "), time.Since(startedAt)) - }(time.Now()) - - cmd := exec.Command("../golangci-lint", runArgs...) - cmd.Env = append(os.Environ(), r.env...) - out, err := cmd.CombinedOutput() - if err != nil { - if exitError, ok := err.(*exec.ExitError); ok { - r.log.Infof("stderr: %s", exitError.Stderr) - ws := exitError.Sys().(syscall.WaitStatus) - return &RunResult{ - t: r.t, - output: string(out), - exitCode: ws.ExitStatus(), - } - } - - r.t.Errorf("can't get error code from %s", err) - return nil - } - - // success, exitCode should be 0 if go is ok - ws := cmd.ProcessState.Sys().(syscall.WaitStatus) - return &RunResult{ - t: r.t, - output: string(out), - exitCode: ws.ExitStatus(), - } -} - -func (r *LintRunner) RunWithYamlConfig(cfg string, args ...string) *RunResult { - newArgs := append([]string{"--allow-parallel-runners"}, args...) - return r.RunCommandWithYamlConfig(cfg, "run", newArgs...) -} - -func (r *LintRunner) RunCommandWithYamlConfig(cfg, command string, args ...string) *RunResult { - f, err := os.CreateTemp("", "golangci_lint_test") - assert.NoError(r.t, err) - f.Close() - - cfgPath := f.Name() + ".yml" - err = os.Rename(f.Name(), cfgPath) - assert.NoError(r.t, err) - - if os.Getenv("GL_KEEP_TEMP_FILES") != "1" { - defer os.Remove(cfgPath) - } - - cfg = strings.ReplaceAll(strings.TrimSpace(cfg), "\t", " ") - - err = os.WriteFile(cfgPath, []byte(cfg), os.ModePerm) - assert.NoError(r.t, err) - - pargs := append([]string{"-c", cfgPath}, args...) - return r.RunCommand(command, pargs...) -} From 57a7e0d7b981f412d9f0cf589bf627ccdac16cc7 Mon Sep 17 00:00:00 2001 From: Adam Bouqdib Date: Fri, 19 Aug 2022 22:53:03 +0100 Subject: [PATCH 145/162] docs: wrong URL in .golangci.reference.yml (#3113) --- .golangci.reference.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 46fd2df5adea..7a60cfb2aed8 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1253,7 +1253,7 @@ linters-settings: allowStrs: '""' allowInts: "0,1,2" allowFloats: "0.0,0.,1.0,1.,2.0,2." - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic + # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit - name: argument-limit severity: warning disabled: false From 2b4c9ab4fc5758d41886125ce2854c7abf91006b Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sat, 20 Aug 2022 18:53:45 +0200 Subject: [PATCH 146/162] dev: follow standards by using 'want' instead of 'ERROR' for tests (#3104) --- Makefile | 2 +- test/data.go | 18 -- test/errchk.go | 240 ------------------ test/fix_test.go | 41 ++- test/linters_test.go | 208 ++------------- test/output_test.go | 82 ++++++ test/run_test.go | 132 +++++----- test/testdata/asasalint.go | 4 +- test/testdata/asciicheck.go | 8 +- test/testdata/bidichk.go | 2 +- test/testdata/bodyclose.go | 2 +- .../{goimports.yml => goimports_local.yml} | 0 test/testdata/containedctx.go | 2 +- test/testdata/contextcheck.go | 6 +- test/testdata/cyclop.go | 2 +- test/testdata/deadcode.go | 4 +- test/testdata/decorder.go | 6 +- test/testdata/decorder_default.go | 1 + test/testdata/default_exclude.go | 4 +- test/testdata/depguard.go | 4 +- test/testdata/depguard_additional_guards.go | 8 +- test/testdata/depguard_ignore_file_rules.go | 1 + test/testdata/dogsled.go | 4 +- test/testdata/dupl.go | 4 +- test/testdata/durationcheck.go | 6 +- test/testdata/errcheck.go | 2 +- test/testdata/errcheck_exclude.go | 2 +- test/testdata/errcheck_exclude_functions.go | 2 +- test/testdata/errcheck_ignore.go | 2 +- test/testdata/errcheck_ignore_default.go | 2 +- test/testdata/errcheck_type_assertions.go | 1 + test/testdata/errchkjson.go | 190 +++++++------- .../errchkjson_check_error_free_encoding.go | 184 +++++++------- test/testdata/errchkjson_no_exported.go | 2 +- test/testdata/errname.go | 22 +- test/testdata/errorlint.go | 6 +- test/testdata/errorlint_asserts.go | 10 +- test/testdata/errorlint_comparison.go | 12 +- test/testdata/errorlint_errorf.go | 8 +- test/testdata/execinquery.go | 8 +- test/testdata/exhaustive.go | 2 +- test/testdata/exhaustive_default.go | 1 + test/testdata/exhaustive_generated.go | 1 + .../exhaustive_ignore_enum_members.go | 2 +- test/testdata/exhaustivestruct.go | 6 +- test/testdata/exhaustivestruct_custom.go | 12 +- test/testdata/exhaustruct.go | 6 +- test/testdata/exhaustruct_custom.go | 6 +- test/testdata/exportloopref.go | 8 +- test/testdata/fix/in/gci.go | 1 + test/testdata/fix/in/gocritic.go | 1 + test/testdata/fix/in/godot.go | 1 + test/testdata/fix/in/gofmt.go | 1 + test/testdata/fix/in/gofumpt.go | 1 + test/testdata/fix/in/goimports.go | 1 + test/testdata/fix/in/misspell.go | 1 + test/testdata/fix/in/whitespace.go | 1 + test/testdata/fix/out/gci.go | 1 + test/testdata/fix/out/gocritic.go | 1 + test/testdata/fix/out/godot.go | 1 + test/testdata/fix/out/gofmt.go | 1 + test/testdata/fix/out/gofumpt.go | 1 + test/testdata/fix/out/goimports.go | 1 + test/testdata/fix/out/misspell.go | 1 + test/testdata/fix/out/whitespace.go | 1 + test/testdata/forbidigo_example.go | 4 +- test/testdata/forbidigo_example_test.go | 1 + .../forbidigo_include_godoc_examples_test.go | 2 +- test/testdata/forcetypeassert.go | 4 +- test/testdata/funlen.go | 4 +- test/testdata/gci.go | 4 +- test/testdata/gci/gci.go | 16 -- test/testdata/go-header_bad.go | 2 +- test/testdata/go-header_good.go | 1 + test/testdata/gochecknoglobals.go | 4 +- test/testdata/gochecknoinits.go | 2 +- test/testdata/gocognit.go | 6 +- test/testdata/goconst.go | 4 +- test/testdata/goconst_calls_enabled.go | 2 +- test/testdata/goconst_dont_ignore_test.go | 4 +- test/testdata/goconst_ignore_test.go | 1 + test/testdata/gocritic.go | 10 +- test/testdata/gocyclo.go | 2 +- test/testdata/godot.go | 2 +- test/testdata/godox.go | 14 +- test/testdata/goerr113.go | 6 +- test/testdata/gofmt.go | 2 +- test/testdata/gofmt_no_simplify.go | 2 +- test/testdata/gofumpt.go | 2 +- test/testdata/gofumpt_with_extra.go | 2 +- test/testdata/goimports.go | 2 +- test/testdata/goimports/goimports.go | 16 -- test/testdata/goimports_local.go | 16 ++ test/testdata/golint.go | 4 +- test/testdata/gomnd.go | 4 +- test/testdata/gomodguard.go | 2 +- test/testdata/goprintffuncname.go | 2 +- test/testdata/gosec.go | 6 +- test/testdata/gosec_rules_config.go | 4 +- test/testdata/gosec_severity_confidence.go | 2 +- test/testdata/gosimple.go | 2 +- test/testdata/govet.go | 8 +- test/testdata/govet_fieldalignment.go | 8 +- test/testdata/govet_ifaceassert.go | 2 +- test/testdata/ifshort.go | 2 +- test/testdata/importas.go | 6 +- test/testdata/importas_noalias.go | 1 + test/testdata/importas_strict.go | 8 +- test/testdata/ineffassign.go | 2 +- test/testdata/interfacer.go | 2 +- test/testdata/ireturn_allow.go | 1 + test/testdata/ireturn_default.go | 2 +- test/testdata/ireturn_reject_stdlib.go | 2 +- test/testdata/lll.go | 2 +- test/testdata/maintidx.go | 2 +- test/testdata/maintidx_under_100.go | 4 +- test/testdata/makezero.go | 6 +- test/testdata/makezero_always.go | 2 +- test/testdata/maligned.go | 2 +- test/testdata/misspell.go | 2 +- test/testdata/nakedret.go | 2 +- test/testdata/nestif.go | 10 +- test/testdata/nilerr.go | 6 +- test/testdata/nilnil.go | 52 ++-- test/testdata/nlreturn-block-size.go | 2 +- test/testdata/nlreturn.go | 22 +- test/testdata/noctx.go | 48 ++-- test/testdata/nolintlint.go | 6 +- test/testdata/nolintlint_unused.go | 4 +- test/testdata/nonamedreturns.go | 26 +- test/testdata/nonamedreturns_custom.go | 18 +- test/testdata/nosnakecase.go | 80 +++--- test/testdata/nosprintfhostport.go | 16 +- test/testdata/notcompiles/typecheck.go | 2 +- .../notcompiles/typecheck_many_issues.go | 8 +- test/testdata/paralleltest.go | 2 +- test/testdata/prealloc.go | 2 +- test/testdata/predeclared.go | 6 +- test/testdata/predeclared_custom.go | 4 +- test/testdata/promlinter.go | 8 +- test/testdata/revive.go | 2 +- test/testdata/revive_default.go | 2 +- test/testdata/rowserrcheck.go | 2 +- test/testdata/scopelint.go | 2 +- test/testdata/sqlclosecheck.go | 8 +- test/testdata/staticcheck.go | 4 +- test/testdata/staticcheck_in_megacheck.go | 4 +- test/testdata/structcheck.go | 2 +- test/testdata/stylecheck.go | 4 +- test/testdata/stylecheck_not_in_megacheck.go | 1 + test/testdata/tagliatelle.go | 8 +- test/testdata/tenv.go | 18 +- test/testdata/tenv_all.go | 18 +- test/testdata/tenv_all_test.go | 24 +- test/testdata/tenv_go118.go | 6 +- test/testdata/tenv_test.go | 18 +- test/testdata/testpackage_test.go | 2 +- test/testdata/thelper.go | 18 +- test/testdata/thelper_go118.go | 6 +- test/testdata/thelper_with_options.go | 4 +- .../tparallel/missing_subtest_test.go | 12 - .../tparallel/missing_toplevel_test.go | 11 - ...h_test.go => tparallel_happy_path_test.go} | 2 + .../tparallel_missing_subtest_test.go | 13 + .../tparallel_missing_toplevel_test.go | 12 + test/testdata/unconvert.go | 2 +- test/testdata/unparam.go | 2 +- test/testdata/unused.go | 12 +- test/testdata/usestdlibvars.go | 2 +- test/testdata/varcheck.go | 2 +- test/testdata/varnamelen.go | 2 +- test/testdata/wastedassign.go | 28 +- test/testdata/wrapcheck.go | 2 +- test/testdata/wsl.go | 28 +- test/testshared/analysis.go | 200 +++++++++++++++ test/testshared/analysis_test.go | 138 ++++++++++ test/testshared/directives.go | 18 +- test/testshared/directives_test.go | 3 + test/testshared/runner.go | 17 +- test/testshared/runner_test.go | 2 +- test/testshared/testdata/all.go | 1 + 181 files changed, 1273 insertions(+), 1244 deletions(-) delete mode 100644 test/data.go delete mode 100644 test/errchk.go create mode 100644 test/output_test.go rename test/testdata/configs/{goimports.yml => goimports_local.yml} (100%) delete mode 100644 test/testdata/gci/gci.go delete mode 100644 test/testdata/goimports/goimports.go create mode 100644 test/testdata/goimports_local.go delete mode 100644 test/testdata/tparallel/missing_subtest_test.go delete mode 100644 test/testdata/tparallel/missing_toplevel_test.go rename test/testdata/{tparallel/happy_path_test.go => tparallel_happy_path_test.go} (75%) create mode 100644 test/testdata/tparallel_missing_subtest_test.go create mode 100644 test/testdata/tparallel_missing_toplevel_test.go create mode 100644 test/testshared/analysis.go create mode 100644 test/testshared/analysis_test.go diff --git a/Makefile b/Makefile index 1ba54cb23ebe..0933674f1e87 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ test_race: build_race .PHONY: test_race test_linters: - GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdataWithIssuesDir/$T + GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdata/$T .PHONY: test_linters # Maintenance diff --git a/test/data.go b/test/data.go deleted file mode 100644 index 217be64c6340..000000000000 --- a/test/data.go +++ /dev/null @@ -1,18 +0,0 @@ -package test - -import ( - "path/filepath" -) - -const testdataDir = "testdata" - -var minimalPkg = getTestDataDir("minimalpkg") - -func getProjectRoot() string { - return filepath.Join("..", "...") -} - -func getTestDataDir(names ...string) string { - parts := append([]string{testdataDir}, names...) - return filepath.Join(parts...) -} diff --git a/test/errchk.go b/test/errchk.go deleted file mode 100644 index 4285e21a0631..000000000000 --- a/test/errchk.go +++ /dev/null @@ -1,240 +0,0 @@ -package test - -import ( - "bytes" - "errors" - "fmt" - "log" - "os" - "regexp" - "strconv" - "strings" -) - -var errorLineRx = regexp.MustCompile(`^\S+?: (.*)\((\S+?)\)$`) - -// errorCheck matches errors in outStr against comments in source files. -// For each line of the source files which should generate an error, -// there should be a comment of the form // ERROR "regexp". -// If outStr has an error for a line which has no such comment, -// this function will report an error. -// Likewise if outStr does not have an error for a line which has a comment, -// or if the error message does not match the . -// The syntax is Perl but it's best to stick to egrep. -// -// Sources files are supplied as fullshort slice. -// It consists of pairs: full path to source file and its base name. -// -//nolint:gocyclo,funlen -func errorCheck(outStr string, wantAuto bool, defaultWantedLinter string, fullshort ...string) (err error) { - var errs []error - out := splitOutput(outStr, wantAuto) - // Cut directory name. - for i := range out { - for j := 0; j < len(fullshort); j += 2 { - full, short := fullshort[j], fullshort[j+1] - out[i] = strings.ReplaceAll(out[i], full, short) - } - } - - var want []wantedError - for j := 0; j < len(fullshort); j += 2 { - full, short := fullshort[j], fullshort[j+1] - want = append(want, wantedErrors(full, short, defaultWantedLinter)...) - } - for _, we := range want { - if we.linter == "" { - err := fmt.Errorf("%s:%d: no expected linter indicated for test", - we.file, we.lineNum) - errs = append(errs, err) - continue - } - - var errmsgs []string - if we.auto { - errmsgs, out = partitionStrings("", out) - } else { - errmsgs, out = partitionStrings(we.prefix, out) - } - if len(errmsgs) == 0 { - errs = append(errs, fmt.Errorf("%s:%d: missing error %q", we.file, we.lineNum, we.reStr)) - continue - } - matched := false - var textsToMatch []string - for _, errmsg := range errmsgs { - // Assume errmsg says "file:line: foo ()". - matches := errorLineRx.FindStringSubmatch(errmsg) - if len(matches) == 0 { - err := fmt.Errorf("%s:%d: unexpected error line: %s", - we.file, we.lineNum, errmsg) - errs = append(errs, err) - continue - } - - text, actualLinter := matches[1], matches[2] - - if we.re.MatchString(text) { - matched = true - } else { - out = append(out, errmsg) - textsToMatch = append(textsToMatch, text) - } - - if actualLinter != we.linter { - err := fmt.Errorf("%s:%d: expected error from %q but got error from %q in:\n\t%s", - we.file, we.lineNum, we.linter, actualLinter, strings.Join(out, "\n\t")) - errs = append(errs, err) - } - } - if !matched { - err := fmt.Errorf("%s:%d: no match for %#q vs %q in:\n\t%s", - we.file, we.lineNum, we.reStr, textsToMatch, strings.Join(out, "\n\t")) - errs = append(errs, err) - continue - } - } - - if len(out) > 0 { - errs = append(errs, errors.New("unmatched errors")) - for _, errLine := range out { - errs = append(errs, fmt.Errorf("%s", errLine)) - } - } - - if len(errs) == 0 { - return nil - } - if len(errs) == 1 { - return errs[0] - } - var buf bytes.Buffer - fmt.Fprintf(&buf, "\n") - for _, err := range errs { - fmt.Fprintf(&buf, "%s\n", err.Error()) - } - return errors.New(buf.String()) -} - -func splitOutput(out string, wantAuto bool) []string { - // gc error messages continue onto additional lines with leading tabs. - // Split the output at the beginning of each line that doesn't begin with a tab. - // lines are impossible to match so those are filtered out. - var res []string - for _, line := range strings.Split(out, "\n") { - line = strings.TrimSuffix(line, "\r") // normalize Windows output - if strings.HasPrefix(line, "\t") { - res[len(res)-1] += "\n" + line - } else if strings.HasPrefix(line, "go tool") || strings.HasPrefix(line, "#") || !wantAuto && strings.HasPrefix(line, "") { - continue - } else if strings.TrimSpace(line) != "" { - res = append(res, line) - } - } - return res -} - -// matchPrefix reports whether s starts with file name prefix followed by a :, -// and possibly preceded by a directory name. -func matchPrefix(s, prefix string) bool { - i := strings.Index(s, ":") - if i < 0 { - return false - } - j := strings.LastIndex(s[:i], "/") - s = s[j+1:] - if len(s) <= len(prefix) || s[:len(prefix)] != prefix { - return false - } - if s[len(prefix)] == ':' { - return true - } - return false -} - -func partitionStrings(prefix string, strs []string) (matched, unmatched []string) { - for _, s := range strs { - if matchPrefix(s, prefix) { - matched = append(matched, s) - } else { - unmatched = append(unmatched, s) - } - } - return -} - -type wantedError struct { - reStr string - re *regexp.Regexp - lineNum int - auto bool // match line - file string - prefix string - linter string -} - -var ( - errRx = regexp.MustCompile(`// (?:GC_)?ERROR (.*)`) - errAutoRx = regexp.MustCompile(`// (?:GC_)?ERRORAUTO (.*)`) - linterPrefixRx = regexp.MustCompile("^\\s*([^\\s\"`]+)") -) - -// wantedErrors parses expected errors from comments in a file. -// -//nolint:nakedret -func wantedErrors(file, short, defaultLinter string) (errs []wantedError) { - cache := make(map[string]*regexp.Regexp) - - src, err := os.ReadFile(file) - if err != nil { - log.Fatal(err) - } - for i, line := range strings.Split(string(src), "\n") { - lineNum := i + 1 - if strings.Contains(line, "////") { - // double comment disables ERROR - continue - } - var auto bool - m := errAutoRx.FindStringSubmatch(line) - if m != nil { - auto = true - } else { - m = errRx.FindStringSubmatch(line) - } - if m == nil { - continue - } - rest := m[1] - linter := defaultLinter - if lm := linterPrefixRx.FindStringSubmatch(rest); lm != nil { - linter = lm[1] - rest = rest[len(lm[0]):] - } - rx, err := strconv.Unquote(strings.TrimSpace(rest)) - if err != nil { - log.Fatalf("%s:%d: invalid errchk line: %s, %v", file, lineNum, line, err) - } - re := cache[rx] - if re == nil { - var err error - re, err = regexp.Compile(rx) - if err != nil { - log.Fatalf("%s:%d: invalid regexp \"%#q\" in ERROR line: %v", file, lineNum, rx, err) - } - cache[rx] = re - } - prefix := fmt.Sprintf("%s:%d", short, lineNum) - errs = append(errs, wantedError{ - reStr: rx, - re: re, - prefix: prefix, - auto: auto, - lineNum: lineNum, - file: short, - linter: linter, - }) - } - - return -} diff --git a/test/fix_test.go b/test/fix_test.go index f39a96893c52..85653ddf40d4 100644 --- a/test/fix_test.go +++ b/test/fix_test.go @@ -8,37 +8,29 @@ import ( "github.com/stretchr/testify/require" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" ) func TestFix(t *testing.T) { - findSources := func(pathPatterns ...string) []string { - sources, err := filepath.Glob(filepath.Join(pathPatterns...)) - require.NoError(t, err) - require.NotEmpty(t, sources) - return sources - } - tmpDir := filepath.Join(testdataDir, "fix.tmp") - os.RemoveAll(tmpDir) // cleanup after previous runs + _ = os.RemoveAll(tmpDir) // cleanup previous runs if os.Getenv("GL_KEEP_TEMP_FILES") == "1" { t.Logf("Temp dir for fix test: %s", tmpDir) } else { - t.Cleanup(func() { - os.RemoveAll(tmpDir) - }) + t.Cleanup(func() { _ = os.RemoveAll(tmpDir) }) } - fixDir := filepath.Join(testdataDir, "fix") - err := exec.Command("cp", "-R", fixDir, tmpDir).Run() + sourcesDir := filepath.Join(testdataDir, "fix") + + err := exec.Command("cp", "-R", sourcesDir, tmpDir).Run() require.NoError(t, err) testshared.InstallGolangciLint(t) - inputs := findSources(tmpDir, "in", "*.go") - for _, input := range inputs { + sources := findSources(t, tmpDir, "in", "*.go") + + for _, input := range sources { input := input t.Run(filepath.Base(input), func(t *testing.T) { t.Parallel() @@ -49,22 +41,19 @@ func TestFix(t *testing.T) { return } - runResult := testshared.NewRunnerBuilder(t). - WithRunContext(rc). - WithTargetPath(input). + testshared.NewRunnerBuilder(t). WithArgs( "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", "--out-format=line-number", - "--fix"). + "--fix", + ). + WithRunContext(rc). + WithTargetPath(input). Runner(). - Run() - - // nolintlint test uses non existing linters (bob, alice) - if rc.ExpectedLinter != "nolintlint" { - runResult.ExpectExitCode(exitcodes.Success) - } + Run(). + ExpectExitCode(rc.ExitCode) output, err := os.ReadFile(input) require.NoError(t, err) diff --git a/test/linters_test.go b/test/linters_test.go index c1e49ccf6361..3d8ca694c58f 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -1,20 +1,19 @@ package test import ( - "fmt" - "os" "os/exec" - "path" "path/filepath" "testing" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" ) -func TestSourcesFromTestdataWithIssuesDir(t *testing.T) { +const testdataDir = "testdata" + +func TestSourcesFromTestdata(t *testing.T) { testSourcesFromDir(t, testdataDir) } @@ -27,13 +26,7 @@ func testSourcesFromDir(t *testing.T, dir string) { t.Log(filepath.Join(dir, "*.go")) - findSources := func(pathPatterns ...string) []string { - sources, err := filepath.Glob(filepath.Join(pathPatterns...)) - require.NoError(t, err) - require.NotEmpty(t, sources) - return sources - } - sources := findSources(dir, "*.go") + sources := findSources(t, dir, "*.go") testshared.InstallGolangciLint(t) @@ -49,19 +42,18 @@ func testSourcesFromDir(t *testing.T, dir string) { func testOneSource(t *testing.T, sourcePath string) { t.Helper() + rc := testshared.ParseTestDirectives(t, sourcePath) + if rc == nil { + t.Skipf("Skipped: %s", sourcePath) + } + args := []string{ "--allow-parallel-runners", "--disable-all", - "--print-issued-lines=false", - "--out-format=line-number", + "--out-format=json", "--max-same-issues=100", } - rc := testshared.ParseTestDirectives(t, sourcePath) - if rc == nil { - t.Skipf("Skipped: %s", sourcePath) - } - for _, addArg := range []string{"", "-Etypecheck"} { caseArgs := append([]string{}, args...) @@ -69,190 +61,36 @@ func testOneSource(t *testing.T, sourcePath string) { caseArgs = append(caseArgs, addArg) } - files := []string{sourcePath} - - runner := testshared.NewRunnerBuilder(t). + cmd := testshared.NewRunnerBuilder(t). WithNoParallelRunners(). WithArgs(caseArgs...). WithRunContext(rc). WithTargetPath(sourcePath). - Runner() + Runner(). + Command() + + output, err := cmd.CombinedOutput() - output, err := runner.RawRun() // The returned error will be nil if the test file does not have any issues // and thus the linter exits with exit code 0. // So perform the additional assertions only if the error is non-nil. if err != nil { var exitErr *exec.ExitError require.ErrorAs(t, err, &exitErr) - require.Equal(t, exitcodes.IssuesFound, exitErr.ExitCode(), "Unexpected exit code: %s", string(output)) } - fullshort := make([]string, 0, len(files)*2) - for _, f := range files { - fullshort = append(fullshort, f, filepath.Base(f)) - } + assert.Equal(t, rc.ExitCode, cmd.ProcessState.ExitCode(), "Unexpected exit code: %s", string(output)) - err = errorCheck(string(output), false, rc.ExpectedLinter, fullshort...) - require.NoError(t, err) + testshared.Analyze(t, sourcePath, output) } } -func TestMultipleOutputs(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - - testshared.NewRunnerBuilder(t). - WithArgs( - "--disable-all", - "--print-issued-lines=false", - "--print-linter-name=false", - "--out-format=line-number,json:stdout", - ). - WithDirectives(sourcePath). - WithTargetPath(sourcePath). - Runner(). - Install(). - Run(). - ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). - ExpectOutputContains(`"Issues":[`) -} - -func TestStderrOutput(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - - testshared.NewRunnerBuilder(t). - WithArgs( - "--disable-all", - "--print-issued-lines=false", - "--print-linter-name=false", - "--out-format=line-number,json:stderr", - ). - WithDirectives(sourcePath). - WithTargetPath(sourcePath). - Runner(). - Install(). - Run(). - ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). - ExpectOutputContains(`"Issues":[`) -} - -func TestFileOutput(t *testing.T) { - resultPath := path.Join(t.TempDir(), "golangci_lint_test_result") - - sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - - testshared.NewRunnerBuilder(t). - WithArgs( - "--disable-all", - "--print-issued-lines=false", - "--print-linter-name=false", - fmt.Sprintf("--out-format=json:%s,line-number", resultPath), - ). - WithDirectives(sourcePath). - WithTargetPath(sourcePath). - Runner(). - Install(). - Run(). - ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed"). - ExpectOutputNotContains(`"Issues":[`) +func findSources(t *testing.T, pathPatterns ...string) []string { + t.Helper() - b, err := os.ReadFile(resultPath) + sources, err := filepath.Glob(filepath.Join(pathPatterns...)) require.NoError(t, err) - require.Contains(t, string(b), `"Issues":[`) -} + require.NotEmpty(t, sources) -func TestLinter_goimports_local(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "goimports", "goimports.go") - - testshared.NewRunnerBuilder(t). - WithArgs( - "--disable-all", - "--print-issued-lines=false", - "--print-linter-name=false", - "--out-format=line-number", - ). - WithDirectives(sourcePath). - WithTargetPath(sourcePath). - Runner(). - Install(). - Run(). - ExpectHasIssue("testdata/goimports/goimports.go:8: File is not `goimports`-ed") -} - -func TestLinter_gci_Local(t *testing.T) { - sourcePath := filepath.Join(testdataDir, "gci", "gci.go") - - testshared.NewRunnerBuilder(t). - WithArgs( - "--disable-all", - "--print-issued-lines=false", - "--print-linter-name=false", - "--out-format=line-number", - ). - WithDirectives(sourcePath). - WithTargetPath(sourcePath). - Runner(). - Install(). - Run(). - ExpectHasIssue("testdata/gci/gci.go:8: File is not `gci`-ed") -} - -// TODO(ldez) need to be converted to a classic linter test. -func TestLinter_tparallel(t *testing.T) { - testCases := []struct { - desc string - sourcePath string - expected func(result *testshared.RunnerResult) - }{ - { - desc: "should fail on missing top-level Parallel()", - sourcePath: filepath.Join(testdataDir, "tparallel", "missing_toplevel_test.go"), - expected: func(result *testshared.RunnerResult) { - result.ExpectHasIssue( - "testdata/tparallel/missing_toplevel_test.go:7:6: TestTopLevel should call t.Parallel on the top level as well as its subtests\n", - ) - }, - }, - { - desc: "should fail on missing subtest Parallel()", - sourcePath: filepath.Join(testdataDir, "tparallel", "missing_subtest_test.go"), - expected: func(result *testshared.RunnerResult) { - result.ExpectHasIssue( - "testdata/tparallel/missing_subtest_test.go:7:6: TestSubtests's subtests should call t.Parallel\n", - ) - }, - }, - { - desc: "should pass on parallel test with no subtests", - sourcePath: filepath.Join(testdataDir, "tparallel", "happy_path_test.go"), - expected: func(result *testshared.RunnerResult) { - result.ExpectNoIssues() - }, - }, - } - - testshared.InstallGolangciLint(t) - - for _, test := range testCases { - test := test - t.Run(test.desc, func(t *testing.T) { - t.Parallel() - - result := testshared.NewRunnerBuilder(t). - WithDirectives(test.sourcePath). - WithArgs( - "--disable-all", - "--enable", - "tparallel", - "--print-issued-lines=false", - "--print-linter-name=false", - "--out-format=line-number", - ). - WithTargetPath(test.sourcePath). - Runner(). - Run() - - test.expected(result) - }) - } + return sources } diff --git a/test/output_test.go b/test/output_test.go new file mode 100644 index 000000000000..75f8469e82a7 --- /dev/null +++ b/test/output_test.go @@ -0,0 +1,82 @@ +package test + +import ( + "fmt" + "os" + "path" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/golangci/golangci-lint/test/testshared" +) + +//nolint:misspell,lll +const expectedJSONOutput = `{"Issues":[{"FromLinter":"misspell","Text":"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `","Severity":"","SourceLines":["\t// comment with incorrect spelling: occured // want \"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `\""],"Replacement":{"NeedOnlyDelete":false,"NewLines":null,"Inline":{"StartCol":37,"Length":7,"NewString":"occurred"}},"Pos":{"Filename":"testdata/misspell.go","Offset":0,"Line":6,"Column":38},"ExpectNoLint":false,"ExpectedNoLintLinter":""}],"Report":{"Linters":[{"Name":"asasalint"},{"Name":"asciicheck"},{"Name":"bidichk"},{"Name":"bodyclose"},{"Name":"containedctx"},{"Name":"contextcheck"},{"Name":"cyclop"},{"Name":"decorder"},{"Name":"deadcode","EnabledByDefault":true},{"Name":"depguard"},{"Name":"dogsled"},{"Name":"dupl"},{"Name":"durationcheck"},{"Name":"errcheck","EnabledByDefault":true},{"Name":"errchkjson"},{"Name":"errname"},{"Name":"errorlint"},{"Name":"execinquery"},{"Name":"exhaustive"},{"Name":"exhaustivestruct"},{"Name":"exhaustruct"},{"Name":"exportloopref"},{"Name":"forbidigo"},{"Name":"forcetypeassert"},{"Name":"funlen"},{"Name":"gci"},{"Name":"gochecknoglobals"},{"Name":"gochecknoinits"},{"Name":"gocognit"},{"Name":"goconst"},{"Name":"gocritic"},{"Name":"gocyclo"},{"Name":"godot"},{"Name":"godox"},{"Name":"goerr113"},{"Name":"gofmt"},{"Name":"gofumpt"},{"Name":"goheader"},{"Name":"goimports"},{"Name":"golint"},{"Name":"gomnd"},{"Name":"gomoddirectives"},{"Name":"gomodguard"},{"Name":"goprintffuncname"},{"Name":"gosec"},{"Name":"gosimple","EnabledByDefault":true},{"Name":"govet","EnabledByDefault":true},{"Name":"grouper"},{"Name":"ifshort"},{"Name":"importas"},{"Name":"ineffassign","EnabledByDefault":true},{"Name":"interfacer"},{"Name":"ireturn"},{"Name":"lll"},{"Name":"maintidx"},{"Name":"makezero"},{"Name":"maligned"},{"Name":"misspell","Enabled":true},{"Name":"nakedret"},{"Name":"nestif"},{"Name":"nilerr"},{"Name":"nilnil"},{"Name":"nlreturn"},{"Name":"noctx"},{"Name":"nonamedreturns"},{"Name":"nosnakecase"},{"Name":"nosprintfhostport"},{"Name":"paralleltest"},{"Name":"prealloc"},{"Name":"predeclared"},{"Name":"promlinter"},{"Name":"revive"},{"Name":"rowserrcheck"},{"Name":"scopelint"},{"Name":"sqlclosecheck"},{"Name":"staticcheck","EnabledByDefault":true},{"Name":"structcheck"},{"Name":"stylecheck"},{"Name":"tagliatelle"},{"Name":"tenv"},{"Name":"testpackage"},{"Name":"thelper"},{"Name":"tparallel"},{"Name":"typecheck","EnabledByDefault":true},{"Name":"unconvert"},{"Name":"unparam"},{"Name":"unused","EnabledByDefault":true},{"Name":"usestdlibvars"},{"Name":"varcheck","EnabledByDefault":true},{"Name":"varnamelen"},{"Name":"wastedassign"},{"Name":"whitespace"},{"Name":"wrapcheck"},{"Name":"wsl"},{"Name":"nolintlint"}]}}` + +func TestOutput_Stderr(t *testing.T) { + sourcePath := filepath.Join(testdataDir, "misspell.go") + fmt.Println(filepath.Abs(sourcePath)) + + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number,json:stderr", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + //nolint:misspell + ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`"). + ExpectOutputContains(expectedJSONOutput) +} + +func TestOutput_File(t *testing.T) { + resultPath := path.Join(t.TempDir(), "golangci_lint_test_result") + + sourcePath := filepath.Join(testdataDir, "misspell.go") + + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + fmt.Sprintf("--out-format=json:%s,line-number", resultPath), + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + //nolint:misspell + ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`") + + b, err := os.ReadFile(resultPath) + require.NoError(t, err) + require.Contains(t, string(b), expectedJSONOutput) +} + +func TestOutput_Multiple(t *testing.T) { + sourcePath := filepath.Join(testdataDir, "misspell.go") + + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=line-number,json:stdout", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + //nolint:misspell + ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`"). + ExpectOutputContains(expectedJSONOutput) +} diff --git a/test/run_test.go b/test/run_test.go index da938540a613..bde6f4347952 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -12,13 +12,13 @@ import ( "github.com/golangci/golangci-lint/test/testshared" ) -func getCommonRunArgs() []string { - return []string{"--skip-dirs", "testdata_etc/,pkg/golinters/goanalysis/(checker|passes)"} -} +const minimalPkg = "minimalpkg" + +const skipDirsCommand = "testdata_etc/,pkg/golinters/goanalysis/(checker|passes)" func TestAutogeneratedNoIssues(t *testing.T) { testshared.NewRunnerBuilder(t). - WithTargetPath(getTestDataDir("autogenerated")). + WithTargetPath(testdataDir, "autogenerated"). Runner(). Install(). Run(). @@ -28,7 +28,7 @@ func TestAutogeneratedNoIssues(t *testing.T) { func TestEmptyDirRun(t *testing.T) { testshared.NewRunnerBuilder(t). WithEnviron("GO111MODULE=off"). - WithTargetPath(getTestDataDir("nogofiles")). + WithTargetPath(testdataDir, "nogofiles"). Runner(). Install(). Run(). @@ -39,7 +39,7 @@ func TestEmptyDirRun(t *testing.T) { func TestNotExistingDirRun(t *testing.T) { testshared.NewRunnerBuilder(t). WithEnviron("GO111MODULE=off"). - WithTargetPath(getTestDataDir("no_such_dir")). + WithTargetPath(testdataDir, "no_such_dir"). Runner(). Install(). Run(). @@ -50,7 +50,7 @@ func TestNotExistingDirRun(t *testing.T) { func TestSymlinkLoop(t *testing.T) { testshared.NewRunnerBuilder(t). - WithTargetPath(getTestDataDir("symlink_loop", "...")). + WithTargetPath(testdataDir, "symlink_loop", "..."). Runner(). Install(). Run(). @@ -59,9 +59,11 @@ func TestSymlinkLoop(t *testing.T) { // TODO(ldez): remove this in v2. func TestDeadline(t *testing.T) { + projectRoot := filepath.Join("..", "...") + testshared.NewRunnerBuilder(t). WithArgs("--deadline=1ms"). - WithTargetPath(getProjectRoot()). + WithTargetPath(projectRoot). Runner(). Install(). Run(). @@ -70,9 +72,11 @@ func TestDeadline(t *testing.T) { } func TestTimeout(t *testing.T) { + projectRoot := filepath.Join("..", "...") + testshared.NewRunnerBuilder(t). WithArgs("--timeout=1ms"). - WithTargetPath(getProjectRoot()). + WithTargetPath(projectRoot). Runner(). Install(). Run(). @@ -114,8 +118,8 @@ func TestTimeoutInConfig(t *testing.T) { // Run with disallowed option set only in config testshared.NewRunnerBuilder(t). WithConfig(c.cfg). - WithArgs(getCommonRunArgs()...). - WithTargetPath(minimalPkg). + WithArgs("--skip-dirs", skipDirsCommand). + WithTargetPath(testdataDir, minimalPkg). Runner(). Run(). ExpectExitCode(exitcodes.Timeout). @@ -125,7 +129,7 @@ func TestTimeoutInConfig(t *testing.T) { func TestTestsAreLintedByDefault(t *testing.T) { testshared.NewRunnerBuilder(t). - WithTargetPath(getTestDataDir("withtests")). + WithTargetPath(testdataDir, "withtests"). Runner(). Install(). Run(). @@ -141,7 +145,7 @@ func TestCgoOk(t *testing.T) { "-D", "nosnakecase,gci", ). - WithTargetPath(getTestDataDir("cgo")). + WithTargetPath(testdataDir, "cgo"). Runner(). Install(). Run(). @@ -152,34 +156,34 @@ func TestCgoWithIssues(t *testing.T) { testshared.InstallGolangciLint(t) testCases := []struct { - desc string - args []string - targetPath string - expected string + desc string + args []string + dir string + expected string }{ { - desc: "govet", - args: []string{"--no-config", "--disable-all", "-Egovet"}, - targetPath: getTestDataDir("cgo_with_issues"), - expected: "Printf format %t has arg cs of wrong type", + desc: "govet", + args: []string{"--no-config", "--disable-all", "-Egovet"}, + dir: "cgo_with_issues", + expected: "Printf format %t has arg cs of wrong type", }, { - desc: "staticcheck", - args: []string{"--no-config", "--disable-all", "-Estaticcheck"}, - targetPath: getTestDataDir("cgo_with_issues"), - expected: "SA5009: Printf format %t has arg #1 of wrong type", + desc: "staticcheck", + args: []string{"--no-config", "--disable-all", "-Estaticcheck"}, + dir: "cgo_with_issues", + expected: "SA5009: Printf format %t has arg #1 of wrong type", }, { - desc: "gofmt", - args: []string{"--no-config", "--disable-all", "-Egofmt"}, - targetPath: getTestDataDir("cgo_with_issues"), - expected: "File is not `gofmt`-ed with `-s` (gofmt)", + desc: "gofmt", + args: []string{"--no-config", "--disable-all", "-Egofmt"}, + dir: "cgo_with_issues", + expected: "File is not `gofmt`-ed with `-s` (gofmt)", }, { - desc: "revive", - args: []string{"--no-config", "--disable-all", "-Erevive"}, - targetPath: getTestDataDir("cgo_with_issues"), - expected: "indent-error-flow: if block ends with a return statement", + desc: "revive", + args: []string{"--no-config", "--disable-all", "-Erevive"}, + dir: "cgo_with_issues", + expected: "indent-error-flow: if block ends with a return statement", }, } @@ -190,7 +194,7 @@ func TestCgoWithIssues(t *testing.T) { testshared.NewRunnerBuilder(t). WithArgs(test.args...). - WithTargetPath(test.targetPath). + WithTargetPath(testdataDir, test.dir). Runner(). Run(). ExpectHasIssue(test.expected) @@ -202,7 +206,7 @@ func TestUnsafeOk(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). WithArgs("--enable-all"). - WithTargetPath(getTestDataDir("unsafe")). + WithTargetPath(testdataDir, "unsafe"). Runner(). Install(). Run(). @@ -211,7 +215,7 @@ func TestUnsafeOk(t *testing.T) { func TestGovetCustomFormatter(t *testing.T) { testshared.NewRunnerBuilder(t). - WithTargetPath(getTestDataDir("govet_custom_formatter")). + WithTargetPath(testdataDir, "govet_custom_formatter"). Runner(). Install(). Run(). @@ -232,7 +236,7 @@ func TestLineDirectiveProcessedFilesLiteLoading(t *testing.T) { "--exclude-use-default=false", "-Egolint", ). - WithTargetPath(getTestDataDir("quicktemplate")). + WithTargetPath(testdataDir, "quicktemplate"). Runner(). Install(). Run(). @@ -262,8 +266,6 @@ func TestSortedResults(t *testing.T) { }, } - dir := getTestDataDir("sort_results") - testshared.InstallGolangciLint(t) for _, test := range testCases { @@ -274,7 +276,7 @@ func TestSortedResults(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). WithArgs("--print-issued-lines=false", test.opt). - WithTargetPath(dir). + WithTargetPath(testdataDir, "sort_results"). Runner(). Run(). ExpectExitCode(exitcodes.IssuesFound).ExpectOutputEq(test.want + "\n") @@ -296,7 +298,7 @@ func TestLineDirectiveProcessedFilesFullLoading(t *testing.T) { "--exclude-use-default=false", "-Egolint,govet", ). - WithTargetPath(getTestDataDir("quicktemplate")). + WithTargetPath(testdataDir, "quicktemplate"). Runner(). Install(). Run(). @@ -320,7 +322,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "--disable-all", }, configPath: "testdata/linedirective/dupl.yml", - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "21-23 lines are duplicate of `testdata/linedirective/hello.go:25-27` (dupl)", }, { @@ -329,7 +331,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "-Egofmt", "--disable-all", }, - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "File is not `gofmt`-ed with `-s` (gofmt)", }, { @@ -338,7 +340,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "-Egoimports", "--disable-all", }, - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "File is not `goimports`-ed (goimports)", }, { @@ -348,7 +350,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "--disable-all", }, configPath: "testdata/linedirective/gomodguard.yml", - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "import of package `github.com/ryancurrah/gomodguard` is blocked because the module is not " + "in the allowed modules list. (gomodguard)", }, @@ -359,7 +361,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "--disable-all", }, configPath: "testdata/linedirective/lll.yml", - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "line is 57 characters (lll)", }, { @@ -369,7 +371,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "--disable-all", }, configPath: "", - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "is a misspelling of `language` (misspell)", }, { @@ -379,7 +381,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { "--disable-all", }, configPath: "", - targetPath: getTestDataDir("linedirective"), + targetPath: "linedirective", expected: "block should not start with a whitespace (wsl)", }, } @@ -391,7 +393,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { testshared.NewRunnerBuilder(t). WithArgs(test.args...). - WithTargetPath(test.targetPath). + WithTargetPath(testdataDir, test.targetPath). WithConfigFile(test.configPath). Runner(). Run(). @@ -401,7 +403,7 @@ func TestLintFilesWithLineDirective(t *testing.T) { } func TestSkippedDirsNoMatchArg(t *testing.T) { - dir := getTestDataDir("skipdirs", "skip_me", "nested") + dir := filepath.Join(testdataDir, "skipdirs", "skip_me", "nested") testshared.NewRunnerBuilder(t). WithNoConfig(). @@ -426,7 +428,7 @@ func TestSkippedDirsTestdata(t *testing.T) { "--print-issued-lines=false", "-Egolint", ). - WithTargetPath(getTestDataDir("skipdirs", "...")). + WithTargetPath(testdataDir, "skipdirs", "..."). Runner(). Install(). Run(). @@ -437,7 +439,7 @@ func TestDeadcodeNoFalsePositivesInMainPkg(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). WithArgs("--disable-all", "-Edeadcode"). - WithTargetPath(getTestDataDir("deadcode_main_pkg")). + WithTargetPath(testdataDir, "deadcode_main_pkg"). Runner(). Install(). Run(). @@ -448,7 +450,7 @@ func TestIdentifierUsedOnlyInTests(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). WithArgs("--disable-all", "-Eunused"). - WithTargetPath(getTestDataDir("used_only_in_tests")). + WithTargetPath(testdataDir, "used_only_in_tests"). Runner(). Install(). Run(). @@ -474,11 +476,11 @@ func TestConfigFileIsDetected(t *testing.T) { }{ { desc: "explicit", - targetPath: getTestDataDir("withconfig", "pkg"), + targetPath: filepath.Join(testdataDir, "withconfig", "pkg"), }, { desc: "recursive", - targetPath: getTestDataDir("withconfig", "..."), + targetPath: filepath.Join(testdataDir, "withconfig", "..."), }, } @@ -526,9 +528,9 @@ func TestEnableAllFastAndEnableCanCoexist(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). - WithArgs(getCommonRunArgs()...). + WithArgs("--skip-dirs", skipDirsCommand). WithArgs(test.args...). - WithTargetPath(minimalPkg). + WithTargetPath(testdataDir, minimalPkg). Runner(). Run(). ExpectExitCode(test.expected...) @@ -540,7 +542,7 @@ func TestEnabledPresetsAreNotDuplicated(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). WithArgs("-v", "-p", "style,bugs"). - WithTargetPath(minimalPkg). + WithTargetPath(testdataDir, minimalPkg). Runner(). Install(). Run(). @@ -633,8 +635,8 @@ func TestDisallowedOptionsInConfig(t *testing.T) { // Run with disallowed option set only in config testshared.NewRunnerBuilder(t). WithConfig(c.cfg). - WithArgs(getCommonRunArgs()...). - WithTargetPath(minimalPkg). + WithArgs("--skip-dirs", skipDirsCommand). + WithTargetPath(testdataDir, minimalPkg). Runner(). Run(). ExpectExitCode(exitcodes.Failure) @@ -648,9 +650,9 @@ func TestDisallowedOptionsInConfig(t *testing.T) { // Run with disallowed option set only in command-line testshared.NewRunnerBuilder(t). WithNoConfig(). - WithArgs(getCommonRunArgs()...). + WithArgs("--skip-dirs", skipDirsCommand). WithArgs(args...). - WithTargetPath(minimalPkg). + WithTargetPath(testdataDir, minimalPkg). Runner(). Run(). ExpectExitCode(exitcodes.Success) @@ -659,9 +661,9 @@ func TestDisallowedOptionsInConfig(t *testing.T) { testshared.NewRunnerBuilder(t). WithConfig(c.cfg). - WithArgs(getCommonRunArgs()...). + WithArgs("--skip-dirs", skipDirsCommand). WithArgs(args...). - WithTargetPath(minimalPkg). + WithTargetPath(testdataDir, minimalPkg). Runner(). Run(). ExpectExitCode(exitcodes.Failure) @@ -692,7 +694,7 @@ func TestPathPrefix(t *testing.T) { t.Run(test.desc, func(t *testing.T) { testshared.NewRunnerBuilder(t). WithArgs(test.args...). - WithTargetPath(getTestDataDir("withtests")). + WithTargetPath(testdataDir, "withtests"). Runner(). Run(). ExpectOutputRegexp(test.pattern) diff --git a/test/testdata/asasalint.go b/test/testdata/asasalint.go index 7dcc68397249..ae37bc12510c 100644 --- a/test/testdata/asasalint.go +++ b/test/testdata/asasalint.go @@ -10,11 +10,11 @@ func getArgsLength(args ...interface{}) int { } func checkArgsLength(args ...interface{}) int { - return getArgsLength(args) // ERROR `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` + return getArgsLength(args) // want `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` } func someCall() { var a = []interface{}{1, 2, 3} - fmt.Println(checkArgsLength(a...) == getArgsLength(a)) // ERROR `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` + fmt.Println(checkArgsLength(a...) == getArgsLength(a)) // want `pass \[\]any as any to func getArgsLength func\(args \.\.\.interface\{\}\)` fmt.Println(checkArgsLength(a...) == getArgsLength(a...)) } diff --git a/test/testdata/asciicheck.go b/test/testdata/asciicheck.go index 772cc9d6dba4..5da99c30405c 100644 --- a/test/testdata/asciicheck.go +++ b/test/testdata/asciicheck.go @@ -6,18 +6,18 @@ import ( "time" ) -type AsciicheckTеstStruct struct { // ERROR `identifier "AsciicheckTеstStruct" contain non-ASCII character: U\+0435 'е'` +type AsciicheckTеstStruct struct { // want `identifier "AsciicheckTеstStruct" contain non-ASCII character: U\+0435 'е'` Date time.Time } type AsciicheckField struct{} type AsciicheckJustStruct struct { - Tеst AsciicheckField // ERROR `identifier "Tеst" contain non-ASCII character: U\+0435 'е'` + Tеst AsciicheckField // want `identifier "Tеst" contain non-ASCII character: U\+0435 'е'` } -func AsciicheckTеstFunc() { // ERROR `identifier "AsciicheckTеstFunc" contain non-ASCII character: U\+0435 'е'` - var tеstVar int // ERROR `identifier "tеstVar" contain non-ASCII character: U\+0435 'е'` +func AsciicheckTеstFunc() { // want `identifier "AsciicheckTеstFunc" contain non-ASCII character: U\+0435 'е'` + var tеstVar int // want `identifier "tеstVar" contain non-ASCII character: U\+0435 'е'` tеstVar = 0 fmt.Println(tеstVar) } diff --git a/test/testdata/bidichk.go b/test/testdata/bidichk.go index 05e971a0a35b..fbed2c69ad22 100644 --- a/test/testdata/bidichk.go +++ b/test/testdata/bidichk.go @@ -4,5 +4,5 @@ package testdata import "fmt" func main() { - fmt.Println("LEFT-TO-RIGHT-OVERRIDE: '‭', it is between the single quotes, but it is not visible with a regular editor") // ERROR "found dangerous unicode character sequence LEFT-TO-RIGHT-OVERRIDE" + fmt.Println("LEFT-TO-RIGHT-OVERRIDE: '‭', it is between the single quotes, but it is not visible with a regular editor") // want "found dangerous unicode character sequence LEFT-TO-RIGHT-OVERRIDE" } diff --git a/test/testdata/bodyclose.go b/test/testdata/bodyclose.go index ca12d777c874..e48a045bdae5 100644 --- a/test/testdata/bodyclose.go +++ b/test/testdata/bodyclose.go @@ -7,6 +7,6 @@ import ( ) func BodycloseNotClosed() { - resp, _ := http.Get("https://google.com") // ERROR "response body must be closed" + resp, _ := http.Get("https://google.com") // want "response body must be closed" _, _ = ioutil.ReadAll(resp.Body) } diff --git a/test/testdata/configs/goimports.yml b/test/testdata/configs/goimports_local.yml similarity index 100% rename from test/testdata/configs/goimports.yml rename to test/testdata/configs/goimports_local.yml diff --git a/test/testdata/containedctx.go b/test/testdata/containedctx.go index c68aed5f1c70..c785f5c2e106 100644 --- a/test/testdata/containedctx.go +++ b/test/testdata/containedctx.go @@ -9,7 +9,7 @@ type ok struct { } type ng struct { - ctx context.Context // ERROR "found a struct that contains a context.Context field" + ctx context.Context // want "found a struct that contains a context.Context field" } type empty struct{} diff --git a/test/testdata/contextcheck.go b/test/testdata/contextcheck.go index c153b7718936..84635c33aa97 100644 --- a/test/testdata/contextcheck.go +++ b/test/testdata/contextcheck.go @@ -6,7 +6,7 @@ import "context" type MyString string func contextcheckCase1(ctx context.Context) { - funcWithoutCtx() // ERROR "Function `funcWithoutCtx` should pass the context parameter" + funcWithoutCtx() // want "Function `funcWithoutCtx` should pass the context parameter" } func contextcheckCase2(ctx context.Context) { @@ -21,7 +21,7 @@ func contextcheckCase2(ctx context.Context) { funcWithCtx(ctx) }(ctx) - funcWithCtx(context.Background()) // ERROR "Non-inherited new context, use function like `context.WithXXX` instead" + funcWithCtx(context.Background()) // want "Non-inherited new context, use function like `context.WithXXX` instead" } func contextcheckCase3(ctx context.Context) { @@ -29,7 +29,7 @@ func contextcheckCase3(ctx context.Context) { funcWithCtx(ctx) }() - ctx = context.Background() // ERROR "Non-inherited new context, use function like `context.WithXXX` instead" + ctx = context.Background() // want "Non-inherited new context, use function like `context.WithXXX` instead" funcWithCtx(ctx) } diff --git a/test/testdata/cyclop.go b/test/testdata/cyclop.go index de93a9dab659..e954d3fcbf05 100644 --- a/test/testdata/cyclop.go +++ b/test/testdata/cyclop.go @@ -2,7 +2,7 @@ //golangcitest:config_path testdata/configs/cyclop.yml package testdata -func cyclopComplexFunc(s string) { // ERROR "calculated cyclomatic complexity for function cyclopComplexFunc is 22, max is 15" +func cyclopComplexFunc(s string) { // want "calculated cyclomatic complexity for function cyclopComplexFunc is 22, max is 15" if s == "1" || s == "2" || s == "3" || s == "4" || s == "5" || s == "6" || s == "7" { return } diff --git a/test/testdata/deadcode.go b/test/testdata/deadcode.go index 1d2cdd9d1238..e2c55580dd34 100644 --- a/test/testdata/deadcode.go +++ b/test/testdata/deadcode.go @@ -3,12 +3,12 @@ package testdata var y int -var unused int // ERROR "`unused` is unused" +var unused int // want "`unused` is unused" func f(x int) { } -func g(x int) { // ERROR "`g` is unused" +func g(x int) { // want "`g` is unused" } func H(x int) { diff --git a/test/testdata/decorder.go b/test/testdata/decorder.go index 4f409db4074c..5936289d42fb 100644 --- a/test/testdata/decorder.go +++ b/test/testdata/decorder.go @@ -10,12 +10,12 @@ const ( ) var decoa = 1 -var decob = 1 // ERROR "multiple \"var\" declarations are not allowed; use parentheses instead" +var decob = 1 // want "multiple \"var\" declarations are not allowed; use parentheses instead" -type decoe int // ERROR "type must not be placed after const" +type decoe int // want "type must not be placed after const" func decof() { const decog = 1 } -func init() {} // ERROR "init func must be the first function in file" +func init() {} // want "init func must be the first function in file" diff --git a/test/testdata/decorder_default.go b/test/testdata/decorder_default.go index a568cf4ca0bc..04736ec32074 100644 --- a/test/testdata/decorder_default.go +++ b/test/testdata/decorder_default.go @@ -1,4 +1,5 @@ //golangcitest:args -Edecorder +//golangcitest:expected_exitcode 0 package testdata import "math" diff --git a/test/testdata/default_exclude.go b/test/testdata/default_exclude.go index be4547f58ed8..7c9d00607554 100644 --- a/test/testdata/default_exclude.go +++ b/test/testdata/default_exclude.go @@ -4,13 +4,13 @@ /*Package testdata ...*/ package testdata -// InvalidFuncComment, both golint and stylecheck will complain about this, // ERROR stylecheck `ST1020: comment on exported function ExportedFunc1 should be of the form "ExportedFunc1 ..."` +// InvalidFuncComment, both golint and stylecheck will complain about this, // want stylecheck:`ST1020: comment on exported function ExportedFunc1 should be of the form "ExportedFunc1 ..."` // if include EXC0011, only the warning from golint will be ignored. // And only the warning from stylecheck will start with "ST1020". func ExportedFunc1() { } -// InvalidFuncComment // ERROR stylecheck `ST1020: comment on exported function ExportedFunc2 should be of the form "ExportedFunc2 ..."` +// InvalidFuncComment // want stylecheck:`ST1020: comment on exported function ExportedFunc2 should be of the form "ExportedFunc2 ..."` // //nolint:golint func ExportedFunc2() { diff --git a/test/testdata/depguard.go b/test/testdata/depguard.go index b5c2ec265681..b1b1946b43e4 100644 --- a/test/testdata/depguard.go +++ b/test/testdata/depguard.go @@ -3,8 +3,8 @@ package testdata import ( - "compress/gzip" // ERROR "`compress/gzip` is in the denylist" - "log" // ERROR "`log` is in the denylist: don't use log" + "compress/gzip" // want "`compress/gzip` is in the denylist" + "log" // want "`log` is in the denylist: don't use log" ) func SpewDebugInfo() { diff --git a/test/testdata/depguard_additional_guards.go b/test/testdata/depguard_additional_guards.go index 337b1bf21979..46f2f43ebab6 100644 --- a/test/testdata/depguard_additional_guards.go +++ b/test/testdata/depguard_additional_guards.go @@ -3,10 +3,10 @@ package testdata import ( - "compress/gzip" // ERROR "`compress/gzip` is in the denylist" - "fmt" // ERROR "`fmt` is in the denylist" - "log" // ERROR "`log` is in the denylist: don't use log" - "strings" // ERROR "`strings` is in the denylist: disallowed in additional guard" + "compress/gzip" // want "`compress/gzip` is in the denylist" + "fmt" // want "`fmt` is in the denylist" + "log" // want "`log` is in the denylist: don't use log" + "strings" // want "`strings` is in the denylist: disallowed in additional guard" ) func SpewDebugInfo() { diff --git a/test/testdata/depguard_ignore_file_rules.go b/test/testdata/depguard_ignore_file_rules.go index cb3cdc438ade..c1073767a1d8 100644 --- a/test/testdata/depguard_ignore_file_rules.go +++ b/test/testdata/depguard_ignore_file_rules.go @@ -1,5 +1,6 @@ //golangcitest:args -Edepguard //golangcitest:config_path testdata/configs/depguard_ignore_file_rules.yml +//golangcitest:expected_exitcode 0 package testdata // NOTE - No lint errors becuase this file is ignored diff --git a/test/testdata/dogsled.go b/test/testdata/dogsled.go index 1d1ade7119a0..125210b15642 100644 --- a/test/testdata/dogsled.go +++ b/test/testdata/dogsled.go @@ -4,8 +4,8 @@ package testdata func Dogsled() { _ = ret1() _, _ = ret2() - _, _, _ = ret3() // ERROR "declaration has 3 blank identifiers" - _, _, _, _ = ret4() // ERROR "declaration has 4 blank identifiers" + _, _, _ = ret3() // want "declaration has 3 blank identifiers" + _, _, _, _ = ret4() // want "declaration has 4 blank identifiers" } func ret1() (a int) { diff --git a/test/testdata/dupl.go b/test/testdata/dupl.go index 863c334cd1cf..31a9cdd64034 100644 --- a/test/testdata/dupl.go +++ b/test/testdata/dupl.go @@ -11,7 +11,7 @@ func (DuplLogger) level() int { func (DuplLogger) Debug(args ...interface{}) {} func (DuplLogger) Info(args ...interface{}) {} -func (logger *DuplLogger) First(args ...interface{}) { // ERROR "14-23 lines are duplicate of `.*dupl.go:25-34`" +func (logger *DuplLogger) First(args ...interface{}) { // want "14-23 lines are duplicate of `.*dupl.go:25-34`" if logger.level() >= 0 { logger.Debug(args...) logger.Debug(args...) @@ -22,7 +22,7 @@ func (logger *DuplLogger) First(args ...interface{}) { // ERROR "14-23 lines are } } -func (logger *DuplLogger) Second(args ...interface{}) { // ERROR "25-34 lines are duplicate of `.*dupl.go:14-23`" +func (logger *DuplLogger) Second(args ...interface{}) { // want "25-34 lines are duplicate of `.*dupl.go:14-23`" if logger.level() >= 1 { logger.Info(args...) logger.Info(args...) diff --git a/test/testdata/durationcheck.go b/test/testdata/durationcheck.go index b7cd68168e57..ac5264675075 100644 --- a/test/testdata/durationcheck.go +++ b/test/testdata/durationcheck.go @@ -18,7 +18,7 @@ func durationcheckCase01() { func durationcheckCase02() { dcd := durationCheckData{d: 10 * time.Second} - _ = dcd.d * time.Second // ERROR "Multiplication of durations: `dcd.d \\* time.Second`" + _ = dcd.d * time.Second // want "Multiplication of durations: `dcd.d \\* time.Second`" } func durationcheckCase03() { @@ -27,12 +27,12 @@ func durationcheckCase03() { } func durationcheckCase04(someDuration time.Duration) { - timeToWait := someDuration * time.Second // ERROR "Multiplication of durations: `someDuration \\* time.Second`" + timeToWait := someDuration * time.Second // want "Multiplication of durations: `someDuration \\* time.Second`" time.Sleep(timeToWait) } func durationcheckCase05() { someDuration := 2 * time.Second - timeToWait := someDuration * time.Second // ERROR "Multiplication of durations: `someDuration \\* time.Second`" + timeToWait := someDuration * time.Second // want "Multiplication of durations: `someDuration \\* time.Second`" time.Sleep(timeToWait) } diff --git a/test/testdata/errcheck.go b/test/testdata/errcheck.go index a894ea3e9492..3227cac20f58 100644 --- a/test/testdata/errcheck.go +++ b/test/testdata/errcheck.go @@ -12,7 +12,7 @@ func RetErr() error { } func MissedErrorCheck() { - RetErr() // ERROR "Error return value is not checked" + RetErr() // want "Error return value is not checked" } func IgnoreCloseMissingErrHandling() error { diff --git a/test/testdata/errcheck_exclude.go b/test/testdata/errcheck_exclude.go index b6ddd9872cfa..9b9907c2f8aa 100644 --- a/test/testdata/errcheck_exclude.go +++ b/test/testdata/errcheck_exclude.go @@ -12,6 +12,6 @@ func TestErrcheckExclude() []byte { } func TestErrcheckNoExclude() []byte { - ret, _ := ioutil.ReadAll(nil) // ERROR "Error return value of `ioutil.ReadAll` is not checked" + ret, _ := ioutil.ReadAll(nil) // want "Error return value of `ioutil.ReadAll` is not checked" return ret } diff --git a/test/testdata/errcheck_exclude_functions.go b/test/testdata/errcheck_exclude_functions.go index ff17ab9a7198..f8010f5fb437 100644 --- a/test/testdata/errcheck_exclude_functions.go +++ b/test/testdata/errcheck_exclude_functions.go @@ -13,6 +13,6 @@ func TestErrcheckExcludeFunctions() []byte { } func TestErrcheckNoExcludeFunctions() []byte { - ret, _ := ioutil.ReadAll(nil) // ERROR "Error return value of `ioutil.ReadAll` is not checked" + ret, _ := ioutil.ReadAll(nil) // want "Error return value of `ioutil.ReadAll` is not checked" return ret } diff --git a/test/testdata/errcheck_ignore.go b/test/testdata/errcheck_ignore.go index 508101e85f66..667a51384f52 100644 --- a/test/testdata/errcheck_ignore.go +++ b/test/testdata/errcheck_ignore.go @@ -23,6 +23,6 @@ func TestErrcheckIgnoreIoutil() []byte { } func TestErrcheckNoIgnoreIoutil() []byte { - ret, _ := ioutil.ReadAll(nil) // ERROR "Error return value of `ioutil.ReadAll` is not checked" + ret, _ := ioutil.ReadAll(nil) // want "Error return value of `ioutil.ReadAll` is not checked" return ret } diff --git a/test/testdata/errcheck_ignore_default.go b/test/testdata/errcheck_ignore_default.go index e7a1466eb9da..6052433cbf32 100644 --- a/test/testdata/errcheck_ignore_default.go +++ b/test/testdata/errcheck_ignore_default.go @@ -20,5 +20,5 @@ func TestErrcheckIgnoreFmtByDefault(s string) int { } func TestErrcheckNoIgnoreOs() { - _, _ = os.Open("f.txt") // ERROR "Error return value of `os.Open` is not checked" + _, _ = os.Open("f.txt") // want "Error return value of `os.Open` is not checked" } diff --git a/test/testdata/errcheck_type_assertions.go b/test/testdata/errcheck_type_assertions.go index 94a192ef276b..e3c19441507b 100644 --- a/test/testdata/errcheck_type_assertions.go +++ b/test/testdata/errcheck_type_assertions.go @@ -1,5 +1,6 @@ //golangcitest:args -Eerrcheck //golangcitest:config_path testdata/configs/errcheck_type_assertions.yml +//golangcitest:expected_exitcode 0 package testdata func ErrorTypeAssertion(filter map[string]interface{}) bool { diff --git a/test/testdata/errchkjson.go b/test/testdata/errchkjson.go index b74411a709d5..f641597b62da 100644 --- a/test/testdata/errchkjson.go +++ b/test/testdata/errchkjson.go @@ -23,114 +23,114 @@ var _ encoding.TextMarshaler = marshalText(struct{}{}) func JSONMarshalSafeTypesWithNoSafe() { var err error - _, _ = json.Marshal(nil) // ERROR "Error return value of `encoding/json.Marshal` is not checked" - json.Marshal(nil) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(nil) // want "Error return value of `encoding/json.Marshal` is not checked" + json.Marshal(nil) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(nil) // nil is safe and check-error-free-encoding is false _ = err - _, _ = json.MarshalIndent(nil, "", " ") // ERROR "Error return value of `encoding/json.MarshalIndent` is not checked" - json.MarshalIndent(nil, "", " ") // ERROR "Error return value of `encoding/json.MarshalIndent` is not checked" + _, _ = json.MarshalIndent(nil, "", " ") // want "Error return value of `encoding/json.MarshalIndent` is not checked" + json.MarshalIndent(nil, "", " ") // want "Error return value of `encoding/json.MarshalIndent` is not checked" _, err = json.MarshalIndent(nil, "", " ") // nil is safe and check-error-free-encoding is false _ = err enc := json.NewEncoder(ioutil.Discard) - _ = enc.Encode(nil) // ERROR "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" - enc.Encode(nil) // ERROR "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" + _ = enc.Encode(nil) // want "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" + enc.Encode(nil) // want "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" err = enc.Encode(nil) // nil is safe and check-error-free-encoding is false _ = err var b bool - _, _ = json.Marshal(b) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(b) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(b) // bool is safe and check-error-free-encoding is false _ = err var i int - _, _ = json.Marshal(i) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(i) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(i) // int is safe and check-error-free-encoding is false _ = err var i8 int8 - _, _ = json.Marshal(i8) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(i8) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(i8) // int8 is safe and check-error-free-encoding is false _ = err var i16 int16 - _, _ = json.Marshal(i16) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(i16) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(i16) // int16 is safe and check-error-free-encoding is false _ = err var i32 int32 - _, _ = json.Marshal(i32) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(i32) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(i32) // int32 / rune is safe and check-error-free-encoding is false _ = err var i64 int64 - _, _ = json.Marshal(i64) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(i64) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(i64) // int64 is safe and check-error-free-encoding is false _ = err var ui uint - _, _ = json.Marshal(ui) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ui) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ui) // uint is safe and check-error-free-encoding is false _ = err var ui8 uint8 - _, _ = json.Marshal(ui8) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ui8) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ui8) // uint8 is safe and check-error-free-encoding is false _ = err var ui16 uint16 - _, _ = json.Marshal(ui16) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ui16) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ui16) // uint16 is safe and check-error-free-encoding is false _ = err var ui32 uint32 - _, _ = json.Marshal(ui32) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ui32) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ui32) // uint32 is safe and check-error-free-encoding is false _ = err var ui64 uint64 - _, _ = json.Marshal(ui64) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ui64) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ui64) // uint64 is safe and check-error-free-encoding is false _ = err var uiptr uintptr - _, _ = json.Marshal(uiptr) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(uiptr) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(uiptr) // uintptr is safe and check-error-free-encoding is false _ = err var str string - _, _ = json.Marshal(str) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(str) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(str) // string is safe and check-error-free-encoding is false _ = err var strSlice []string - _, _ = json.Marshal(strSlice) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(strSlice) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(strSlice) // []string is safe and check-error-free-encoding is false _ = err var intSlice []int - _, _ = json.Marshal(intSlice) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(intSlice) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(intSlice) // []int is safe and check-error-free-encoding is false _ = err var boolSlice []bool - _, _ = json.Marshal(boolSlice) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(boolSlice) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(boolSlice) // []bool is safe and check-error-free-encoding is false _ = err var strArray [10]string - _, _ = json.Marshal(strArray) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(strArray) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(strArray) // [10]string is safe and check-error-free-encoding is false _ = err var intArray [10]int - _, _ = json.Marshal(intArray) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(intArray) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(intArray) // [10]int is safe and check-error-free-encoding is false _ = err var boolArray [10]bool - _, _ = json.Marshal(boolArray) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(boolArray) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(boolArray) // [10]bool is safe and check-error-free-encoding is false _ = err @@ -149,7 +149,7 @@ func JSONMarshalSafeTypesWithNoSafe() { Uintptr uintptr String string } - _, _ = json.Marshal(basicStruct) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(basicStruct) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(basicStruct) // struct containing only safe basic types is safe and check-error-free-encoding is false _ = err @@ -168,37 +168,37 @@ func JSONMarshalSafeTypesWithNoSafe() { Uintptr *uintptr String *string } - _, _ = json.Marshal(ptrStruct) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(ptrStruct) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(ptrStruct) // struct containing pointer to only safe basic types is safe and check-error-free-encoding is false _ = err var mapStrStr map[string]string - _, _ = json.Marshal(mapStrStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapStrStr) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapStrStr) // map[string]string is safe and check-error-free-encoding is false _ = err var mapStrInt map[string]int - _, _ = json.Marshal(mapStrInt) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapStrInt) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapStrInt) // map[string]int is safe and check-error-free-encoding is false _ = err var mapStrBool map[string]bool - _, _ = json.Marshal(mapStrBool) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapStrBool) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapStrBool) // map[string]bool is safe and check-error-free-encoding is false _ = err var mapIntStr map[int]string - _, _ = json.Marshal(mapIntStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapIntStr) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapIntStr) // map[int]string is safe and check-error-free-encoding is false _ = err var mapIntInt map[int]int - _, _ = json.Marshal(mapIntInt) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapIntInt) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapIntInt) // map[int]int is safe and check-error-free-encoding is false _ = err var mapIntBool map[int]bool - _, _ = json.Marshal(mapIntBool) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(mapIntBool) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(mapIntBool) // map[int]bool is safe and check-error-free-encoding is false _ = err @@ -246,7 +246,7 @@ func JSONMarshalSafeTypesWithNoSafe() { InnerStruct innerStruct } - _, _ = json.Marshal(outerStruct) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(outerStruct) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(outerStruct) // struct with only safe types is safe and check-error-free-encoding is false _ = err } @@ -342,7 +342,7 @@ func JSONMarshalSaveStructWithUnexportedFieldsWithNoSafe() { _ = unexportedInStruct.ch _ = unexportedInStruct.unsafePtr _ = unexportedInStruct.mapStructStr[structKey{1}] - _, _ = json.Marshal(unexportedInStruct) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(unexportedInStruct) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(unexportedInStruct) // struct containing unsafe but unexported fields is safe _ = err } @@ -382,7 +382,7 @@ func JSONMarshalSaveStructWithOmittedFieldsWithNoSafe() { MapStructStr map[structKey]string `json:"-"` // invalid exported but omitted } _ = omitInStruct.MapStructStr[structKey{1}] - _, _ = json.Marshal(omitInStruct) // ERROR "Error return value of `encoding/json.Marshal` is not checked" + _, _ = json.Marshal(omitInStruct) // want "Error return value of `encoding/json.Marshal` is not checked" _, err = json.Marshal(omitInStruct) // struct containing unsafe but omitted, exported fields is safe and check-error-free-encoding is false _ = err } @@ -393,119 +393,119 @@ func JSONMarshalUnsafeTypes() { var err error var f32 float32 - json.Marshal(f32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" - _, _ = json.Marshal(f32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + json.Marshal(f32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32) // err is checked _ = err var f64 float64 - _, _ = json.Marshal(f64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64) // err is checked _ = err var f32Slice []float32 - _, _ = json.Marshal(f32Slice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32Slice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32Slice) // err is checked _ = err var f64Slice []float64 - _, _ = json.Marshal(f64Slice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64Slice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64Slice) // err is checked _ = err var f32Array [10]float32 - _, _ = json.Marshal(f32Array) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32Array) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32Array) // err is checked _ = err var f64Array [10]float64 - _, _ = json.Marshal(f64Array) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64Array) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64Array) // err is checked _ = err var structPtrF32 struct { F32 *float32 } - _, _ = json.Marshal(structPtrF32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(structPtrF32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(structPtrF32) // err is checked _ = err var structPtrF64 struct { F64 *float64 } - _, _ = json.Marshal(structPtrF64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(structPtrF64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(structPtrF64) // err is checked _ = err var mapStrF32 map[string]float32 - _, _ = json.Marshal(mapStrF32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(mapStrF32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(mapStrF32) // err is checked _ = err var mapStrF64 map[string]float64 - _, _ = json.Marshal(mapStrF64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(mapStrF64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(mapStrF64) // err is checked _ = err var mapEIStr map[interface{}]string - _, _ = json.Marshal(mapEIStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` as map key found" + _, _ = json.Marshal(mapEIStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` as map key found" _, err = json.Marshal(mapEIStr) // err is checked _ = err var mapStringerStr map[fmt.Stringer]string - _, _ = json.Marshal(mapStringerStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` as map key found" + _, _ = json.Marshal(mapStringerStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` as map key found" _, err = json.Marshal(mapStringerStr) // err is checked _ = err var number json.Number - _, _ = json.Marshal(number) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(number) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(number) // err is checked _ = err var numberSlice []json.Number - _, _ = json.Marshal(numberSlice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(numberSlice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(numberSlice) // err is checked _ = err var mapNumberStr map[json.Number]string - _, _ = json.Marshal(mapNumberStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` as map key found" + _, _ = json.Marshal(mapNumberStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` as map key found" _, err = json.Marshal(mapNumberStr) // err is checked _ = err var mapStrNumber map[string]json.Number - _, _ = json.Marshal(mapStrNumber) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(mapStrNumber) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(mapStrNumber) // err is checked _ = err var ei interface{} - _, _ = json.Marshal(ei) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" + _, _ = json.Marshal(ei) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" _, err = json.Marshal(ei) // err is checked _ = err var eiptr *interface{} - _, _ = json.Marshal(eiptr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `*interface{}` found" + _, _ = json.Marshal(eiptr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `*interface{}` found" _, err = json.Marshal(eiptr) // err is checked _ = err var stringer fmt.Stringer - _, _ = json.Marshal(stringer) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` found" + _, _ = json.Marshal(stringer) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` found" _, err = json.Marshal(stringer) // err is checked _ = err var structWithEmptyInterface struct { EmptyInterface interface{} } - _, _ = json.Marshal(structWithEmptyInterface) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" + _, _ = json.Marshal(structWithEmptyInterface) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" _, err = json.Marshal(structWithEmptyInterface) // err is checked _ = err var mt marshalText - _, _ = json.Marshal(mt) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` found" + _, _ = json.Marshal(mt) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` found" _, err = json.Marshal(mt) // err is checked _ = err var mapMarshalTextString map[marshalText]string - _, _ = json.Marshal(mapMarshalTextString) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` as map key found" + _, _ = json.Marshal(mapMarshalTextString) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` as map key found" _, err = json.Marshal(mapMarshalTextString) // err is checked _ = err } @@ -517,93 +517,93 @@ func JSONMarshalInvalidTypes() { var err error var c64 complex64 - json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, _ = json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var c128 complex128 - _, _ = json.Marshal(c128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(c128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(c128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(c128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var sliceC64 []complex64 - _, _ = json.Marshal(sliceC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(sliceC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(sliceC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(sliceC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var sliceC128 []complex128 - _, _ = json.Marshal(sliceC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(sliceC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(sliceC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(sliceC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var arrayC64 []complex64 - _, _ = json.Marshal(arrayC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(arrayC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(arrayC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(arrayC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var arrayC128 []complex128 - _, _ = json.Marshal(arrayC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(arrayC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(arrayC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(arrayC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var structPtrC64 struct { C64 *complex64 } - _, _ = json.Marshal(structPtrC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(structPtrC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(structPtrC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(structPtrC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var structPtrC128 struct { C128 *complex128 } - _, _ = json.Marshal(structPtrC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(structPtrC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(structPtrC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(structPtrC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var mapBoolStr map[bool]string - _, _ = json.Marshal(mapBoolStr) // ERROR "`encoding/json.Marshal` for unsupported type `bool` as map key found" - _, err = json.Marshal(mapBoolStr) // ERROR "`encoding/json.Marshal` for unsupported type `bool` as map key found" + _, _ = json.Marshal(mapBoolStr) // want "`encoding/json.Marshal` for unsupported type `bool` as map key found" + _, err = json.Marshal(mapBoolStr) // want "`encoding/json.Marshal` for unsupported type `bool` as map key found" _ = err var mapF32Str map[float32]string - _, _ = json.Marshal(mapF32Str) // ERROR "`encoding/json.Marshal` for unsupported type `float32` as map key found" - _, err = json.Marshal(mapF32Str) // ERROR "`encoding/json.Marshal` for unsupported type `float32` as map key found" + _, _ = json.Marshal(mapF32Str) // want "`encoding/json.Marshal` for unsupported type `float32` as map key found" + _, err = json.Marshal(mapF32Str) // want "`encoding/json.Marshal` for unsupported type `float32` as map key found" _ = err var mapF64Str map[float64]string - _, _ = json.Marshal(mapF64Str) // ERROR "`encoding/json.Marshal` for unsupported type `float64` as map key found" - _, err = json.Marshal(mapF64Str) // ERROR "`encoding/json.Marshal` for unsupported type `float64` as map key found" + _, _ = json.Marshal(mapF64Str) // want "`encoding/json.Marshal` for unsupported type `float64` as map key found" + _, err = json.Marshal(mapF64Str) // want "`encoding/json.Marshal` for unsupported type `float64` as map key found" _ = err var mapC64Str map[complex64]string - _, _ = json.Marshal(mapC64Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` as map key found" - _, err = json.Marshal(mapC64Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` as map key found" + _, _ = json.Marshal(mapC64Str) // want "`encoding/json.Marshal` for unsupported type `complex64` as map key found" + _, err = json.Marshal(mapC64Str) // want "`encoding/json.Marshal` for unsupported type `complex64` as map key found" _ = err var mapC128Str map[complex128]string - _, _ = json.Marshal(mapC128Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` as map key found" - _, err = json.Marshal(mapC128Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` as map key found" + _, _ = json.Marshal(mapC128Str) // want "`encoding/json.Marshal` for unsupported type `complex128` as map key found" + _, err = json.Marshal(mapC128Str) // want "`encoding/json.Marshal` for unsupported type `complex128` as map key found" _ = err mapStructStr := map[structKey]string{structKey{1}: "str"} - _, _ = json.Marshal(mapStructStr) // ERROR "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" - _, err = json.Marshal(mapStructStr) // ERROR "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" + _, _ = json.Marshal(mapStructStr) // want "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" + _, err = json.Marshal(mapStructStr) // want "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" _ = err f := func() {} - _, _ = json.Marshal(f) // ERROR "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" - _, err = json.Marshal(f) // ERROR "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" + _, _ = json.Marshal(f) // want "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" + _, err = json.Marshal(f) // want "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" _ = err var ch chan struct{} = make(chan struct{}) - _, _ = json.Marshal(ch) // ERROR "`encoding/json.Marshal` for unsupported type `chan struct{}` found" - _, err = json.Marshal(ch) // ERROR "`encoding/json.Marshal` for unsupported type `chan struct{}` found" + _, _ = json.Marshal(ch) // want "`encoding/json.Marshal` for unsupported type `chan struct{}` found" + _, err = json.Marshal(ch) // want "`encoding/json.Marshal` for unsupported type `chan struct{}` found" _ = err var unsafePtr unsafe.Pointer - _, _ = json.Marshal(unsafePtr) // ERROR "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" - _, err = json.Marshal(unsafePtr) // ERROR "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" + _, _ = json.Marshal(unsafePtr) // want "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" + _, err = json.Marshal(unsafePtr) // want "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" _ = err } @@ -623,7 +623,7 @@ func JSONMarshalStructWithoutExportedFields() { privateField bool ExportedButOmittedField bool `json:"-"` } - _, err = json.Marshal(withoutExportedFields) // want "Error argument passed to `encoding/json.Marshal` does not contain any exported field" + _, err = json.Marshal(withoutExportedFields) _ = err } diff --git a/test/testdata/errchkjson_check_error_free_encoding.go b/test/testdata/errchkjson_check_error_free_encoding.go index fde6deee170b..c14521c75e75 100644 --- a/test/testdata/errchkjson_check_error_free_encoding.go +++ b/test/testdata/errchkjson_check_error_free_encoding.go @@ -25,113 +25,113 @@ func JSONMarshalSafeTypes() { _, _ = json.Marshal(nil) // nil is safe json.Marshal(nil) // nil is safe - _, err = json.Marshal(nil) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(nil) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err _, _ = json.MarshalIndent(nil, "", " ") // nil is safe json.MarshalIndent(nil, "", " ") // nil is safe - _, err = json.MarshalIndent(nil, "", " ") // ERROR "Error return value of `encoding/json.MarshalIndent` is checked but passed argument is safe" + _, err = json.MarshalIndent(nil, "", " ") // want "Error return value of `encoding/json.MarshalIndent` is checked but passed argument is safe" _ = err enc := json.NewEncoder(ioutil.Discard) - _ = enc.Encode(nil) // ERROR "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" - enc.Encode(nil) // ERROR "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" + _ = enc.Encode(nil) // want "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" + enc.Encode(nil) // want "Error return value of `\\([*]encoding/json.Encoder\\).Encode` is not checked" err = enc.Encode(nil) _ = err var b bool _, _ = json.Marshal(b) // bool is safe - _, err = json.Marshal(b) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(b) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var i int _, _ = json.Marshal(i) // int is safe - _, err = json.Marshal(i) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(i) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var i8 int8 _, _ = json.Marshal(i8) // int8 is safe - _, err = json.Marshal(i8) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(i8) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var i16 int16 _, _ = json.Marshal(i16) // int16 is safe - _, err = json.Marshal(i16) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(i16) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var i32 int32 _, _ = json.Marshal(i32) // int32 / rune is safe - _, err = json.Marshal(i32) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(i32) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var i64 int64 _, _ = json.Marshal(i64) // int64 is safe - _, err = json.Marshal(i64) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(i64) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ui uint _, _ = json.Marshal(ui) // uint is safe - _, err = json.Marshal(ui) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ui) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ui8 uint8 _, _ = json.Marshal(ui8) // uint8 / byte is safe - _, err = json.Marshal(ui8) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ui8) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ui16 uint16 _, _ = json.Marshal(ui16) // uint16 is safe - _, err = json.Marshal(ui16) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ui16) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ui32 uint32 _, _ = json.Marshal(ui32) // uint32 / rune is safe - _, err = json.Marshal(ui32) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ui32) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ui64 uint64 _, _ = json.Marshal(ui64) // uint64 is safe - _, err = json.Marshal(ui64) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ui64) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var uiptr uintptr _, _ = json.Marshal(uiptr) // uintptr is safe - _, err = json.Marshal(uiptr) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(uiptr) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var str string _, _ = json.Marshal(str) // string is safe - _, err = json.Marshal(str) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(str) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var strSlice []string _, _ = json.Marshal(strSlice) // []string is safe - _, err = json.Marshal(strSlice) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(strSlice) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var intSlice []int _, _ = json.Marshal(intSlice) // []int is safe - _, err = json.Marshal(intSlice) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(intSlice) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var boolSlice []bool _, _ = json.Marshal(boolSlice) // []bool is safe - _, err = json.Marshal(boolSlice) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(boolSlice) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var strArray [10]string _, _ = json.Marshal(strArray) // [10]string is safe - _, err = json.Marshal(strArray) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(strArray) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var intArray [10]int _, _ = json.Marshal(intArray) // [10]int is safe - _, err = json.Marshal(intArray) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(intArray) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var boolArray [10]bool _, _ = json.Marshal(boolArray) // [10]bool is safe - _, err = json.Marshal(boolArray) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(boolArray) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var basicStruct struct { @@ -150,7 +150,7 @@ func JSONMarshalSafeTypes() { String string } _, _ = json.Marshal(basicStruct) // struct containing only safe basic types is safe - _, err = json.Marshal(basicStruct) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(basicStruct) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var ptrStruct struct { @@ -169,37 +169,37 @@ func JSONMarshalSafeTypes() { String *string } _, _ = json.Marshal(ptrStruct) // struct containing pointer to only safe basic types is safe - _, err = json.Marshal(ptrStruct) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(ptrStruct) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapStrStr map[string]string _, _ = json.Marshal(mapStrStr) // map[string]string is safe - _, err = json.Marshal(mapStrStr) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapStrStr) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapStrInt map[string]int _, _ = json.Marshal(mapStrInt) // map[string]int is safe - _, err = json.Marshal(mapStrInt) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapStrInt) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapStrBool map[string]bool _, _ = json.Marshal(mapStrBool) // map[string]bool is safe - _, err = json.Marshal(mapStrBool) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapStrBool) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapIntStr map[int]string _, _ = json.Marshal(mapIntStr) // map[int]string is safe - _, err = json.Marshal(mapIntStr) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapIntStr) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapIntInt map[int]int _, _ = json.Marshal(mapIntInt) // map[int]int is safe - _, err = json.Marshal(mapIntInt) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapIntInt) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err var mapIntBool map[int]bool _, _ = json.Marshal(mapIntBool) // map[int]bool is safe - _, err = json.Marshal(mapIntBool) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(mapIntBool) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err type innerStruct struct { @@ -247,7 +247,7 @@ func JSONMarshalSafeTypes() { InnerStruct innerStruct } _, _ = json.Marshal(outerStruct) // struct with only safe types - _, err = json.Marshal(outerStruct) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(outerStruct) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err } @@ -343,7 +343,7 @@ func JSONMarshalSaveStructWithUnexportedFields() { _ = unexportedInStruct.unsafePtr _ = unexportedInStruct.mapStructStr[structKey{1}] _, _ = json.Marshal(unexportedInStruct) // struct containing unsafe but unexported fields is safe - _, err = json.Marshal(unexportedInStruct) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(unexportedInStruct) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err } @@ -383,7 +383,7 @@ func JSONMarshalSaveStructWithOmittedFields() { } _ = omitInStruct.MapStructStr[structKey{1}] _, _ = json.Marshal(omitInStruct) // struct containing unsafe but omitted, exported fields is safe - _, err = json.Marshal(omitInStruct) // ERROR "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" + _, err = json.Marshal(omitInStruct) // want "Error return value of `encoding/json.Marshal` is checked but passed argument is safe" _ = err } @@ -393,119 +393,119 @@ func JSONMarshalUnsafeTypes() { var err error var f32 float32 - json.Marshal(f32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" - _, _ = json.Marshal(f32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + json.Marshal(f32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32) // err is checked _ = err var f64 float64 - _, _ = json.Marshal(f64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64) // err is checked _ = err var f32Slice []float32 - _, _ = json.Marshal(f32Slice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32Slice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32Slice) // err is checked _ = err var f64Slice []float64 - _, _ = json.Marshal(f64Slice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64Slice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64Slice) // err is checked _ = err var f32Array [10]float32 - _, _ = json.Marshal(f32Array) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(f32Array) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(f32Array) // err is checked _ = err var f64Array [10]float64 - _, _ = json.Marshal(f64Array) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(f64Array) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(f64Array) // err is checked _ = err var structPtrF32 struct { F32 *float32 } - _, _ = json.Marshal(structPtrF32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(structPtrF32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(structPtrF32) // err is checked _ = err var structPtrF64 struct { F64 *float64 } - _, _ = json.Marshal(structPtrF64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(structPtrF64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(structPtrF64) // err is checked _ = err var mapStrF32 map[string]float32 - _, _ = json.Marshal(mapStrF32) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" + _, _ = json.Marshal(mapStrF32) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float32` found" _, err = json.Marshal(mapStrF32) // err is checked _ = err var mapStrF64 map[string]float64 - _, _ = json.Marshal(mapStrF64) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" + _, _ = json.Marshal(mapStrF64) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `float64` found" _, err = json.Marshal(mapStrF64) // err is checked _ = err var mapEIStr map[interface{}]string - _, _ = json.Marshal(mapEIStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` as map key found" + _, _ = json.Marshal(mapEIStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` as map key found" _, err = json.Marshal(mapEIStr) // err is checked _ = err var mapStringerStr map[fmt.Stringer]string - _, _ = json.Marshal(mapStringerStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` as map key found" + _, _ = json.Marshal(mapStringerStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` as map key found" _, err = json.Marshal(mapStringerStr) // err is checked _ = err var number json.Number - _, _ = json.Marshal(number) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(number) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(number) // err is checked _ = err var numberSlice []json.Number - _, _ = json.Marshal(numberSlice) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(numberSlice) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(numberSlice) // err is checked _ = err var mapNumberStr map[json.Number]string - _, _ = json.Marshal(mapNumberStr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` as map key found" + _, _ = json.Marshal(mapNumberStr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` as map key found" _, err = json.Marshal(mapNumberStr) // err is checked _ = err var mapStrNumber map[string]json.Number - _, _ = json.Marshal(mapStrNumber) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" + _, _ = json.Marshal(mapStrNumber) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `encoding/json.Number` found" _, err = json.Marshal(mapStrNumber) // err is checked _ = err var ei interface{} - _, _ = json.Marshal(ei) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" + _, _ = json.Marshal(ei) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" _, err = json.Marshal(ei) // err is checked _ = err var eiptr *interface{} - _, _ = json.Marshal(eiptr) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `*interface{}` found" + _, _ = json.Marshal(eiptr) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `*interface{}` found" _, err = json.Marshal(eiptr) // err is checked _ = err var stringer fmt.Stringer - _, _ = json.Marshal(stringer) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` found" + _, _ = json.Marshal(stringer) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `fmt.Stringer` found" _, err = json.Marshal(stringer) // err is checked _ = err var structWithEmptyInterface struct { EmptyInterface interface{} } - _, _ = json.Marshal(structWithEmptyInterface) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" + _, _ = json.Marshal(structWithEmptyInterface) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `interface{}` found" _, err = json.Marshal(structWithEmptyInterface) // err is checked _ = err var mt marshalText - _, _ = json.Marshal(mt) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` found" + _, _ = json.Marshal(mt) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` found" _, err = json.Marshal(mt) // err is checked _ = err var mapMarshalTextString map[marshalText]string - _, _ = json.Marshal(mapMarshalTextString) // ERROR "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` as map key found" + _, _ = json.Marshal(mapMarshalTextString) // want "Error return value of `encoding/json.Marshal` is not checked: unsafe type `[a-z-]+.marshalText` as map key found" _, err = json.Marshal(mapMarshalTextString) // err is checked _ = err } @@ -517,93 +517,93 @@ func JSONMarshalInvalidTypes() { var err error var c64 complex64 - json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, _ = json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(c64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(c64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var c128 complex128 - _, _ = json.Marshal(c128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(c128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(c128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(c128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var sliceC64 []complex64 - _, _ = json.Marshal(sliceC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(sliceC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(sliceC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(sliceC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var sliceC128 []complex128 - _, _ = json.Marshal(sliceC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(sliceC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(sliceC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(sliceC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var arrayC64 []complex64 - _, _ = json.Marshal(arrayC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(arrayC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(arrayC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(arrayC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var arrayC128 []complex128 - _, _ = json.Marshal(arrayC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(arrayC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(arrayC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(arrayC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var structPtrC64 struct { C64 *complex64 } - _, _ = json.Marshal(structPtrC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" - _, err = json.Marshal(structPtrC64) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` found" + _, _ = json.Marshal(structPtrC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" + _, err = json.Marshal(structPtrC64) // want "`encoding/json.Marshal` for unsupported type `complex64` found" _ = err var structPtrC128 struct { C128 *complex128 } - _, _ = json.Marshal(structPtrC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" - _, err = json.Marshal(structPtrC128) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` found" + _, _ = json.Marshal(structPtrC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" + _, err = json.Marshal(structPtrC128) // want "`encoding/json.Marshal` for unsupported type `complex128` found" _ = err var mapBoolStr map[bool]string - _, _ = json.Marshal(mapBoolStr) // ERROR "`encoding/json.Marshal` for unsupported type `bool` as map key found" - _, err = json.Marshal(mapBoolStr) // ERROR "`encoding/json.Marshal` for unsupported type `bool` as map key found" + _, _ = json.Marshal(mapBoolStr) // want "`encoding/json.Marshal` for unsupported type `bool` as map key found" + _, err = json.Marshal(mapBoolStr) // want "`encoding/json.Marshal` for unsupported type `bool` as map key found" _ = err var mapF32Str map[float32]string - _, _ = json.Marshal(mapF32Str) // ERROR "`encoding/json.Marshal` for unsupported type `float32` as map key found" - _, err = json.Marshal(mapF32Str) // ERROR "`encoding/json.Marshal` for unsupported type `float32` as map key found" + _, _ = json.Marshal(mapF32Str) // want "`encoding/json.Marshal` for unsupported type `float32` as map key found" + _, err = json.Marshal(mapF32Str) // want "`encoding/json.Marshal` for unsupported type `float32` as map key found" _ = err var mapF64Str map[float64]string - _, _ = json.Marshal(mapF64Str) // ERROR "`encoding/json.Marshal` for unsupported type `float64` as map key found" - _, err = json.Marshal(mapF64Str) // ERROR "`encoding/json.Marshal` for unsupported type `float64` as map key found" + _, _ = json.Marshal(mapF64Str) // want "`encoding/json.Marshal` for unsupported type `float64` as map key found" + _, err = json.Marshal(mapF64Str) // want "`encoding/json.Marshal` for unsupported type `float64` as map key found" _ = err var mapC64Str map[complex64]string - _, _ = json.Marshal(mapC64Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` as map key found" - _, err = json.Marshal(mapC64Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex64` as map key found" + _, _ = json.Marshal(mapC64Str) // want "`encoding/json.Marshal` for unsupported type `complex64` as map key found" + _, err = json.Marshal(mapC64Str) // want "`encoding/json.Marshal` for unsupported type `complex64` as map key found" _ = err var mapC128Str map[complex128]string - _, _ = json.Marshal(mapC128Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` as map key found" - _, err = json.Marshal(mapC128Str) // ERROR "`encoding/json.Marshal` for unsupported type `complex128` as map key found" + _, _ = json.Marshal(mapC128Str) // want "`encoding/json.Marshal` for unsupported type `complex128` as map key found" + _, err = json.Marshal(mapC128Str) // want "`encoding/json.Marshal` for unsupported type `complex128` as map key found" _ = err mapStructStr := map[structKey]string{structKey{1}: "str"} - _, _ = json.Marshal(mapStructStr) // ERROR "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" - _, err = json.Marshal(mapStructStr) // ERROR "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" + _, _ = json.Marshal(mapStructStr) // want "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" + _, err = json.Marshal(mapStructStr) // want "`encoding/json.Marshal` for unsupported type `[a-z-]+.structKey` as map key found" _ = err f := func() {} - _, _ = json.Marshal(f) // ERROR "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" - _, err = json.Marshal(f) // ERROR "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" + _, _ = json.Marshal(f) // want "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" + _, err = json.Marshal(f) // want "`encoding/json.Marshal` for unsupported type `func\\(\\)` found" _ = err var ch chan struct{} = make(chan struct{}) - _, _ = json.Marshal(ch) // ERROR "`encoding/json.Marshal` for unsupported type `chan struct{}` found" - _, err = json.Marshal(ch) // ERROR "`encoding/json.Marshal` for unsupported type `chan struct{}` found" + _, _ = json.Marshal(ch) // want "`encoding/json.Marshal` for unsupported type `chan struct{}` found" + _, err = json.Marshal(ch) // want "`encoding/json.Marshal` for unsupported type `chan struct{}` found" _ = err var unsafePtr unsafe.Pointer - _, _ = json.Marshal(unsafePtr) // ERROR "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" - _, err = json.Marshal(unsafePtr) // ERROR "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" + _, _ = json.Marshal(unsafePtr) // want "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" + _, err = json.Marshal(unsafePtr) // want "`encoding/json.Marshal` for unsupported type `unsafe.Pointer` found" _ = err } diff --git a/test/testdata/errchkjson_no_exported.go b/test/testdata/errchkjson_no_exported.go index ef5cc42d8e8b..e609de0da21b 100644 --- a/test/testdata/errchkjson_no_exported.go +++ b/test/testdata/errchkjson_no_exported.go @@ -12,7 +12,7 @@ func JSONMarshalStructWithoutExportedFields() { privateField bool ExportedButOmittedField bool `json:"-"` } - _, err := json.Marshal(withoutExportedFields) // ERROR "Error argument passed to `encoding/json.Marshal` does not contain any exported field" + _, err := json.Marshal(withoutExportedFields) // want "Error argument passed to `encoding/json.Marshal` does not contain any exported field" _ = err } diff --git a/test/testdata/errname.go b/test/testdata/errname.go index a5ccd436f8aa..d206ffc498a6 100644 --- a/test/testdata/errname.go +++ b/test/testdata/errname.go @@ -11,11 +11,11 @@ var ( ErrEndOfFile = errors.New("end of file") errEndOfFile = errors.New("end of file") - EndOfFileError = errors.New("end of file") // ERROR "the variable name `EndOfFileError` should conform to the `ErrXxx` format" - ErrorEndOfFile = errors.New("end of file") // ERROR "the variable name `ErrorEndOfFile` should conform to the `ErrXxx` format" - EndOfFileErr = errors.New("end of file") // ERROR "the variable name `EndOfFileErr` should conform to the `ErrXxx` format" - endOfFileError = errors.New("end of file") // ERROR "the variable name `endOfFileError` should conform to the `errXxx` format" - errorEndOfFile = errors.New("end of file") // ERROR "the variable name `errorEndOfFile` should conform to the `errXxx` format" + EndOfFileError = errors.New("end of file") // want "the variable name `EndOfFileError` should conform to the `ErrXxx` format" + ErrorEndOfFile = errors.New("end of file") // want "the variable name `ErrorEndOfFile` should conform to the `ErrXxx` format" + EndOfFileErr = errors.New("end of file") // want "the variable name `EndOfFileErr` should conform to the `ErrXxx` format" + endOfFileError = errors.New("end of file") // want "the variable name `endOfFileError` should conform to the `errXxx` format" + errorEndOfFile = errors.New("end of file") // want "the variable name `errorEndOfFile` should conform to the `errXxx` format" ) const maxSize = 256 @@ -24,8 +24,8 @@ var ( ErrOutOfSize = fmt.Errorf("out of size (max %d)", maxSize) errOutOfSize = fmt.Errorf("out of size (max %d)", maxSize) - OutOfSizeError = fmt.Errorf("out of size (max %d)", maxSize) // ERROR "the variable name `OutOfSizeError` should conform to the `ErrXxx` format" - outOfSizeError = fmt.Errorf("out of size (max %d)", maxSize) // ERROR "the variable name `outOfSizeError` should conform to the `errXxx` format" + OutOfSizeError = fmt.Errorf("out of size (max %d)", maxSize) // want "the variable name `OutOfSizeError` should conform to the `ErrXxx` format" + outOfSizeError = fmt.Errorf("out of size (max %d)", maxSize) // want "the variable name `outOfSizeError` should conform to the `errXxx` format" ) func errInsideFuncIsNotSentinel() error { @@ -42,14 +42,14 @@ type DNSConfigError struct{} func (D DNSConfigError) Error() string { return "DNS config error" } -type someTypeWithoutPtr struct{} // ERROR "the type name `someTypeWithoutPtr` should conform to the `xxxError` format" +type someTypeWithoutPtr struct{} // want "the type name `someTypeWithoutPtr` should conform to the `xxxError` format" func (s someTypeWithoutPtr) Error() string { return "someTypeWithoutPtr" } -type SomeTypeWithoutPtr struct{} // ERROR "the type name `SomeTypeWithoutPtr` should conform to the `XxxError` format" +type SomeTypeWithoutPtr struct{} // want "the type name `SomeTypeWithoutPtr` should conform to the `XxxError` format" func (s SomeTypeWithoutPtr) Error() string { return "SomeTypeWithoutPtr" } -type someTypeWithPtr struct{} // ERROR "the type name `someTypeWithPtr` should conform to the `xxxError` format" +type someTypeWithPtr struct{} // want "the type name `someTypeWithPtr` should conform to the `xxxError` format" func (s *someTypeWithPtr) Error() string { return "someTypeWithPtr" } -type SomeTypeWithPtr struct{} // ERROR "the type name `SomeTypeWithPtr` should conform to the `XxxError` format" +type SomeTypeWithPtr struct{} // want "the type name `SomeTypeWithPtr` should conform to the `XxxError` format" func (s *SomeTypeWithPtr) Error() string { return "SomeTypeWithPtr" } diff --git a/test/testdata/errorlint.go b/test/testdata/errorlint.go index 5dda3c864ad4..7164b1fed8c6 100644 --- a/test/testdata/errorlint.go +++ b/test/testdata/errorlint.go @@ -17,14 +17,14 @@ func (*errLintBar) Error() string { func errorLintAll() { err := func() error { return nil }() - if err == errLintFoo { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" + if err == errLintFoo { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" log.Println("errCompare") } err = errors.New("oops") - fmt.Errorf("error: %v", err) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" + fmt.Errorf("error: %v", err) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" - switch err.(type) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" + switch err.(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" case *errLintBar: log.Println("errLintBar") } diff --git a/test/testdata/errorlint_asserts.go b/test/testdata/errorlint_asserts.go index a38a58f4bd05..f3357eb35a0e 100644 --- a/test/testdata/errorlint_asserts.go +++ b/test/testdata/errorlint_asserts.go @@ -23,23 +23,23 @@ func errorLintAsserts() { if errors.As(err, &me) { log.Println("myError") } - _, ok := err.(*myError) // ERROR "type assertion on error will fail on wrapped errors. Use errors.As to check for specific errors" + _, ok := err.(*myError) // want "type assertion on error will fail on wrapped errors. Use errors.As to check for specific errors" if ok { log.Println("myError") } - switch err.(type) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" + switch err.(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" case *myError: log.Println("myError") } - switch errorLintDoAnotherThing().(type) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" + switch errorLintDoAnotherThing().(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" case *myError: log.Println("myError") } - switch t := err.(type) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" + switch t := err.(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" case *myError: log.Println("myError", t) } - switch t := errorLintDoAnotherThing().(type) { // ERROR "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" + switch t := errorLintDoAnotherThing().(type) { // want "type switch on error will fail on wrapped errors. Use errors.As to check for specific errors" case *myError: log.Println("myError", t) } diff --git a/test/testdata/errorlint_comparison.go b/test/testdata/errorlint_comparison.go index 0b37f988ad8e..41ef591d7ffc 100644 --- a/test/testdata/errorlint_comparison.go +++ b/test/testdata/errorlint_comparison.go @@ -30,23 +30,23 @@ func errorLintComparison() { if nil != err { log.Println("nil") } - if err == errCompare { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" + if err == errCompare { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" log.Println("errCompare") } - if err != errCompare { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error" + if err != errCompare { // want "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error" log.Println("not errCompare") } - if errCompare == err { // ERROR "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" + if errCompare == err { // want "comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error" log.Println("errCompare") } - if errCompare != err { // ERROR "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error" + if errCompare != err { // want "comparing with != will fail on wrapped errors. Use errors.Is to check for a specific error" log.Println("not errCompare") } - switch err { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors" + switch err { // want "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors" case errCompare: log.Println("errCompare") } - switch errorLintDoThing() { // ERROR "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors" + switch errorLintDoThing() { // want "switch on an error will fail on wrapped errors. Use errors.Is to check for specific errors" case errCompare: log.Println("errCompare") } diff --git a/test/testdata/errorlint_errorf.go b/test/testdata/errorlint_errorf.go index 52ed9feb3fcb..e6fc58ce6462 100644 --- a/test/testdata/errorlint_errorf.go +++ b/test/testdata/errorlint_errorf.go @@ -16,11 +16,11 @@ func (customError) Error() string { func errorLintErrorf() { err := errors.New("oops") fmt.Errorf("error: %w", err) - fmt.Errorf("error: %v", err) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" - fmt.Errorf("%v %v", err, err) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" - fmt.Errorf("error: %s", err.Error()) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" + fmt.Errorf("error: %v", err) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" + fmt.Errorf("%v %v", err, err) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" + fmt.Errorf("error: %s", err.Error()) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" customError := customError{} - fmt.Errorf("error: %s", customError.Error()) // ERROR "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" + fmt.Errorf("error: %s", customError.Error()) // want "non-wrapping format verb for fmt.Errorf. Use `%w` to format errors" strErr := "oops" fmt.Errorf("%v", strErr) } diff --git a/test/testdata/execinquery.go b/test/testdata/execinquery.go index bcf3ba83289d..36db0af8d3e8 100644 --- a/test/testdata/execinquery.go +++ b/test/testdata/execinquery.go @@ -9,22 +9,22 @@ import ( func execInQuery(db *sql.DB) { test := "a" - _, err := db.Query("Update * FROM hoge where id = ?", test) // ERROR "Use Exec instead of Query to execute `UPDATE` query" + _, err := db.Query("Update * FROM hoge where id = ?", test) // want "Use Exec instead of Query to execute `UPDATE` query" if err != nil { return } - db.QueryRow("Update * FROM hoge where id = ?", test) // ERROR "Use Exec instead of QueryRow to execute `UPDATE` query" + db.QueryRow("Update * FROM hoge where id = ?", test) // want "Use Exec instead of QueryRow to execute `UPDATE` query" if err != nil { return } ctx := context.Background() - _, err = db.QueryContext(ctx, "Update * FROM hoge where id = ?", test) // ERROR "Use ExecContext instead of QueryContext to execute `UPDATE` query" + _, err = db.QueryContext(ctx, "Update * FROM hoge where id = ?", test) // want "Use ExecContext instead of QueryContext to execute `UPDATE` query" if err != nil { return } - db.QueryRowContext(ctx, "Update * FROM hoge where id = ?", test) // ERROR "Use ExecContext instead of QueryRowContext to execute `UPDATE` query" + db.QueryRowContext(ctx, "Update * FROM hoge where id = ?", test) // want "Use ExecContext instead of QueryRowContext to execute `UPDATE` query" } diff --git a/test/testdata/exhaustive.go b/test/testdata/exhaustive.go index 18b8a35b14df..ace3f81d19e7 100644 --- a/test/testdata/exhaustive.go +++ b/test/testdata/exhaustive.go @@ -11,7 +11,7 @@ const ( ) func processDirection(d Direction) { - switch d { // ERROR "missing cases in switch of type Direction: East, West" + switch d { // want "missing cases in switch of type Direction: East, West" case North, South: } } diff --git a/test/testdata/exhaustive_default.go b/test/testdata/exhaustive_default.go index ff2fcf57fc8c..6732f3dab886 100644 --- a/test/testdata/exhaustive_default.go +++ b/test/testdata/exhaustive_default.go @@ -1,5 +1,6 @@ //golangcitest:args -Eexhaustive //golangcitest:config_path testdata/configs/exhaustive_default.yml +//golangcitest:expected_exitcode 0 package testdata type Direction int diff --git a/test/testdata/exhaustive_generated.go b/test/testdata/exhaustive_generated.go index 82618d38e4ab..fcc946971810 100644 --- a/test/testdata/exhaustive_generated.go +++ b/test/testdata/exhaustive_generated.go @@ -1,4 +1,5 @@ //golangcitest:args -Eexhaustive +//golangcitest:expected_exitcode 0 package testdata // Code generated by some program. DO NOT EDIT. diff --git a/test/testdata/exhaustive_ignore_enum_members.go b/test/testdata/exhaustive_ignore_enum_members.go index da7a5b43010e..e1a810ee140e 100644 --- a/test/testdata/exhaustive_ignore_enum_members.go +++ b/test/testdata/exhaustive_ignore_enum_members.go @@ -15,7 +15,7 @@ const ( // using the ignore-enum-members setting. func processDirectionIgnoreEnumMembers(d Direction) { - switch d { // ERROR "missing cases in switch of type Direction: East" + switch d { // want "missing cases in switch of type Direction: East" case North, South: } } diff --git a/test/testdata/exhaustivestruct.go b/test/testdata/exhaustivestruct.go index 000a8f494af6..50476cebaffa 100644 --- a/test/testdata/exhaustivestruct.go +++ b/test/testdata/exhaustivestruct.go @@ -22,7 +22,7 @@ func exhaustiveStruct() { } // failPrivate - _ = ExhaustiveStruct{ // ERROR "c is missing in ExhaustiveStruct" + _ = ExhaustiveStruct{ // want "c is missing in ExhaustiveStruct" A: "a", B: 0, D: 1.0, @@ -30,7 +30,7 @@ func exhaustiveStruct() { } // fail - _ = ExhaustiveStruct{ // ERROR "B is missing in ExhaustiveStruct" + _ = ExhaustiveStruct{ // want "B is missing in ExhaustiveStruct" A: "a", c: false, D: 1.0, @@ -38,7 +38,7 @@ func exhaustiveStruct() { } // failMultiple - _ = ExhaustiveStruct{ // ERROR "B, D are missing in ExhaustiveStruct" + _ = ExhaustiveStruct{ // want "B, D are missing in ExhaustiveStruct" A: "a", c: false, E: time.Now(), diff --git a/test/testdata/exhaustivestruct_custom.go b/test/testdata/exhaustivestruct_custom.go index 55a9127ced78..08fde43f8e88 100644 --- a/test/testdata/exhaustivestruct_custom.go +++ b/test/testdata/exhaustivestruct_custom.go @@ -23,7 +23,7 @@ func exhaustiveStructCustom() { } // fail - _ = ExhaustiveStructCustom{ // ERROR "B is missing in ExhaustiveStructCustom" + _ = ExhaustiveStructCustom{ // want "B is missing in ExhaustiveStructCustom" A: "a", c: false, D: 1.0, @@ -31,14 +31,14 @@ func exhaustiveStructCustom() { } // failMultiple - _ = ExhaustiveStructCustom{ // ERROR "B, D are missing in ExhaustiveStructCustom" + _ = ExhaustiveStructCustom{ // want "B, D are missing in ExhaustiveStructCustom" A: "a", c: false, E: time.Now(), } // failPrivate - _ = ExhaustiveStructCustom{ // ERROR "c is missing in ExhaustiveStructCustom" + _ = ExhaustiveStructCustom{ // want "c is missing in ExhaustiveStructCustom" A: "a", B: 0, D: 1.0, @@ -104,7 +104,7 @@ func exhaustiveStructCustom2() { } // fail - _ = ExhaustiveStructCustom2{ // ERROR "B is missing in ExhaustiveStructCustom2" + _ = ExhaustiveStructCustom2{ // want "B is missing in ExhaustiveStructCustom2" A: "a", c: false, D: 1.0, @@ -112,14 +112,14 @@ func exhaustiveStructCustom2() { } // failMultiple - _ = ExhaustiveStructCustom2{ // ERROR "B, D are missing in ExhaustiveStructCustom2" + _ = ExhaustiveStructCustom2{ // want "B, D are missing in ExhaustiveStructCustom2" A: "a", c: false, E: time.Now(), } // failPrivate - _ = ExhaustiveStructCustom2{ // ERROR "c is missing in ExhaustiveStructCustom2" + _ = ExhaustiveStructCustom2{ // want "c is missing in ExhaustiveStructCustom2" A: "a", B: 0, D: 1.0, diff --git a/test/testdata/exhaustruct.go b/test/testdata/exhaustruct.go index 6da51f4f0acc..35675a5e6a82 100644 --- a/test/testdata/exhaustruct.go +++ b/test/testdata/exhaustruct.go @@ -22,7 +22,7 @@ func exhaustruct() { } // failPrivate - _ = Exhaustruct{ // ERROR "c is missing in Exhaustruct" + _ = Exhaustruct{ // want "c is missing in Exhaustruct" A: "a", B: 0, D: 1.0, @@ -30,7 +30,7 @@ func exhaustruct() { } // fail - _ = Exhaustruct{ // ERROR "B is missing in Exhaustruct" + _ = Exhaustruct{ // want "B is missing in Exhaustruct" A: "a", c: false, D: 1.0, @@ -38,7 +38,7 @@ func exhaustruct() { } // failMultiple - _ = Exhaustruct{ // ERROR "B, D are missing in Exhaustruct" + _ = Exhaustruct{ // want "B, D are missing in Exhaustruct" A: "a", c: false, E: time.Now(), diff --git a/test/testdata/exhaustruct_custom.go b/test/testdata/exhaustruct_custom.go index 352ea9110b1a..60d00a5c2180 100644 --- a/test/testdata/exhaustruct_custom.go +++ b/test/testdata/exhaustruct_custom.go @@ -23,7 +23,7 @@ func exhaustructCustom() { } // fail - _ = ExhaustructCustom{ // ERROR "B is missing in ExhaustructCustom" + _ = ExhaustructCustom{ // want "B is missing in ExhaustructCustom" A: "a", c: false, D: 1.0, @@ -31,14 +31,14 @@ func exhaustructCustom() { } // failMultiple - _ = ExhaustructCustom{ // ERROR "B, D are missing in ExhaustructCustom" + _ = ExhaustructCustom{ // want "B, D are missing in ExhaustructCustom" A: "a", c: false, E: time.Now(), } // failPrivate - _ = ExhaustructCustom{ // ERROR "c is missing in ExhaustructCustom" + _ = ExhaustructCustom{ // want "c is missing in ExhaustructCustom" A: "a", B: 0, D: 1.0, diff --git a/test/testdata/exportloopref.go b/test/testdata/exportloopref.go index 0fe98b1acf52..2d6b6aa36a37 100644 --- a/test/testdata/exportloopref.go +++ b/test/testdata/exportloopref.go @@ -12,11 +12,11 @@ func dummyFunction() { fmt.Println("loop expecting 10, 11, 12, 13") for i, p := range []int{10, 11, 12, 13} { printp(&p) - slice = append(slice, &p) // ERROR "exporting a pointer for the loop variable p" - array[i] = &p // ERROR "exporting a pointer for the loop variable p" + slice = append(slice, &p) // want "exporting a pointer for the loop variable p" + array[i] = &p // want "exporting a pointer for the loop variable p" if i%2 == 0 { - ref = &p // ERROR "exporting a pointer for the loop variable p" - str.x = &p // ERROR "exporting a pointer for the loop variable p" + ref = &p // want "exporting a pointer for the loop variable p" + str.x = &p // want "exporting a pointer for the loop variable p" } var vStr struct{ x *int } var vArray [4]*int diff --git a/test/testdata/fix/in/gci.go b/test/testdata/fix/in/gci.go index 9a2be3fa59ab..2449e8bfb86d 100644 --- a/test/testdata/fix/in/gci.go +++ b/test/testdata/fix/in/gci.go @@ -1,5 +1,6 @@ //golangcitest:args -Egci //golangcitest:config_path testdata/configs/gci.yml +//golangcitest:expected_exitcode 0 package gci import ( diff --git a/test/testdata/fix/in/gocritic.go b/test/testdata/fix/in/gocritic.go index a3cecf045ba4..a4a4fcfd6420 100644 --- a/test/testdata/fix/in/gocritic.go +++ b/test/testdata/fix/in/gocritic.go @@ -1,5 +1,6 @@ //golangcitest:args -Egocritic //golangcitest:config_path testdata/configs/gocritic-fix.yml +//golangcitest:expected_exitcode 0 package p import ( diff --git a/test/testdata/fix/in/godot.go b/test/testdata/fix/in/godot.go index 806978fbfe5a..13b8da1c0ea9 100644 --- a/test/testdata/fix/in/godot.go +++ b/test/testdata/fix/in/godot.go @@ -1,4 +1,5 @@ //golangcitest:args -Egodot +//golangcitest:expected_exitcode 0 package p /* diff --git a/test/testdata/fix/in/gofmt.go b/test/testdata/fix/in/gofmt.go index 9c35dc4787be..46dc6c811fd0 100644 --- a/test/testdata/fix/in/gofmt.go +++ b/test/testdata/fix/in/gofmt.go @@ -1,4 +1,5 @@ //golangcitest:args -Egofmt +//golangcitest:expected_exitcode 0 package p func gofmt(a, b int) int { diff --git a/test/testdata/fix/in/gofumpt.go b/test/testdata/fix/in/gofumpt.go index 83b6c9783ed3..b8e0bcbc81bf 100644 --- a/test/testdata/fix/in/gofumpt.go +++ b/test/testdata/fix/in/gofumpt.go @@ -1,5 +1,6 @@ //golangcitest:args -Egofumpt //golangcitest:config_path testdata/configs/gofumpt-fix.yml +//golangcitest:expected_exitcode 0 package p import "fmt" diff --git a/test/testdata/fix/in/goimports.go b/test/testdata/fix/in/goimports.go index 8e2248c587d5..1808bf18dde4 100644 --- a/test/testdata/fix/in/goimports.go +++ b/test/testdata/fix/in/goimports.go @@ -1,4 +1,5 @@ //golangcitest:args -Egofmt,goimports +//golangcitest:expected_exitcode 0 package p import ( diff --git a/test/testdata/fix/in/misspell.go b/test/testdata/fix/in/misspell.go index ac2ef6c1eaa3..07d0ae5b241a 100644 --- a/test/testdata/fix/in/misspell.go +++ b/test/testdata/fix/in/misspell.go @@ -1,4 +1,5 @@ //golangcitest:args -Emisspell +//golangcitest:expected_exitcode 0 package p import "log" diff --git a/test/testdata/fix/in/whitespace.go b/test/testdata/fix/in/whitespace.go index be8050e22f26..20c20315c31b 100644 --- a/test/testdata/fix/in/whitespace.go +++ b/test/testdata/fix/in/whitespace.go @@ -1,5 +1,6 @@ //golangcitest:args -Ewhitespace //golangcitest:config_path testdata/configs/whitespace-fix.yml +//golangcitest:expected_exitcode 0 package p import "fmt" diff --git a/test/testdata/fix/out/gci.go b/test/testdata/fix/out/gci.go index af4e2e80fc8a..489adb5235fb 100644 --- a/test/testdata/fix/out/gci.go +++ b/test/testdata/fix/out/gci.go @@ -1,5 +1,6 @@ //golangcitest:args -Egci //golangcitest:config_path testdata/configs/gci.yml +//golangcitest:expected_exitcode 0 package gci import ( diff --git a/test/testdata/fix/out/gocritic.go b/test/testdata/fix/out/gocritic.go index 943e81425596..93005ab4a253 100644 --- a/test/testdata/fix/out/gocritic.go +++ b/test/testdata/fix/out/gocritic.go @@ -1,5 +1,6 @@ //golangcitest:args -Egocritic //golangcitest:config_path testdata/configs/gocritic-fix.yml +//golangcitest:expected_exitcode 0 package p import ( diff --git a/test/testdata/fix/out/godot.go b/test/testdata/fix/out/godot.go index 7c29db76cf9b..6960f06c044c 100644 --- a/test/testdata/fix/out/godot.go +++ b/test/testdata/fix/out/godot.go @@ -1,4 +1,5 @@ //golangcitest:args -Egodot +//golangcitest:expected_exitcode 0 package p /* diff --git a/test/testdata/fix/out/gofmt.go b/test/testdata/fix/out/gofmt.go index 724fb76e5694..967f35ac0fe3 100644 --- a/test/testdata/fix/out/gofmt.go +++ b/test/testdata/fix/out/gofmt.go @@ -1,4 +1,5 @@ //golangcitest:args -Egofmt +//golangcitest:expected_exitcode 0 package p func gofmt(a, b int) int { diff --git a/test/testdata/fix/out/gofumpt.go b/test/testdata/fix/out/gofumpt.go index dd366b7cce41..5fc02f674330 100644 --- a/test/testdata/fix/out/gofumpt.go +++ b/test/testdata/fix/out/gofumpt.go @@ -1,5 +1,6 @@ //golangcitest:args -Egofumpt //golangcitest:config_path testdata/configs/gofumpt-fix.yml +//golangcitest:expected_exitcode 0 package p import "fmt" diff --git a/test/testdata/fix/out/goimports.go b/test/testdata/fix/out/goimports.go index 21c25a69238e..8e28c8ee3ef6 100644 --- a/test/testdata/fix/out/goimports.go +++ b/test/testdata/fix/out/goimports.go @@ -1,4 +1,5 @@ //golangcitest:args -Egofmt,goimports +//golangcitest:expected_exitcode 0 package p func goimports(a, b int) int { diff --git a/test/testdata/fix/out/misspell.go b/test/testdata/fix/out/misspell.go index 7f3649415227..474dd3e0de66 100644 --- a/test/testdata/fix/out/misspell.go +++ b/test/testdata/fix/out/misspell.go @@ -1,4 +1,5 @@ //golangcitest:args -Emisspell +//golangcitest:expected_exitcode 0 package p import "log" diff --git a/test/testdata/fix/out/whitespace.go b/test/testdata/fix/out/whitespace.go index 653a7343fb09..16be0dcd5fc3 100644 --- a/test/testdata/fix/out/whitespace.go +++ b/test/testdata/fix/out/whitespace.go @@ -1,5 +1,6 @@ //golangcitest:args -Ewhitespace //golangcitest:config_path testdata/configs/whitespace-fix.yml +//golangcitest:expected_exitcode 0 package p import "fmt" diff --git a/test/testdata/forbidigo_example.go b/test/testdata/forbidigo_example.go index ef5de706d0e1..0a2897883a56 100644 --- a/test/testdata/forbidigo_example.go +++ b/test/testdata/forbidigo_example.go @@ -8,6 +8,6 @@ import ( ) func Forbidigo() { - fmt.Printf("too noisy!!!") // ERROR "use of `fmt\\.Printf` forbidden by pattern `fmt\\\\.Print\\.\\*`" - time.Sleep(time.Nanosecond) // ERROR "no sleeping!" + fmt.Printf("too noisy!!!") // want "use of `fmt\\.Printf` forbidden by pattern `fmt\\\\.Print\\.\\*`" + time.Sleep(time.Nanosecond) // want "no sleeping!" } diff --git a/test/testdata/forbidigo_example_test.go b/test/testdata/forbidigo_example_test.go index 8582c8d5d687..18abb36dd461 100644 --- a/test/testdata/forbidigo_example_test.go +++ b/test/testdata/forbidigo_example_test.go @@ -1,5 +1,6 @@ //golangcitest:args -Eforbidigo //golangcitest:config_path testdata/configs/forbidigo.yml +//golangcitest:expected_exitcode 0 package testdata import "fmt" diff --git a/test/testdata/forbidigo_include_godoc_examples_test.go b/test/testdata/forbidigo_include_godoc_examples_test.go index ea6fc3e055ea..e44fa3fe9f40 100644 --- a/test/testdata/forbidigo_include_godoc_examples_test.go +++ b/test/testdata/forbidigo_include_godoc_examples_test.go @@ -5,5 +5,5 @@ package testdata import "fmt" func ExampleForbidigoNoGodoc() { - fmt.Printf("too noisy!!!") // ERROR "use of `fmt.Printf` forbidden by pattern.*" + fmt.Printf("too noisy!!!") // want "use of `fmt.Printf` forbidden by pattern.*" } diff --git a/test/testdata/forcetypeassert.go b/test/testdata/forcetypeassert.go index 7f415b2274e8..846a806b45c8 100644 --- a/test/testdata/forcetypeassert.go +++ b/test/testdata/forcetypeassert.go @@ -5,10 +5,10 @@ import "fmt" func forcetypeassertInvalid() { var a interface{} - _ = a.(int) // ERROR "type assertion must be checked" + _ = a.(int) // want "type assertion must be checked" var b interface{} - bi := b.(int) // ERROR "type assertion must be checked" + bi := b.(int) // want "type assertion must be checked" fmt.Println(bi) } diff --git a/test/testdata/funlen.go b/test/testdata/funlen.go index f8059dbcf578..4dd92c80f535 100644 --- a/test/testdata/funlen.go +++ b/test/testdata/funlen.go @@ -2,7 +2,7 @@ //golangcitest:config_path testdata/configs/funlen.yml package testdata -func TooManyLines() { // ERROR `Function 'TooManyLines' is too long \(22 > 20\)` +func TooManyLines() { // want `Function 'TooManyLines' is too long \(22 > 20\)` t := struct { A string B string @@ -27,7 +27,7 @@ func TooManyLines() { // ERROR `Function 'TooManyLines' is too long \(22 > 20\)` _ = t } -func TooManyStatements() { // ERROR `Function 'TooManyStatements' has too many statements \(11 > 10\)` +func TooManyStatements() { // want `Function 'TooManyStatements' has too many statements \(11 > 10\)` a := 1 b := a c := b diff --git a/test/testdata/gci.go b/test/testdata/gci.go index d29e85b0da49..ef2e1954ca44 100644 --- a/test/testdata/gci.go +++ b/test/testdata/gci.go @@ -5,9 +5,9 @@ package testdata import ( "fmt" - "github.com/golangci/golangci-lint/pkg/config" // ERROR "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" + "github.com/golangci/golangci-lint/pkg/config" // want "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" - "github.com/pkg/errors" // ERROR "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" + "github.com/pkg/errors" // want "File is not \\`gci\\`-ed with --skip-generated -s standard,prefix\\(github.com/golangci/golangci-lint\\),default" ) func GoimportsLocalTest() { diff --git a/test/testdata/gci/gci.go b/test/testdata/gci/gci.go deleted file mode 100644 index 8f83dc21ebfb..000000000000 --- a/test/testdata/gci/gci.go +++ /dev/null @@ -1,16 +0,0 @@ -//golangcitest:args -Egci -//golangcitest:config_path testdata/configs/gci.yml -package gci - -import ( - "fmt" - - "github.com/golangci/golangci-lint/pkg/config" - "github.com/pkg/errors" -) - -func GoimportsLocalTest() { - fmt.Print("x") - _ = config.Config{} - _ = errors.New("") -} diff --git a/test/testdata/go-header_bad.go b/test/testdata/go-header_bad.go index 9c9de0b6a825..fbcf828e360e 100644 --- a/test/testdata/go-header_bad.go +++ b/test/testdata/go-header_bad.go @@ -1,4 +1,4 @@ -/*MY TITLE!*/ // ERROR `Expected:TITLE\., Actual: TITLE!` +/*MY TITLE!*/ // want `Expected:TITLE\., Actual: TITLE!` //golangcitest:args -Egoheader //golangcitest:config_path testdata/configs/go-header.yml diff --git a/test/testdata/go-header_good.go b/test/testdata/go-header_good.go index 744698111d86..4bc199d0d6a4 100644 --- a/test/testdata/go-header_good.go +++ b/test/testdata/go-header_good.go @@ -2,4 +2,5 @@ //golangcitest:args -Egoheader //golangcitest:config_path testdata/configs/go-header.yml +//golangcitest:expected_exitcode 0 package testdata diff --git a/test/testdata/gochecknoglobals.go b/test/testdata/gochecknoglobals.go index a2c1f82c1336..3da3a2a32a02 100644 --- a/test/testdata/gochecknoglobals.go +++ b/test/testdata/gochecknoglobals.go @@ -7,12 +7,12 @@ import ( "regexp" ) -var noGlobalsVar int // ERROR "noGlobalsVar is a global variable" +var noGlobalsVar int // want "noGlobalsVar is a global variable" var ErrSomeType = errors.New("test that global erorrs aren't warned") var ( OnlyDigites = regexp.MustCompile(`^\d+$`) - BadNamedErr = errors.New("this is bad") // ERROR "BadNamedErr is a global variable" + BadNamedErr = errors.New("this is bad") // want "BadNamedErr is a global variable" ) func NoGlobals() { diff --git a/test/testdata/gochecknoinits.go b/test/testdata/gochecknoinits.go index 5ea8060d430b..f3e574dfa6cc 100644 --- a/test/testdata/gochecknoinits.go +++ b/test/testdata/gochecknoinits.go @@ -3,7 +3,7 @@ package testdata import "fmt" -func init() { // ERROR "don't use `init` function" +func init() { // want "don't use `init` function" fmt.Println() } diff --git a/test/testdata/gocognit.go b/test/testdata/gocognit.go index ffd582a30200..454c39d95ea7 100644 --- a/test/testdata/gocognit.go +++ b/test/testdata/gocognit.go @@ -2,7 +2,7 @@ //golangcitest:config_path testdata/configs/gocognit.yml package testdata -func GoCognit_CC4_GetWords(number int) string { // ERROR "cognitive complexity 4 of func .* is high .*" +func GoCognit_CC4_GetWords(number int) string { // want "cognitive complexity 4 of func .* is high .*" if number == 1 { // +1 return "one" } else if number == 2 { // +1 @@ -27,7 +27,7 @@ func GoCognit_CC1_GetWords(number int) string { } } // Cognitive complexity = 1 -func GoCognit_CC3_Fact(n int) int { // ERROR "cognitive complexity 3 of func .* is high .*" +func GoCognit_CC3_Fact(n int) int { // want "cognitive complexity 3 of func .* is high .*" if n <= 1 { // +1 return 1 } else { // +1 @@ -35,7 +35,7 @@ func GoCognit_CC3_Fact(n int) int { // ERROR "cognitive complexity 3 of func .* } } // total complexity = 3 -func GoCognit_CC7_SumOfPrimes(max int) int { // ERROR "cognitive complexity 7 of func .* is high .*" +func GoCognit_CC7_SumOfPrimes(max int) int { // want "cognitive complexity 7 of func .* is high .*" var total int OUT: diff --git a/test/testdata/goconst.go b/test/testdata/goconst.go index 6996acb845b8..f2f5314d5627 100644 --- a/test/testdata/goconst.go +++ b/test/testdata/goconst.go @@ -4,7 +4,7 @@ package testdata import "fmt" func GoconstA() { - a := "needconst" // ERROR "string `needconst` has 5 occurrences, make it a constant" + a := "needconst" // want "string `needconst` has 5 occurrences, make it a constant" fmt.Print(a) b := "needconst" fmt.Print(b) @@ -22,7 +22,7 @@ func GoconstB() { const AlreadyHasConst = "alreadyhasconst" func GoconstC() { - a := "alreadyhasconst" // ERROR "string `alreadyhasconst` has 3 occurrences, but such constant `AlreadyHasConst` already exists" + a := "alreadyhasconst" // want "string `alreadyhasconst` has 3 occurrences, but such constant `AlreadyHasConst` already exists" fmt.Print(a) b := "alreadyhasconst" fmt.Print(b) diff --git a/test/testdata/goconst_calls_enabled.go b/test/testdata/goconst_calls_enabled.go index 83df4e78b7e1..ea2a85f3ddb6 100644 --- a/test/testdata/goconst_calls_enabled.go +++ b/test/testdata/goconst_calls_enabled.go @@ -7,7 +7,7 @@ import "fmt" const FooBar = "foobar" func Baz() { - a := "foobar" // ERROR "string `foobar` has 4 occurrences, but such constant `FooBar` already exists" + a := "foobar" // want "string `foobar` has 4 occurrences, but such constant `FooBar` already exists" fmt.Print(a) b := "foobar" fmt.Print(b) diff --git a/test/testdata/goconst_dont_ignore_test.go b/test/testdata/goconst_dont_ignore_test.go index 7282827047a1..333e67feff15 100644 --- a/test/testdata/goconst_dont_ignore_test.go +++ b/test/testdata/goconst_dont_ignore_test.go @@ -8,7 +8,7 @@ import ( ) func TestGoConstA(t *testing.T) { - a := "needconst" // ERROR "string `needconst` has 5 occurrences, make it a constant" + a := "needconst" // want "string `needconst` has 5 occurrences, make it a constant" fmt.Print(a) b := "needconst" fmt.Print(b) @@ -26,7 +26,7 @@ func TestGoConstB(t *testing.T) { const AlreadyHasConst = "alreadyhasconst" func TestGoConstC(t *testing.T) { - a := "alreadyhasconst" // ERROR "string `alreadyhasconst` has 3 occurrences, but such constant `AlreadyHasConst` already exists" + a := "alreadyhasconst" // want "string `alreadyhasconst` has 3 occurrences, but such constant `AlreadyHasConst` already exists" fmt.Print(a) b := "alreadyhasconst" fmt.Print(b) diff --git a/test/testdata/goconst_ignore_test.go b/test/testdata/goconst_ignore_test.go index 5180b62ab394..bc538bf11e0d 100644 --- a/test/testdata/goconst_ignore_test.go +++ b/test/testdata/goconst_ignore_test.go @@ -1,5 +1,6 @@ //golangcitest:args -Egoconst //golangcitest:config_path testdata/configs/goconst_ignore.yml +//golangcitest:expected_exitcode 0 package testdata import ( diff --git a/test/testdata/gocritic.go b/test/testdata/gocritic.go index d59bc48ebbeb..afca6f3c479c 100644 --- a/test/testdata/gocritic.go +++ b/test/testdata/gocritic.go @@ -8,7 +8,7 @@ import ( "strings" ) -var _ = *flag.Bool("global1", false, "") // ERROR `flagDeref: immediate deref in \*flag.Bool\(.global1., false, ..\) is most likely an error; consider using flag\.BoolVar` +var _ = *flag.Bool("global1", false, "") // want `flagDeref: immediate deref in \*flag.Bool\(.global1., false, ..\) is most likely an error; consider using flag\.BoolVar` type size1 struct { a bool @@ -26,23 +26,23 @@ func gocriticRangeValCopySize1(ss []size1) { } func gocriticRangeValCopySize2(ss []size2) { - for _, s := range ss { // ERROR "rangeValCopy: each iteration copies 2 bytes.*" + for _, s := range ss { // want "rangeValCopy: each iteration copies 2 bytes.*" log.Print(s) } } func gocriticStringSimplify() { s := "Most of the time, travellers worry about their luggage." - s = strings.Replace(s, ",", "", -1) // ERROR "ruleguard: this Replace call can be simplified.*" + s = strings.Replace(s, ",", "", -1) // want "ruleguard: this Replace call can be simplified.*" log.Print(s) } func gocriticDup(x bool) { - if x && x { // ERROR "ruleguard: suspicious identical LHS and RHS.*" + if x && x { // want "ruleguard: suspicious identical LHS and RHS.*" log.Print("x is true") } } func gocriticRuleWrapperFunc() { - strings.Replace("abcabc", "a", "d", -1) // ERROR "ruleguard: this Replace call can be simplified.*" + strings.Replace("abcabc", "a", "d", -1) // want "ruleguard: this Replace call can be simplified.*" } diff --git a/test/testdata/gocyclo.go b/test/testdata/gocyclo.go index 3fd1040ee596..b37c8f89fdb1 100644 --- a/test/testdata/gocyclo.go +++ b/test/testdata/gocyclo.go @@ -4,7 +4,7 @@ package testdata import "net/http" -func GocycloBigComplexity(s string) { // ERROR "cyclomatic complexity .* of func .* is high .*" +func GocycloBigComplexity(s string) { // want "cyclomatic complexity .* of func .* is high .*" if s == http.MethodGet || s == "2" || s == "3" || s == "4" || s == "5" || s == "6" || s == "7" { return } diff --git a/test/testdata/godot.go b/test/testdata/godot.go index ece6e3d22368..2cfc41b5abb7 100644 --- a/test/testdata/godot.go +++ b/test/testdata/godot.go @@ -1,7 +1,7 @@ //golangcitest:args -Egodot package testdata -// Godot checks top-level comments // ERROR "Comment should end in a period" +// Godot checks top-level comments // want "Comment should end in a period" func Godot() { // nothing to do here } diff --git a/test/testdata/godox.go b/test/testdata/godox.go index e6f2364d6583..05dc554b3f4e 100644 --- a/test/testdata/godox.go +++ b/test/testdata/godox.go @@ -3,11 +3,11 @@ package testdata func todoLeftInCode() { - // TODO implement me // ERROR `Line contains FIXME/TODO: "TODO implement me` - //TODO no space // ERROR `Line contains FIXME/TODO: "TODO no space` - // TODO(author): 123 // ERROR `Line contains FIXME/TODO: "TODO\(author\): 123` - //TODO(author): 123 // ERROR `Line contains FIXME/TODO: "TODO\(author\): 123` - //TODO(author) 456 // ERROR `Line contains FIXME/TODO: "TODO\(author\) 456` - // TODO: qwerty // ERROR `Line contains FIXME/TODO: "TODO: qwerty` - // todo 789 // ERROR `Line contains FIXME/TODO: "todo 789` + // TODO implement me // want `Line contains FIXME/TODO: "TODO implement me` + //TODO no space // want `Line contains FIXME/TODO: "TODO no space` + // TODO(author): 123 // want `Line contains FIXME/TODO: "TODO\(author\): 123` + //TODO(author): 123 // want `Line contains FIXME/TODO: "TODO\(author\): 123` + //TODO(author) 456 // want `Line contains FIXME/TODO: "TODO\(author\) 456` + // TODO: qwerty // want `Line contains FIXME/TODO: "TODO: qwerty` + // todo 789 // want `Line contains FIXME/TODO: "todo 789` } diff --git a/test/testdata/goerr113.go b/test/testdata/goerr113.go index 28c13990696b..121245127470 100644 --- a/test/testdata/goerr113.go +++ b/test/testdata/goerr113.go @@ -4,17 +4,17 @@ package testdata import "os" func SimpleEqual(e1, e2 error) bool { - return e1 == e2 // ERROR `err113: do not compare errors directly "e1 == e2", use "errors.Is\(e1, e2\)" instead` + return e1 == e2 // want `err113: do not compare errors directly "e1 == e2", use "errors.Is\(e1, e2\)" instead` } func SimpleNotEqual(e1, e2 error) bool { - return e1 != e2 // ERROR `err113: do not compare errors directly "e1 != e2", use "!errors.Is\(e1, e2\)" instead` + return e1 != e2 // want `err113: do not compare errors directly "e1 != e2", use "!errors.Is\(e1, e2\)" instead` } func CheckGoerr13Import(e error) bool { f, err := os.Create("f.txt") if err != nil { - return err == e // ERROR `err113: do not compare errors directly "err == e", use "errors.Is\(err, e\)" instead` + return err == e // want `err113: do not compare errors directly "err == e", use "errors.Is\(err, e\)" instead` } f.Close() return false diff --git a/test/testdata/gofmt.go b/test/testdata/gofmt.go index cf4bef614b07..877d9017e08b 100644 --- a/test/testdata/gofmt.go +++ b/test/testdata/gofmt.go @@ -5,5 +5,5 @@ import "fmt" func GofmtNotSimplified() { var x []string - fmt.Print(x[1:len(x)]) // ERROR "File is not `gofmt`-ed with `-s`" + fmt.Print(x[1:len(x)]) // want "File is not `gofmt`-ed with `-s`" } diff --git a/test/testdata/gofmt_no_simplify.go b/test/testdata/gofmt_no_simplify.go index 423e60488928..0d68bf181c4a 100644 --- a/test/testdata/gofmt_no_simplify.go +++ b/test/testdata/gofmt_no_simplify.go @@ -9,5 +9,5 @@ func GofmtNotSimplifiedOk() { fmt.Print(x[1:len(x)]) } -func GofmtBadFormat(){ // ERROR "^File is not `gofmt`-ed" +func GofmtBadFormat(){ // want "^File is not `gofmt`-ed" } diff --git a/test/testdata/gofumpt.go b/test/testdata/gofumpt.go index 4570a2bc1dd9..73528d2195fa 100644 --- a/test/testdata/gofumpt.go +++ b/test/testdata/gofumpt.go @@ -4,5 +4,5 @@ package testdata import "fmt" func GofumptNewLine() { - fmt.Println( "foo" ) // ERROR "File is not `gofumpt`-ed" + fmt.Println( "foo" ) // want "File is not `gofumpt`-ed" } diff --git a/test/testdata/gofumpt_with_extra.go b/test/testdata/gofumpt_with_extra.go index 9fdab582c09d..4671f41e0ad8 100644 --- a/test/testdata/gofumpt_with_extra.go +++ b/test/testdata/gofumpt_with_extra.go @@ -4,6 +4,6 @@ package testdata import "fmt" -func GofmtNotExtra(bar string, baz string) { // ERROR "File is not `gofumpt`-ed with `-extra`" +func GofmtNotExtra(bar string, baz string) { // want "File is not `gofumpt`-ed with `-extra`" fmt.Print("foo") } diff --git a/test/testdata/goimports.go b/test/testdata/goimports.go index 39eb0f6cf429..63f657c044c2 100644 --- a/test/testdata/goimports.go +++ b/test/testdata/goimports.go @@ -2,7 +2,7 @@ package testdata import ( - "fmt" // ERROR "File is not `goimports`-ed" + "fmt" // want "File is not `goimports`-ed" "github.com/golangci/golangci-lint/pkg/config" ) diff --git a/test/testdata/goimports/goimports.go b/test/testdata/goimports/goimports.go deleted file mode 100644 index a94b76c24b19..000000000000 --- a/test/testdata/goimports/goimports.go +++ /dev/null @@ -1,16 +0,0 @@ -//golangcitest:args -Egoimports -//golangcitest:config_path testdata/configs/goimports.yml -package goimports - -import ( - "fmt" - - "github.com/golangci/golangci-lint/pkg/config" - "github.com/pkg/errors" -) - -func GoimportsLocalTest() { - fmt.Print("x") - _ = config.Config{} - _ = errors.New("") -} diff --git a/test/testdata/goimports_local.go b/test/testdata/goimports_local.go new file mode 100644 index 000000000000..8d9bd41b1f56 --- /dev/null +++ b/test/testdata/goimports_local.go @@ -0,0 +1,16 @@ +//golangcitest:args -Egoimports +//golangcitest:config_path testdata/configs/goimports_local.yml +package testdata + +import ( + "fmt" + + "github.com/golangci/golangci-lint/pkg/config" // want "File is not `goimports`-ed with -local github.com/golangci/golangci-lint" + "github.com/pkg/errors" +) + +func GoimportsLocalPrefixTest() { + fmt.Print("x") + _ = config.Config{} + _ = errors.New("") +} diff --git a/test/testdata/golint.go b/test/testdata/golint.go index 2671f2e83b9f..feb52f007fbb 100644 --- a/test/testdata/golint.go +++ b/test/testdata/golint.go @@ -1,7 +1,7 @@ //golangcitest:args -Egolint --internal-cmd-test package testdata -var Go_lint string // ERROR "don't use underscores in Go names; var `Go_lint` should be `GoLint`" +var Go_lint string // want "don't use underscores in Go names; var `Go_lint` should be `GoLint`" func ExportedFuncWithNoComment() { } @@ -19,4 +19,4 @@ type GolintTest struct{} func (receiver1 GolintTest) A() {} -func (receiver2 GolintTest) B() {} // ERROR "receiver name receiver2 should be consistent with previous receiver name receiver1 for GolintTest" +func (receiver2 GolintTest) B() {} // want "receiver name receiver2 should be consistent with previous receiver name receiver1 for GolintTest" diff --git a/test/testdata/gomnd.go b/test/testdata/gomnd.go index 26e53f2999b8..589c53bb5814 100644 --- a/test/testdata/gomnd.go +++ b/test/testdata/gomnd.go @@ -9,14 +9,14 @@ import ( func UseMagicNumber() { c := &http.Client{ - Timeout: 2 * time.Second, // ERROR "Magic number: 2, in detected" + Timeout: 2 * time.Second, // want "Magic number: 2, in detected" } res, err := c.Get("http://www.google.com") if err != nil { log.Fatal(err) } - if res.StatusCode != 200 { // ERROR "Magic number: 200, in detected" + if res.StatusCode != 200 { // want "Magic number: 200, in detected" log.Println("Something went wrong") } } diff --git a/test/testdata/gomodguard.go b/test/testdata/gomodguard.go index 64bfdc02bca2..a4c18c4ce50e 100644 --- a/test/testdata/gomodguard.go +++ b/test/testdata/gomodguard.go @@ -6,7 +6,7 @@ import ( "log" "golang.org/x/mod/modfile" - "gopkg.in/yaml.v3" // ERROR "import of package `gopkg.in/yaml.v3` is blocked because the module is in the blocked modules list. `github.com/kylelemons/go-gypsy` is a recommended module. This is an example of recommendations." + "gopkg.in/yaml.v3" // want "import of package `gopkg.in/yaml.v3` is blocked because the module is in the blocked modules list. `github.com/kylelemons/go-gypsy` is a recommended module. This is an example of recommendations." ) // Something just some struct diff --git a/test/testdata/goprintffuncname.go b/test/testdata/goprintffuncname.go index 4a80ba06e84e..221e7319c2ae 100644 --- a/test/testdata/goprintffuncname.go +++ b/test/testdata/goprintffuncname.go @@ -1,5 +1,5 @@ //golangcitest:args -Egoprintffuncname package testdata -func PrintfLikeFuncWithBadName(format string, args ...interface{}) { // ERROR "printf-like formatting function 'PrintfLikeFuncWithBadName' should be named 'PrintfLikeFuncWithBadNamef'" +func PrintfLikeFuncWithBadName(format string, args ...interface{}) { // want "printf-like formatting function 'PrintfLikeFuncWithBadName' should be named 'PrintfLikeFuncWithBadNamef'" } diff --git a/test/testdata/gosec.go b/test/testdata/gosec.go index f8282cfb629d..7e660728a72f 100644 --- a/test/testdata/gosec.go +++ b/test/testdata/gosec.go @@ -2,7 +2,7 @@ package testdata import ( - "crypto/md5" // ERROR "G501: Blocklisted import crypto/md5: weak cryptographic primitive" + "crypto/md5" // want "G501: Blocklisted import crypto/md5: weak cryptographic primitive" "fmt" "log" "os" @@ -10,7 +10,7 @@ import ( ) func Gosec() { - h := md5.New() // ERROR "G401: Use of weak cryptographic primitive" + h := md5.New() // want "G401: Use of weak cryptographic primitive" log.Print(h) } @@ -34,5 +34,5 @@ func GosecG204SubprocWithFunc() { return "/tmp/dummy" } - exec.Command("ls", arg()).Run() // ERROR "G204: Subprocess launched with a potential tainted input or cmd arguments" + exec.Command("ls", arg()).Run() // want "G204: Subprocess launched with a potential tainted input or cmd arguments" } diff --git a/test/testdata/gosec_rules_config.go b/test/testdata/gosec_rules_config.go index 3eea8114eb4a..75845b6dd907 100644 --- a/test/testdata/gosec_rules_config.go +++ b/test/testdata/gosec_rules_config.go @@ -5,8 +5,8 @@ package testdata import "io/ioutil" const gosecToken = "62ebc7a03d6ca24dca1258fd4b48462f6fed1545" -const gosecSimple = "62ebc7a03d6ca24dca1258fd4b48462f6fed1545" // ERROR "G101: Potential hardcoded credentials" +const gosecSimple = "62ebc7a03d6ca24dca1258fd4b48462f6fed1545" // want "G101: Potential hardcoded credentials" func gosecCustom() { - ioutil.WriteFile("filename", []byte("test"), 0755) // ERROR "G306: Expect WriteFile permissions to be 0666 or less" + ioutil.WriteFile("filename", []byte("test"), 0755) // want "G306: Expect WriteFile permissions to be 0666 or less" } diff --git a/test/testdata/gosec_severity_confidence.go b/test/testdata/gosec_severity_confidence.go index 1b72dceafd10..ee1ed957b905 100644 --- a/test/testdata/gosec_severity_confidence.go +++ b/test/testdata/gosec_severity_confidence.go @@ -11,7 +11,7 @@ import ( var url string = "https://www.abcdefghijk.com" func gosecVariableURL() { - resp, err := http.Get(url) // ERROR "G107: Potential HTTP request made with variable url" + resp, err := http.Get(url) // want "G107: Potential HTTP request made with variable url" if err != nil { panic(err) } diff --git a/test/testdata/gosimple.go b/test/testdata/gosimple.go index 51ebf15dd046..970b1fdc1199 100644 --- a/test/testdata/gosimple.go +++ b/test/testdata/gosimple.go @@ -6,7 +6,7 @@ import ( ) func Gosimple(ss []string) { - if ss != nil { // ERROR "S1031: unnecessary nil check around range" + if ss != nil { // want "S1031: unnecessary nil check around range" for _, s := range ss { log.Printf(s) } diff --git a/test/testdata/govet.go b/test/testdata/govet.go index 53c0e35d7d71..c09fd42fefc2 100644 --- a/test/testdata/govet.go +++ b/test/testdata/govet.go @@ -9,12 +9,12 @@ import ( ) func GovetComposites() error { - return &os.PathError{"first", "path", os.ErrNotExist} // ERROR "composites: io/fs\\.PathError struct literal uses unkeyed fields" + return &os.PathError{"first", "path", os.ErrNotExist} // want "composites: io/fs\\.PathError struct literal uses unkeyed fields" } func GovetShadow(f io.Reader, buf []byte) (err error) { if f != nil { - _, err := f.Read(buf) // ERROR `shadow: declaration of .err. shadows declaration at line \d+` + _, err := f.Read(buf) // want `shadow: declaration of .err. shadows declaration at line \d+` if err != nil { return err } @@ -34,10 +34,10 @@ func GovetNolintVetShadow() error { func GovetPrintf() { x := "dummy" - fmt.Printf("%d", x) // ERROR "printf: fmt.Printf format %d has arg x of wrong type string" + fmt.Printf("%d", x) // want "printf: fmt.Printf format %d has arg x of wrong type string" } func GovetStringIntConv() { i := 42 - fmt.Println("i = " + string(i)) // ERROR "stringintconv: conversion from int to string yields a string of one rune, not a string of digits \\(did you mean fmt.Sprint\\(x\\)\\?\\)" + fmt.Println("i = " + string(i)) // want "stringintconv: conversion from int to string yields a string of one rune, not a string of digits \\(did you mean fmt.Sprint\\(x\\)\\?\\)" } diff --git a/test/testdata/govet_fieldalignment.go b/test/testdata/govet_fieldalignment.go index e7d6ffce8566..cb7f2af2a201 100644 --- a/test/testdata/govet_fieldalignment.go +++ b/test/testdata/govet_fieldalignment.go @@ -8,7 +8,7 @@ type gvfaGood struct { z byte } -type gvfaBad struct { // ERROR "struct of size 12 could be 8" +type gvfaBad struct { // want "struct of size 12 could be 8" x byte y int32 z byte @@ -19,7 +19,7 @@ type gvfaPointerGood struct { buf [1000]uintptr } -type gvfaPointerBad struct { // ERROR "struct with 8008 pointer bytes could be 8" +type gvfaPointerBad struct { // want "struct with 8008 pointer bytes could be 8" buf [1000]uintptr P *int } @@ -35,7 +35,7 @@ type gvfaPointerSorta struct { } } -type gvfaPointerSortaBad struct { // ERROR "struct with 32 pointer bytes could be 24" +type gvfaPointerSortaBad struct { // want "struct with 32 pointer bytes could be 24" a struct { p *int q [2]uintptr @@ -51,7 +51,7 @@ type gvfaZeroGood struct { b uint32 } -type gvfaZeroBad struct { // ERROR "struct of size 8 could be 4" +type gvfaZeroBad struct { // want "struct of size 8 could be 4" a uint32 b [0]byte } diff --git a/test/testdata/govet_ifaceassert.go b/test/testdata/govet_ifaceassert.go index fc8910e3daee..f495719c1abd 100644 --- a/test/testdata/govet_ifaceassert.go +++ b/test/testdata/govet_ifaceassert.go @@ -10,5 +10,5 @@ func GovetIfaceAssert() { var v interface { Read() } - _ = v.(io.Reader) // ERROR "impossible type assertion: no type can implement both interface\\{Read\\(\\)\\} and io\\.Reader \\(conflicting types for Read method\\)" + _ = v.(io.Reader) // want "impossible type assertion: no type can implement both interface\\{Read\\(\\)\\} and io\\.Reader \\(conflicting types for Read method\\)" } diff --git a/test/testdata/ifshort.go b/test/testdata/ifshort.go index edff1bbe870a..20d79759c001 100644 --- a/test/testdata/ifshort.go +++ b/test/testdata/ifshort.go @@ -4,7 +4,7 @@ package testdata func DontUseShortSyntaxWhenPossible() { getValue := func() interface{} { return nil } - v := getValue() // ERROR "variable 'v' is only used in the if-statement .*" + v := getValue() // want "variable 'v' is only used in the if-statement .*" if v != nil { return } diff --git a/test/testdata/importas.go b/test/testdata/importas.go index 259d82262d74..20dfe1bcefb9 100644 --- a/test/testdata/importas.go +++ b/test/testdata/importas.go @@ -3,11 +3,11 @@ package testdata import ( - wrong_alias "fmt" // ERROR `import "fmt" imported as "wrong_alias" but must be "fff" according to config` + wrong_alias "fmt" // want `import "fmt" imported as "wrong_alias" but must be "fff" according to config` "os" - wrong_alias_again "os" // ERROR `import "os" imported as "wrong_alias_again" but must be "std_os" according to config` + wrong_alias_again "os" // want `import "os" imported as "wrong_alias_again" but must be "std_os" according to config` - wrong "github.com/pkg/errors" // ERROR `import "github.com/pkg/errors" imported as "wrong" but must be "pkgerr" according to config` + wrong "github.com/pkg/errors" // want `import "github.com/pkg/errors" imported as "wrong" but must be "pkgerr" according to config` ) func ImportAsWrongAlias() { diff --git a/test/testdata/importas_noalias.go b/test/testdata/importas_noalias.go index 29554fce5212..a40fc1b99301 100644 --- a/test/testdata/importas_noalias.go +++ b/test/testdata/importas_noalias.go @@ -1,5 +1,6 @@ //golangcitest:args -Eimportas //golangcitest:config_path testdata/configs/importas_noalias.yml +//golangcitest:expected_exitcode 0 package testdata import ( diff --git a/test/testdata/importas_strict.go b/test/testdata/importas_strict.go index ce801870b2e8..b381837c2743 100644 --- a/test/testdata/importas_strict.go +++ b/test/testdata/importas_strict.go @@ -3,11 +3,11 @@ package testdata import ( - wrong_alias "fmt" // ERROR `import "fmt" imported as "wrong_alias" but must be "fff" according to config` - "os" // ERROR `import "os" imported without alias but must be with alias "std_os" according to config` - wrong_alias_again "os" // ERROR `import "os" imported as "wrong_alias_again" but must be "std_os" according to config` + wrong_alias "fmt" // want `import "fmt" imported as "wrong_alias" but must be "fff" according to config` + "os" // want `import "os" imported without alias but must be with alias "std_os" according to config` + wrong_alias_again "os" // want `import "os" imported as "wrong_alias_again" but must be "std_os" according to config` - wrong "github.com/pkg/errors" // ERROR `import "github.com/pkg/errors" imported as "wrong" but must be "pkgerr" according to config` + wrong "github.com/pkg/errors" // want `import "github.com/pkg/errors" imported as "wrong" but must be "pkgerr" according to config` ) func ImportAsStrictWrongAlias() { diff --git a/test/testdata/ineffassign.go b/test/testdata/ineffassign.go index 96f7c9491d73..7d4d6bd80382 100644 --- a/test/testdata/ineffassign.go +++ b/test/testdata/ineffassign.go @@ -7,7 +7,7 @@ func _() { x := math.MinInt8 for { _ = x - x = 0 // ERROR "ineffectual assignment to x" + x = 0 // want "ineffectual assignment to x" x = 0 } } diff --git a/test/testdata/interfacer.go b/test/testdata/interfacer.go index c53b84a54b44..59e64e35656c 100644 --- a/test/testdata/interfacer.go +++ b/test/testdata/interfacer.go @@ -3,6 +3,6 @@ package testdata import "io" -func InterfacerCheck(f io.ReadCloser) { // ERROR "`f` can be `io.Closer`" +func InterfacerCheck(f io.ReadCloser) { // want "`f` can be `io.Closer`" f.Close() } diff --git a/test/testdata/ireturn_allow.go b/test/testdata/ireturn_allow.go index 3667f1c985dd..0ffc4d75f85a 100644 --- a/test/testdata/ireturn_allow.go +++ b/test/testdata/ireturn_allow.go @@ -1,5 +1,6 @@ //golangcitest:args -Eireturn //golangcitest:config_path testdata/configs/ireturn.yml +//golangcitest:expected_exitcode 0 package testdata type ( diff --git a/test/testdata/ireturn_default.go b/test/testdata/ireturn_default.go index 0b6fb80dbc40..e2b4c4364e53 100644 --- a/test/testdata/ireturn_default.go +++ b/test/testdata/ireturn_default.go @@ -6,7 +6,7 @@ type ( ireturnDoer struct{} ) -func New() IreturnDoer { return new(ireturnDoer) } // ERROR `New returns interface \(command-line-arguments.IreturnDoer\)` +func New() IreturnDoer { return new(ireturnDoer) } // want `New returns interface \(command-line-arguments.IreturnDoer\)` func (d *ireturnDoer) Do() { /*...*/ } func Newer() *ireturnDoer { return new(ireturnDoer) } diff --git a/test/testdata/ireturn_reject_stdlib.go b/test/testdata/ireturn_reject_stdlib.go index 3bda7febc9e6..8f09e785cf68 100644 --- a/test/testdata/ireturn_reject_stdlib.go +++ b/test/testdata/ireturn_reject_stdlib.go @@ -7,7 +7,7 @@ import ( "io" ) -func NewWriter() io.Writer { // ERROR `NewWriter returns interface \(io.Writer\)` +func NewWriter() io.Writer { // want `NewWriter returns interface \(io.Writer\)` var buf bytes.Buffer return &buf } diff --git a/test/testdata/lll.go b/test/testdata/lll.go index 331e78d5aad6..001da2e3dcb3 100644 --- a/test/testdata/lll.go +++ b/test/testdata/lll.go @@ -3,5 +3,5 @@ package testdata func Lll() { - // In my experience, long lines are the lines with comments, not the code. So this is a long comment // ERROR "line is 138 characters" + // In my experience, long lines are the lines with comments, not the code. So this is a long comment // want "line is 137 characters" } diff --git a/test/testdata/maintidx.go b/test/testdata/maintidx.go index 68106aa090d9..ce26ab213a8e 100644 --- a/test/testdata/maintidx.go +++ b/test/testdata/maintidx.go @@ -4,7 +4,7 @@ package testdata func over20() { } -func under20() { // ERROR "Function name: under20, Cyclomatic Complexity: 76, Halstead Volume: 1636.00, Maintainability Index: 17" +func under20() { // want "Function name: under20, Cyclomatic Complexity: 76, Halstead Volume: 1636.00, Maintainability Index: 17" for true { if false { if false { diff --git a/test/testdata/maintidx_under_100.go b/test/testdata/maintidx_under_100.go index d8fe448663cf..72af2e3959c4 100644 --- a/test/testdata/maintidx_under_100.go +++ b/test/testdata/maintidx_under_100.go @@ -2,10 +2,10 @@ //golangcitest:config_path testdata/configs/maintidx_under_100.yml package testdata -func over20() { // ERROR "Function name: over20, Cyclomatic Complexity: 1, Halstead Volume: 8.00, Maintainability Index: 86" +func over20() { // want "Function name: over20, Cyclomatic Complexity: 1, Halstead Volume: 8.00, Maintainability Index: 86" } -func under20() { // ERROR "Function name: under20, Cyclomatic Complexity: 76, Halstead Volume: 1636.00, Maintainability Index: 17" +func under20() { // want "Function name: under20, Cyclomatic Complexity: 76, Halstead Volume: 1636.00, Maintainability Index: 17" for true { if false { if false { diff --git a/test/testdata/makezero.go b/test/testdata/makezero.go index 125603595c59..a654b94a548c 100644 --- a/test/testdata/makezero.go +++ b/test/testdata/makezero.go @@ -5,13 +5,13 @@ import "math" func Makezero() []int { x := make([]int, math.MaxInt8) - return append(x, 1) // ERROR "append to slice `x` with non-zero initialized length" + return append(x, 1) // want "append to slice `x` with non-zero initialized length" } func MakezeroMultiple() []int { x, y := make([]int, math.MaxInt8), make([]int, math.MaxInt8) - return append(x, // ERROR "append to slice `x` with non-zero initialized length" - append(y, 1)...) // ERROR "append to slice `y` with non-zero initialized length" + return append(x, // want "append to slice `x` with non-zero initialized length" + append(y, 1)...) // want "append to slice `y` with non-zero initialized length" } func MakezeroNolint() []int { diff --git a/test/testdata/makezero_always.go b/test/testdata/makezero_always.go index 89093e0fc7b0..80396b446074 100644 --- a/test/testdata/makezero_always.go +++ b/test/testdata/makezero_always.go @@ -5,7 +5,7 @@ package testdata import "math" func MakezeroAlways() []int { - x := make([]int, math.MaxInt8) // ERROR "slice `x` does not have non-zero initial length" + x := make([]int, math.MaxInt8) // want "slice `x` does not have non-zero initial length" return x } diff --git a/test/testdata/maligned.go b/test/testdata/maligned.go index 74586588744d..553fd53ac656 100644 --- a/test/testdata/maligned.go +++ b/test/testdata/maligned.go @@ -1,7 +1,7 @@ //golangcitest:args -Emaligned --internal-cmd-test package testdata -type BadAlignedStruct struct { // ERROR "struct of size 24 bytes could be of size 16 bytes" +type BadAlignedStruct struct { // want "struct of size 24 bytes could be of size 16 bytes" B bool I int B2 bool diff --git a/test/testdata/misspell.go b/test/testdata/misspell.go index 3e9f43d1c97c..a866f117a37f 100644 --- a/test/testdata/misspell.go +++ b/test/testdata/misspell.go @@ -3,7 +3,7 @@ package testdata func Misspell() { - // comment with incorrect spelling: occured // ERROR "`occured` is a misspelling of `occurred`" + // comment with incorrect spelling: occured // want "`occured` is a misspelling of `occurred`" } // the word langauge should be ignored here: it's set in config diff --git a/test/testdata/nakedret.go b/test/testdata/nakedret.go index eac9ff533a24..fc9e90432e2a 100644 --- a/test/testdata/nakedret.go +++ b/test/testdata/nakedret.go @@ -31,7 +31,7 @@ func NakedretIssue() (a int, b string) { // ... // len of this function is 31 - return // ERROR "naked return in func `NakedretIssue` with 31 lines of code" + return // want "naked return in func `NakedretIssue` with 31 lines of code" } func NoNakedretIssue() (a int, b string) { diff --git a/test/testdata/nestif.go b/test/testdata/nestif.go index 5dc7da326801..e930f13c4e51 100644 --- a/test/testdata/nestif.go +++ b/test/testdata/nestif.go @@ -5,19 +5,19 @@ package testdata func _() { var b1, b2, b3, b4 bool - if b1 { // ERROR "`if b1` has complex nested blocks \\(complexity: 1\\)" + if b1 { // want "`if b1` has complex nested blocks \\(complexity: 1\\)" if b2 { // +1 } } - if b1 { // ERROR "`if b1` has complex nested blocks \\(complexity: 3\\)" + if b1 { // want "`if b1` has complex nested blocks \\(complexity: 3\\)" if b2 { // +1 if b3 { // +2 } } } - if b1 { // ERROR "`if b1` has complex nested blocks \\(complexity: 5\\)" + if b1 { // want "`if b1` has complex nested blocks \\(complexity: 5\\)" if b2 { // +1 } else if b3 { // +1 if b4 { // +2 @@ -26,7 +26,7 @@ func _() { } } - if b1 { // ERROR "`if b1` has complex nested blocks \\(complexity: 9\\)" + if b1 { // want "`if b1` has complex nested blocks \\(complexity: 9\\)" if b2 { // +1 if b3 { // +2 } @@ -40,7 +40,7 @@ func _() { } } - if b1 == b2 == b3 { // ERROR "`if b1 == b2 == b3` has complex nested blocks \\(complexity: 1\\)" + if b1 == b2 == b3 { // want "`if b1 == b2 == b3` has complex nested blocks \\(complexity: 1\\)" if b4 { // +1 } } diff --git a/test/testdata/nilerr.go b/test/testdata/nilerr.go index 1b71ce19cf4b..98597c9a0c52 100644 --- a/test/testdata/nilerr.go +++ b/test/testdata/nilerr.go @@ -6,7 +6,7 @@ import "os" func nilErr1() error { err := nilErrDo() if err == nil { - return err // ERROR `error is nil \(line 7\) but it returns error` + return err // want `error is nil \(line 7\) but it returns error` } return nil @@ -15,7 +15,7 @@ func nilErr1() error { func nilErr2() error { err := nilErrDo() if err == nil { - return err // ERROR `error is nil \(line 16\) but it returns error` + return err // want `error is nil \(line 16\) but it returns error` } return nil @@ -24,7 +24,7 @@ func nilErr2() error { func nilErr3() error { err := nilErrDo() if err != nil { - return nil // ERROR `error is not nil \(line 25\) but it returns nil` + return nil // want `error is not nil \(line 25\) but it returns nil` } return nil diff --git a/test/testdata/nilnil.go b/test/testdata/nilnil.go index 0a174d5b693e..fd62faf58cf4 100644 --- a/test/testdata/nilnil.go +++ b/test/testdata/nilnil.go @@ -9,70 +9,70 @@ import ( type User struct{} func primitivePtr() (*int, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func structPtr() (*User, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func emptyStructPtr() (*struct{}, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func anonymousStructPtr() (*struct{ ID string }, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func chBi() (chan int, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func chIn() (chan<- int, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func chOut() (<-chan int, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func fun() (func(), error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func funWithArgsAndResults() (func(a, b, c int) (int, int), error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func iface() (interface{}, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func m1() (map[int]int, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func m2() (map[int]*User, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } type Storage struct{} func (s *Storage) GetUser() (*User, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func ifReturn() (*User, error) { var s Storage if _, err := s.GetUser(); err != nil { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } return new(User), nil } func forReturn() (*User, error) { for { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } } @@ -80,15 +80,15 @@ func multipleReturn() (*User, error) { var s Storage if _, err := s.GetUser(); err != nil { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } if _, err := s.GetUser(); err != nil { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } if _, err := s.GetUser(); err != nil { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } return new(User), nil @@ -96,11 +96,11 @@ func multipleReturn() (*User, error) { func nested() { _ = func() (*User, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } _, _ = func() (*User, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" }() } @@ -111,7 +111,7 @@ func deeplyNested() { _ = func() (*User, error) { _ = func() {} _ = func() int { return 0 } - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } } return 0 @@ -128,23 +128,23 @@ type ( ) func structPtrType() (StructPtrType, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func primitivePtrType() (PrimitivePtrType, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func channelType() (ChannelType, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func funcType() (FuncType, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func ifaceType() (Checker, error) { - return nil, nil // ERROR "return both the `nil` error and invalid value: use a sentinel error instead" + return nil, nil // want "return both the `nil` error and invalid value: use a sentinel error instead" } func withoutArgs() {} diff --git a/test/testdata/nlreturn-block-size.go b/test/testdata/nlreturn-block-size.go index 1321ab630af6..85cac5398192 100644 --- a/test/testdata/nlreturn-block-size.go +++ b/test/testdata/nlreturn-block-size.go @@ -15,7 +15,7 @@ func foo1(n int) int { if n == 1 { n2 := n * n n3 := n2 * n - return n3 // ERROR "return with no blank line before" + return n3 // want "return with no blank line before" } return 1 diff --git a/test/testdata/nlreturn.go b/test/testdata/nlreturn.go index 884ef7756c42..7580062e485a 100644 --- a/test/testdata/nlreturn.go +++ b/test/testdata/nlreturn.go @@ -17,7 +17,7 @@ func cha() { { a := 1 _ = a - return // ERROR "return with no blank line before" + return // want "return with no blank line before" } return @@ -29,9 +29,9 @@ func cha() { { a := 1 _ = a - return // ERROR "return with no blank line before" + return // want "return with no blank line before" } - return // ERROR "return with no blank line before" + return // want "return with no blank line before" } } @@ -40,11 +40,11 @@ func baz() { case 0: a := 1 _ = a - fallthrough // ERROR "fallthrough with no blank line before" + fallthrough // want "fallthrough with no blank line before" case 1: a := 1 _ = a - break // ERROR "break with no blank line before" + break // want "break with no blank line before" case 2: break } @@ -60,7 +60,7 @@ func foo() int { for range v { return 0 } - return 0 // ERROR "return with no blank line before" + return 0 // want "return with no blank line before" } o := []int{ @@ -76,7 +76,7 @@ func bar() int { if o == 0 { return 1 } - return 0 // ERROR "return with no blank line before" + return 0 // want "return with no blank line before" } return o @@ -94,7 +94,7 @@ func bugNoAssignSmthHandling() string { }{ "foo", } - return o.foo // ERROR "return with no blank line before" + return o.foo // want "return with no blank line before" case 1: o := struct { @@ -115,7 +115,7 @@ func bugNoExprSmthHandling(string) { bugNoExprSmthHandling( "", ) - return // ERROR "return with no blank line before" + return // want "return with no blank line before" case 1: bugNoExprSmthHandling( @@ -132,7 +132,7 @@ func bugNoDeferSmthHandling(string) { defer bugNoDeferSmthHandling( "", ) - return // ERROR "return with no blank line before" + return // want "return with no blank line before" case 1: defer bugNoDeferSmthHandling( @@ -149,7 +149,7 @@ func bugNoGoSmthHandling(string) { go bugNoGoSmthHandling( "", ) - return // ERROR "return with no blank line before" + return // want "return with no blank line before" case 1: go bugNoGoSmthHandling( diff --git a/test/testdata/noctx.go b/test/testdata/noctx.go index 70323c4f574c..8b077a566206 100644 --- a/test/testdata/noctx.go +++ b/test/testdata/noctx.go @@ -13,25 +13,25 @@ func Noctx() { cli := &http.Client{} ctx := context.Background() - http.Get(url) // ERROR `net/http\.Get must not be called` + http.Get(url) // want `net/http\.Get must not be called` _ = http.Get // OK f := http.Get // OK - f(url) // ERROR `net/http\.Get must not be called` + f(url) // want `net/http\.Get must not be called` - http.Head(url) // ERROR `net/http\.Head must not be called` - http.Post(url, "", nil) // ERROR `net/http\.Post must not be called` - http.PostForm(url, nil) // ERROR `net/http\.PostForm must not be called` + http.Head(url) // want `net/http\.Head must not be called` + http.Post(url, "", nil) // want `net/http\.Post must not be called` + http.PostForm(url, nil) // want `net/http\.PostForm must not be called` - cli.Get(url) // ERROR `\(\*net/http\.Client\)\.Get must not be called` + cli.Get(url) // want `\(\*net/http\.Client\)\.Get must not be called` _ = cli.Get // OK m := cli.Get // OK - m(url) // ERROR `\(\*net/http\.Client\)\.Get must not be called` + m(url) // want `\(\*net/http\.Client\)\.Get must not be called` - cli.Head(url) // ERROR `\(\*net/http\.Client\)\.Head must not be called` - cli.Post(url, "", nil) // ERROR `\(\*net/http\.Client\)\.Post must not be called` - cli.PostForm(url, nil) // ERROR `\(\*net/http\.Client\)\.PostForm must not be called` + cli.Head(url) // want `\(\*net/http\.Client\)\.Head must not be called` + cli.Post(url, "", nil) // want `\(\*net/http\.Client\)\.Post must not be called` + cli.PostForm(url, nil) // want `\(\*net/http\.Client\)\.PostForm must not be called` - req, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` cli.Do(req) req2, _ := http.NewRequestWithContext(ctx, http.MethodPost, url, nil) // OK @@ -44,7 +44,7 @@ func Noctx() { f2 := func(req *http.Request, ctx context.Context) *http.Request { return req } - req4, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req4, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req4 = f2(req4, ctx) req41, _ := http.NewRequest(http.MethodPost, url, nil) // OK @@ -52,21 +52,21 @@ func Noctx() { req41 = f2(req41, ctx) newRequest := http.NewRequest - req5, _ := newRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req5, _ := newRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` cli.Do(req5) req51, _ := newRequest(http.MethodPost, url, nil) // OK req51 = req51.WithContext(ctx) cli.Do(req51) - req52, _ := newRequestPkg(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req52, _ := newRequestPkg(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` cli.Do(req52) type MyRequest = http.Request f3 := func(req *MyRequest, ctx context.Context) *MyRequest { return req } - req6, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req6, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req6 = f3(req6, ctx) req61, _ := http.NewRequest(http.MethodPost, url, nil) // OK @@ -77,7 +77,7 @@ func Noctx() { f4 := func(req *MyRequest2, ctx context.Context) *MyRequest2 { return req } - req7, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req7, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req71 := MyRequest2(*req7) f4(&req71, ctx) @@ -87,7 +87,7 @@ func Noctx() { f4(&req73, ctx) req8, _ := func() (*http.Request, error) { - return http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + return http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` }() cli.Do(req8) @@ -101,30 +101,30 @@ func Noctx() { f5 := func(req, req2 *http.Request, ctx context.Context) (*http.Request, *http.Request) { return req, req2 } - req9, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req9, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req9, _ = f5(req9, req9, ctx) req91, _ := http.NewRequest(http.MethodPost, url, nil) // OK req91 = req91.WithContext(ctx) req9, _ = f5(req91, req91, ctx) - req10, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` - req11, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req10, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req11, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req10, req11 = f5(req10, req11, ctx) - req101, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req101, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req111, _ := http.NewRequest(http.MethodPost, url, nil) // OK req111 = req111.WithContext(ctx) req101, req111 = f5(req101, req111, ctx) func() (*http.Request, *http.Request) { - req12, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` - req13, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req12, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req13, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` return req12, req13 }() func() (*http.Request, *http.Request) { - req14, _ := http.NewRequest(http.MethodPost, url, nil) // ERROR `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` + req14, _ := http.NewRequest(http.MethodPost, url, nil) // want `should rewrite http.NewRequestWithContext or add \(\*Request\).WithContext` req15, _ := http.NewRequest(http.MethodPost, url, nil) // OK req15 = req15.WithContext(ctx) diff --git a/test/testdata/nolintlint.go b/test/testdata/nolintlint.go index da5537f0a045..719576b77531 100644 --- a/test/testdata/nolintlint.go +++ b/test/testdata/nolintlint.go @@ -6,9 +6,9 @@ package testdata import "fmt" func Foo() { - fmt.Println("not specific") //nolint // ERROR "directive `.*` should mention specific linter such as `//nolint:my-linter`" - fmt.Println("not machine readable") // nolint // ERROR "directive `.*` should be written as `//nolint`" - fmt.Println("extra spaces") // nolint:deadcode // because // ERROR "directive `.*` should not have more than one leading space" + fmt.Println("not specific") //nolint // want "directive `.*` should mention specific linter such as `//nolint:my-linter`" + fmt.Println("not machine readable") // nolint // want "directive `.*` should be written as `//nolint`" + fmt.Println("extra spaces") // nolint:deadcode // because // want "directive `.*` should not have more than one leading space" // test expanded range //nolint:misspell // deliberate misspelling to trigger nolintlint diff --git a/test/testdata/nolintlint_unused.go b/test/testdata/nolintlint_unused.go index 34c32ae994de..285d341edf09 100644 --- a/test/testdata/nolintlint_unused.go +++ b/test/testdata/nolintlint_unused.go @@ -6,7 +6,7 @@ package testdata import "fmt" func Foo() { - fmt.Println("unused") //nolint:all // ERROR "directive `//nolint .*` is unused" - fmt.Println("unused,specific") //nolint:varcheck // ERROR "directive `//nolint:varcheck .*` is unused for linter varcheck" + fmt.Println("unused") //nolint:all // want "directive `//nolint .*` is unused" + fmt.Println("unused,specific") //nolint:varcheck // want "directive `//nolint:varcheck .*` is unused for linter varcheck" fmt.Println("not run") //nolint:unparam // unparam is not run so this is ok } diff --git a/test/testdata/nonamedreturns.go b/test/testdata/nonamedreturns.go index 8de01ae121bd..216664004c85 100644 --- a/test/testdata/nonamedreturns.go +++ b/test/testdata/nonamedreturns.go @@ -10,7 +10,7 @@ func simple() (err error) { return } -func twoReturnParams() (i int, err error) { // ERROR `named return "i" with type "int" found` +func twoReturnParams() (i int, err error) { // want `named return "i" with type "int" found` defer func() { i = 0 err = nil @@ -32,7 +32,7 @@ func customName() (myName error) { return } -func errorIsNoAssigned() (err error) { // ERROR `named return "err" with type "error" found` +func errorIsNoAssigned() (err error) { // want `named return "err" with type "error" found` defer func() { _ = err processError(err) @@ -46,7 +46,7 @@ func errorIsNoAssigned() (err error) { // ERROR `named return "err" with type "e return } -func shadowVariable() (err error) { // ERROR `named return "err" with type "error" found` +func shadowVariable() (err error) { // want `named return "err" with type "error" found` defer func() { err := errors.New("xxx") _ = err @@ -65,7 +65,7 @@ func shadowVariableButAssign() (err error) { return } -func shadowVariable2() (err error) { // ERROR `named return "err" with type "error" found` +func shadowVariable2() (err error) { // want `named return "err" with type "error" found` defer func() { a, err := doSomething() _ = a @@ -85,7 +85,7 @@ func errorAliasIsTheSame() (err errorAlias) { type myError error // linter doesn't check underlying type (yet?) -func customTypeWithErrorUnderline() (err myError) { // ERROR `named return "err" with type "myError" found` +func customTypeWithErrorUnderline() (err myError) { // want `named return "err" with type "myError" found` defer func() { err = nil }() @@ -94,7 +94,7 @@ func customTypeWithErrorUnderline() (err myError) { // ERROR `named return "err" type myError2 interface{ error } // linter doesn't check interfaces -func customTypeWithTheSameInterface() (err myError2) { // ERROR `named return "err" with type "myError2" found` +func customTypeWithTheSameInterface() (err myError2) { // want `named return "err" with type "myError2" found` defer func() { err = nil }() @@ -107,7 +107,7 @@ type myError3 struct{} // linter doesn't check interfaces func (m myError3) Error() string { return "" } -func customTypeImplementingErrorInterface() (err myError3) { // ERROR `named return "err" with type "myError3" found` +func customTypeImplementingErrorInterface() (err myError3) { // want `named return "err" with type "myError3" found` defer func() { err = struct{}{} }() @@ -118,7 +118,7 @@ func shadowErrorType() { type error interface { // linter understands that this is not built-in error, even if it has the same name Error() string } - do := func() (err error) { // ERROR `named return "err" with type "error" found` + do := func() (err error) { // want `named return "err" with type "error" found` defer func() { err = nil }() @@ -150,14 +150,14 @@ func twoErrorsSeparated() (err1 error, err2 error) { return } -func errorSlice() (err []error) { // ERROR `named return "err" with type "\[\]error" found` +func errorSlice() (err []error) { // want `named return "err" with type "\[\]error" found` defer func() { err = nil }() return } -func deferWithVariable() (err error) { // ERROR `named return "err" with type "error" found` +func deferWithVariable() (err error) { // want `named return "err" with type "error" found` f := func() { err = nil } @@ -165,7 +165,7 @@ func deferWithVariable() (err error) { // ERROR `named return "err" with type "e return } -func uberMultierr() (err error) { // ERROR `named return "err" with type "error" found` +func uberMultierr() (err error) { // want `named return "err" with type "error" found` defer func() { multierrAppendInto(&err, nil) // linter doesn't allow it (yet?) }() @@ -243,7 +243,7 @@ var goodFuncLiteral = func() (err error) { return } -var badFuncLiteral = func() (err error) { // ERROR `named return "err" with type "error" found` +var badFuncLiteral = func() (err error) { // want `named return "err" with type "error" found` defer func() { _ = err }() @@ -269,7 +269,7 @@ func (x) goodMethod() (err error) { return } -func (x) badMethod() (err error) { // ERROR `named return "err" with type "error" found` +func (x) badMethod() (err error) { // want `named return "err" with type "error" found` defer func() { _ = err }() diff --git a/test/testdata/nonamedreturns_custom.go b/test/testdata/nonamedreturns_custom.go index c4bb4f6f87be..9040e313cf74 100644 --- a/test/testdata/nonamedreturns_custom.go +++ b/test/testdata/nonamedreturns_custom.go @@ -20,7 +20,7 @@ var d = func() error { return nil } -var e = func() (err error) { // ERROR `named return "err" with type "error" found` +var e = func() (err error) { // want `named return "err" with type "error" found` err = nil return } @@ -29,7 +29,7 @@ var e2 = func() (_ error) { return } -func deferWithError() (err error) { // ERROR `named return "err" with type "error" found` +func deferWithError() (err error) { // want `named return "err" with type "error" found` defer func() { err = nil // use flag to allow this }() @@ -45,7 +45,7 @@ var ( return nil } - h = func() (err error) { // ERROR `named return "err" with type "error" found` + h = func() (err error) { // want `named return "err" with type "error" found` err = nil return } @@ -62,11 +62,11 @@ func funcDefintionImpl(arg1, arg2 interface{}) (int, error) { return 0, nil } -func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // ERROR `named return "num" with type "int" found` +func funcDefintionImpl2(arg1, arg2 interface{}) (num int, err error) { // want `named return "num" with type "int" found` return 0, nil } -func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // ERROR `named return "num" with type "int" found` +func funcDefintionImpl3(arg1, arg2 interface{}) (num int, _ error) { // want `named return "num" with type "int" found` return 0, nil } @@ -74,7 +74,7 @@ func funcDefintionImpl4(arg1, arg2 interface{}) (_ int, _ error) { return 0, nil } -var funcVar = func() (msg string) { // ERROR `named return "msg" with type "string" found` +var funcVar = func() (msg string) { // want `named return "msg" with type "string" found` msg = "c" return msg } @@ -103,12 +103,12 @@ func good(i string) string { return i } -func bad(i string, a, b int) (ret1 string, ret2 interface{}, ret3, ret4 int, ret5 asdf) { // ERROR `named return "ret1" with type "string" found` +func bad(i string, a, b int) (ret1 string, ret2 interface{}, ret3, ret4 int, ret5 asdf) { // want `named return "ret1" with type "string" found` x := "dummy" return fmt.Sprintf("%s", x), nil, 1, 2, asdf{} } -func bad2() (msg string, err error) { // ERROR `named return "msg" with type "string" found` +func bad2() (msg string, err error) { // want `named return "msg" with type "string" found` msg = "" err = nil return @@ -120,6 +120,6 @@ func myLog(format string, args ...interface{}) { type obj struct{} -func (o *obj) func1() (err error) { return nil } // ERROR `named return "err" with type "error" found` +func (o *obj) func1() (err error) { return nil } // want `named return "err" with type "error" found` func (o *obj) func2() (_ error) { return nil } diff --git a/test/testdata/nosnakecase.go b/test/testdata/nosnakecase.go index d74e20b541ab..5a0d207337af 100644 --- a/test/testdata/nosnakecase.go +++ b/test/testdata/nosnakecase.go @@ -3,147 +3,147 @@ package testdata import ( _ "fmt" - f_m_t "fmt" // ERROR "f_m_t contains underscore. You should use mixedCap or MixedCap." + f_m_t "fmt" // want "f_m_t contains underscore. You should use mixedCap or MixedCap." ) // global variable name with underscore. -var v_v = 0 // ERROR "v_v contains underscore. You should use mixedCap or MixedCap." +var v_v = 0 // want "v_v contains underscore. You should use mixedCap or MixedCap." // global constant name with underscore. -const c_c = 0 // ERROR "c_c contains underscore. You should use mixedCap or MixedCap." +const c_c = 0 // want "c_c contains underscore. You should use mixedCap or MixedCap." // struct name with underscore. -type S_a struct { // ERROR "S_a contains underscore. You should use mixedCap or MixedCap." +type S_a struct { // want "S_a contains underscore. You should use mixedCap or MixedCap." fi int } // non-exported struct field name with underscore. type Sa struct { - fi_a int // // ERROR "fi_a contains underscore. You should use mixedCap or MixedCap." + fi_a int // // want "fi_a contains underscore. You should use mixedCap or MixedCap." } // function as struct field, with parameter name with underscore. type Sb struct { - fib func(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + fib func(p_a int) // want "p_a contains underscore. You should use mixedCap or MixedCap." } // exported struct field with underscore. type Sc struct { - Fi_A int // ERROR "Fi_A contains underscore. You should use mixedCap or MixedCap." + Fi_A int // want "Fi_A contains underscore. You should use mixedCap or MixedCap." } // function as struct field, with return name with underscore. type Sd struct { - fib func(p int) (r_a int) // ERROR "r_a contains underscore. You should use mixedCap or MixedCap." + fib func(p int) (r_a int) // want "r_a contains underscore. You should use mixedCap or MixedCap." } // interface name with underscore. -type I_a interface { // ERROR "I_a contains underscore. You should use mixedCap or MixedCap." +type I_a interface { // want "I_a contains underscore. You should use mixedCap or MixedCap." fn(p int) } // interface with parameter name with underscore. type Ia interface { - fn(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + fn(p_a int) // want "p_a contains underscore. You should use mixedCap or MixedCap." } // interface with parameter name with underscore. type Ib interface { - Fn(p_a int) // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + Fn(p_a int) // want "p_a contains underscore. You should use mixedCap or MixedCap." } // function as struct field, with return name with underscore. type Ic interface { - Fn_a() // ERROR "Fn_a contains underscore. You should use mixedCap or MixedCap." + Fn_a() // want "Fn_a contains underscore. You should use mixedCap or MixedCap." } // interface with return name with underscore. type Id interface { - Fn() (r_a int) // ERROR "r_a contains underscore. You should use mixedCap or MixedCap." + Fn() (r_a int) // want "r_a contains underscore. You should use mixedCap or MixedCap." } // function name with underscore. -func f_a() {} // ERROR "f_a contains underscore. You should use mixedCap or MixedCap." +func f_a() {} // want "f_a contains underscore. You should use mixedCap or MixedCap." // function's parameter name with underscore. -func fb(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func fb(p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." // named return with underscore. -func fc() (r_b int) { // ERROR "r_b contains underscore. You should use mixedCap or MixedCap." +func fc() (r_b int) { // want "r_b contains underscore. You should use mixedCap or MixedCap." return 0 } // local variable (short declaration) with underscore. func fd(p int) int { - v_b := p * 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + v_b := p * 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b // want "v_b contains underscore. You should use mixedCap or MixedCap." } // local constant with underscore. func fe(p int) int { - const v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + const v_b = 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b * p // want "v_b contains underscore. You should use mixedCap or MixedCap." } // local variable with underscore. func ff(p int) int { - var v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + var v_b = 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b * p // want "v_b contains underscore. You should use mixedCap or MixedCap." } // inner function, parameter name with underscore. func fg() { - fgl := func(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." + fgl := func(p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." fgl(1) } type Foo struct{} // method name with underscore. -func (f Foo) f_a() {} // ERROR "f_a contains underscore. You should use mixedCap or MixedCap." +func (f Foo) f_a() {} // want "f_a contains underscore. You should use mixedCap or MixedCap." // method's parameter name with underscore. -func (f Foo) fb(p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func (f Foo) fb(p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." // named return with underscore. -func (f Foo) fc() (r_b int) { return 0 } // ERROR "r_b contains underscore. You should use mixedCap or MixedCap." +func (f Foo) fc() (r_b int) { return 0 } // want "r_b contains underscore. You should use mixedCap or MixedCap." // local variable (short declaration) with underscore. func (f Foo) fd(p int) int { - v_b := p * 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + v_b := p * 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b // want "v_b contains underscore. You should use mixedCap or MixedCap." } // local constant with underscore. func (f Foo) fe(p int) int { - const v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + const v_b = 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b * p // want "v_b contains underscore. You should use mixedCap or MixedCap." } // local variable with underscore. func (f Foo) ff(p int) int { - var v_b = 2 // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + var v_b = 2 // want "v_b contains underscore. You should use mixedCap or MixedCap." - return v_b * p // ERROR "v_b contains underscore. You should use mixedCap or MixedCap." + return v_b * p // want "v_b contains underscore. You should use mixedCap or MixedCap." } -func fna(a, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func fna(a, p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." -func fna1(a string, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func fna1(a string, p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." -func fnb(a, b, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func fnb(a, b, p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." -func fnb1(a, b string, p_a int) {} // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." +func fnb1(a, b string, p_a int) {} // want "p_a contains underscore. You should use mixedCap or MixedCap." func fnd( - p_a int, // ERROR "p_a contains underscore. You should use mixedCap or MixedCap." - p_b int, // ERROR "p_b contains underscore. You should use mixedCap or MixedCap." - p_c int, // ERROR "p_c contains underscore. You should use mixedCap or MixedCap." + p_a int, // want "p_a contains underscore. You should use mixedCap or MixedCap." + p_b int, // want "p_b contains underscore. You should use mixedCap or MixedCap." + p_c int, // want "p_c contains underscore. You should use mixedCap or MixedCap." ) { - f_m_t.Println("") // ERROR "f_m_t contains underscore. You should use mixedCap or MixedCap." + f_m_t.Println("") // want "f_m_t contains underscore. You should use mixedCap or MixedCap." } diff --git a/test/testdata/nosprintfhostport.go b/test/testdata/nosprintfhostport.go index 36f23a4a3653..065519e7de5f 100644 --- a/test/testdata/nosprintfhostport.go +++ b/test/testdata/nosprintfhostport.go @@ -28,20 +28,20 @@ func _() { _ = fmt.Sprintf("http://example.com:9211") - _ = fmt.Sprintf("gopher://%s:%d", "myHost", 70) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("gopher://%s:%d", "myHost", 70) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("telnet+ssl://%s:%d", "myHost", 23) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("telnet+ssl://%s:%d", "myHost", 23) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("weird3.6://%s:%d", "myHost", 23) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("weird3.6://%s:%d", "myHost", 23) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("https://user@%s:%d", "myHost", 8443) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("https://user@%s:%d", "myHost", 8443) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("postgres://%s:%s@%s:5050/%s", "foo", "bar", "baz", "qux") // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("postgres://%s:%s@%s:5050/%s", "foo", "bar", "baz", "qux") // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("https://%s:%d", "myHost", 8443) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("https://%s:%d", "myHost", 8443) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" - _ = fmt.Sprintf("https://%s:9211", "myHost") // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("https://%s:9211", "myHost") // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" ip := "fd00::1" - _ = fmt.Sprintf("http://%s:1936/healthz", ip) // ERROR "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" + _ = fmt.Sprintf("http://%s:1936/healthz", ip) // want "host:port in url should be constructed with net.JoinHostPort and not directly with fmt.Sprintf" } diff --git a/test/testdata/notcompiles/typecheck.go b/test/testdata/notcompiles/typecheck.go index ec8a56b53a40..9b498d0e98e6 100644 --- a/test/testdata/notcompiles/typecheck.go +++ b/test/testdata/notcompiles/typecheck.go @@ -1,5 +1,5 @@ //golangcitest:args -Etypecheck package testdata -fun NotCompiles() { // ERROR "expected declaration, found.* fun" +fun NotCompiles() { // want "expected declaration, found.* fun" } diff --git a/test/testdata/notcompiles/typecheck_many_issues.go b/test/testdata/notcompiles/typecheck_many_issues.go index 10cf5e03b916..b103d65ebbc6 100644 --- a/test/testdata/notcompiles/typecheck_many_issues.go +++ b/test/testdata/notcompiles/typecheck_many_issues.go @@ -2,8 +2,8 @@ package testdata func TypeCheckBadCalls() { - typecheckNotExists1.F1() // ERROR "undeclared name: `typecheckNotExists1`" - typecheckNotExists2.F2() // ERROR "undeclared name: `typecheckNotExists2`" - typecheckNotExists3.F3() // ERROR "undeclared name: `typecheckNotExists3`" - typecheckNotExists4.F4() // ERROR "undeclared name: `typecheckNotExists4`" + typecheckNotExists1.F1() // want "undeclared name: `typecheckNotExists1`" + typecheckNotExists2.F2() // want "undeclared name: `typecheckNotExists2`" + typecheckNotExists3.F3() // want "undeclared name: `typecheckNotExists3`" + typecheckNotExists4.F4() // want "undeclared name: `typecheckNotExists4`" } diff --git a/test/testdata/paralleltest.go b/test/testdata/paralleltest.go index 5f3dac31379d..bd31b0549b88 100644 --- a/test/testdata/paralleltest.go +++ b/test/testdata/paralleltest.go @@ -21,4 +21,4 @@ func TestFunctionSuccessfulRangeTest(t *testing.T) { } } -func TestFunctionMissingCallToParallel(t *testing.T) {} // ERROR "Function TestFunctionMissingCallToParallel missing the call to method parallel" +func TestFunctionMissingCallToParallel(t *testing.T) {} // want "Function TestFunctionMissingCallToParallel missing the call to method parallel" diff --git a/test/testdata/prealloc.go b/test/testdata/prealloc.go index 8c55b9cf08f3..a17cbfcc2ce8 100644 --- a/test/testdata/prealloc.go +++ b/test/testdata/prealloc.go @@ -2,7 +2,7 @@ package testdata func Prealloc(source []int) []int { - var dest []int // ERROR "Consider pre-allocating `dest`" + var dest []int // want "Consider pre-allocating `dest`" for _, v := range source { dest = append(dest, v) } diff --git a/test/testdata/predeclared.go b/test/testdata/predeclared.go index b68e0893b866..2c722780ab30 100644 --- a/test/testdata/predeclared.go +++ b/test/testdata/predeclared.go @@ -2,9 +2,9 @@ package testdata func hello() { - var real int // ERROR "variable real has same name as predeclared identifier" + var real int // want "variable real has same name as predeclared identifier" a := A{} - copy := Clone(a) // ERROR "variable copy has same name as predeclared identifier" + copy := Clone(a) // want "variable copy has same name as predeclared identifier" // suppress any "declared but not used" errors _ = real @@ -24,4 +24,4 @@ func Clone(a A) A { } } -func recover() {} // ERROR "function recover has same name as predeclared identifier" +func recover() {} // want "function recover has same name as predeclared identifier" diff --git a/test/testdata/predeclared_custom.go b/test/testdata/predeclared_custom.go index 656c1f1bb4ec..6b54b5b8d3c5 100644 --- a/test/testdata/predeclared_custom.go +++ b/test/testdata/predeclared_custom.go @@ -5,7 +5,7 @@ package testdata func hello() { var real int a := A{} - copy := Clone(a) // ERROR "variable copy has same name as predeclared identifier" + copy := Clone(a) // want "variable copy has same name as predeclared identifier" // suppress any "declared but not used" errors _ = real @@ -14,7 +14,7 @@ func hello() { } type A struct { - true bool // ERROR "field true has same name as predeclared identifier" + true bool // want "field true has same name as predeclared identifier" foo int } diff --git a/test/testdata/promlinter.go b/test/testdata/promlinter.go index 269744531715..1ff3c711ff6c 100644 --- a/test/testdata/promlinter.go +++ b/test/testdata/promlinter.go @@ -8,26 +8,26 @@ import ( var ( _ = promauto.NewCounterVec( - prometheus.CounterOpts{ // ERROR `Metric: test_metric_name Error: counter metrics should have "_total" suffix` + prometheus.CounterOpts{ // want `Metric: test_metric_name Error: counter metrics should have "_total" suffix` Name: "test_metric_name", Help: "test help text", }, []string{}, ) _ = promauto.NewCounterVec( - prometheus.CounterOpts{ // ERROR "Metric: test_metric_total Error: no help text" + prometheus.CounterOpts{ // want "Metric: test_metric_total Error: no help text" Name: "test_metric_total", }, []string{}, ) _ = promauto.NewCounterVec( - prometheus.CounterOpts{ // ERROR `Metric: metric_type_in_name_counter_total Error: metric name should not include type 'counter'` + prometheus.CounterOpts{ // want `Metric: metric_type_in_name_counter_total Error: metric name should not include type 'counter'` Name: "metric_type_in_name_counter_total", Help: "foo", }, []string{}, ) - _ = prometheus.NewHistogram(prometheus.HistogramOpts{ // ERROR `Metric: test_duration_milliseconds Error: use base unit "seconds" instead of "milliseconds"` + _ = prometheus.NewHistogram(prometheus.HistogramOpts{ // want `Metric: test_duration_milliseconds Error: use base unit "seconds" instead of "milliseconds"` Name: "test_duration_milliseconds", Help: "", }) diff --git a/test/testdata/revive.go b/test/testdata/revive.go index 82bc267245ca..8f497a89d7c3 100644 --- a/test/testdata/revive.go +++ b/test/testdata/revive.go @@ -15,7 +15,7 @@ func SampleRevive(t *time.Duration) error { } } -func testReviveComplexity(s string) { // ERROR "cyclomatic: function testReviveComplexity has cyclomatic complexity 22" +func testReviveComplexity(s string) { // want "cyclomatic: function testReviveComplexity has cyclomatic complexity 22" if s == http.MethodGet || s == "2" || s == "3" || s == "4" || s == "5" || s == "6" || s == "7" { return } diff --git a/test/testdata/revive_default.go b/test/testdata/revive_default.go index e8986b1b3d74..a29d96c1e17e 100644 --- a/test/testdata/revive_default.go +++ b/test/testdata/revive_default.go @@ -9,7 +9,7 @@ import ( func testReviveDefault(t *time.Duration) error { if t == nil { return nil - } else { // ERROR "indent-error-flow: if block ends with a return statement, .*" + } else { // want "indent-error-flow: if block ends with a return statement, .*" return nil } } diff --git a/test/testdata/rowserrcheck.go b/test/testdata/rowserrcheck.go index 95c597afb1e5..6e9c68dc415e 100644 --- a/test/testdata/rowserrcheck.go +++ b/test/testdata/rowserrcheck.go @@ -8,7 +8,7 @@ import ( ) func RowsErrNotChecked(db *sql.DB) { - rows, _ := db.Query("select id from tb") // ERROR "rows.Err must be checked" + rows, _ := db.Query("select id from tb") // want "rows.Err must be checked" for rows.Next() { } diff --git a/test/testdata/scopelint.go b/test/testdata/scopelint.go index 931e31eaa1a4..3afd2f06aba5 100644 --- a/test/testdata/scopelint.go +++ b/test/testdata/scopelint.go @@ -8,7 +8,7 @@ func ScopelintTest() { var funcs []func() for _, val := range values { funcs = append(funcs, func() { - fmt.Println(val) // ERROR "Using the variable on range scope `val` in function literal" + fmt.Println(val) // want "Using the variable on range scope `val` in function literal" }) } for _, f := range funcs { diff --git a/test/testdata/sqlclosecheck.go b/test/testdata/sqlclosecheck.go index 8ad73a93c8fa..6bbe32914364 100644 --- a/test/testdata/sqlclosecheck.go +++ b/test/testdata/sqlclosecheck.go @@ -69,7 +69,7 @@ func rowsCorrectDefer() { } func rowsMissingClose() { - rows, err := db.QueryContext(ctx, "SELECT name FROM users WHERE age=?", age) // ERROR "Rows/Stmt was not closed" + rows, err := db.QueryContext(ctx, "SELECT name FROM users WHERE age=?", age) // want "Rows/Stmt was not closed" if err != nil { log.Fatal(err) } @@ -112,7 +112,7 @@ func rowsNonDeferClose() { } log.Printf("%s are %d years old", strings.Join(names, ", "), age) - rows.Close() // ERROR "Close should use defer" + rows.Close() // want "Close should use defer" } func rowsPassedAndClosed() { @@ -202,7 +202,7 @@ func stmtCorrectDefer() { func stmtMissingClose() { // In normal use, create one Stmt when your process starts. - stmt, err := db.PrepareContext(ctx, "SELECT username FROM users WHERE id = ?") // ERROR "Rows/Stmt was not closed" + stmt, err := db.PrepareContext(ctx, "SELECT username FROM users WHERE id = ?") // want "Rows/Stmt was not closed" if err != nil { log.Fatal(err) } @@ -240,7 +240,7 @@ func stmtNonDeferClose() { log.Printf("username is %s\n", username) } - stmt.Close() // ERROR "Close should use defer" + stmt.Close() // want "Close should use defer" } func stmtReturn() (*sql.Stmt, error) { diff --git a/test/testdata/staticcheck.go b/test/testdata/staticcheck.go index bf1b4e3962d4..2782ce148a2b 100644 --- a/test/testdata/staticcheck.go +++ b/test/testdata/staticcheck.go @@ -7,7 +7,7 @@ import ( func Staticcheck() { var x int - x = x // ERROR "self-assignment of x to x" + x = x // want "self-assignment of x to x" fmt.Printf("%d", x) } @@ -23,5 +23,5 @@ func StaticcheckNolintMegacheck() { func StaticcheckPrintf() { x := "dummy" - fmt.Printf("%d", x) // ERROR "SA5009: Printf format %d has arg #1 of wrong type" + fmt.Printf("%d", x) // want "SA5009: Printf format %d has arg #1 of wrong type" } diff --git a/test/testdata/staticcheck_in_megacheck.go b/test/testdata/staticcheck_in_megacheck.go index 7c98412727b6..355d2a38ac2b 100644 --- a/test/testdata/staticcheck_in_megacheck.go +++ b/test/testdata/staticcheck_in_megacheck.go @@ -5,7 +5,7 @@ import "fmt" func StaticcheckInMegacheck() { var x int - x = x // ERROR staticcheck "self-assignment of x to x" + x = x // want staticcheck:"self-assignment of x to x" fmt.Printf("%d", x) } @@ -21,6 +21,6 @@ func StaticcheckNolintMegacheckInMegacheck() { func Staticcheck2() { var x int - x = x // ERROR staticcheck "self-assignment of x to x" + x = x // want staticcheck:"self-assignment of x to x" fmt.Printf("%d", x) } diff --git a/test/testdata/structcheck.go b/test/testdata/structcheck.go index 8e403b9e27fa..88f06e4d9e48 100644 --- a/test/testdata/structcheck.go +++ b/test/testdata/structcheck.go @@ -2,5 +2,5 @@ package testdata type t struct { - unusedField int // ERROR "`unusedField` is unused" + unusedField int // want "`unusedField` is unused" } diff --git a/test/testdata/stylecheck.go b/test/testdata/stylecheck.go index 9df377ee8fd1..44a8cd1f723a 100644 --- a/test/testdata/stylecheck.go +++ b/test/testdata/stylecheck.go @@ -5,7 +5,7 @@ func Stylecheck(x int) { switch x { case 1: return - default: // ERROR "ST1015: default case should be first or last in switch statement" + default: // want "ST1015: default case should be first or last in switch statement" return case 2: return @@ -27,7 +27,7 @@ func StylecheckNolintMegacheck(x int) { switch x { case 1: return - default: //nolint:megacheck // ERROR "ST1015: default case should be first or last in switch statement" + default: //nolint:megacheck // want "ST1015: default case should be first or last in switch statement" return case 2: return diff --git a/test/testdata/stylecheck_not_in_megacheck.go b/test/testdata/stylecheck_not_in_megacheck.go index f1379efe07d3..18dbae909592 100644 --- a/test/testdata/stylecheck_not_in_megacheck.go +++ b/test/testdata/stylecheck_not_in_megacheck.go @@ -1,4 +1,5 @@ //golangcitest:args -Emegacheck +//golangcitest:expected_exitcode 0 package testdata func StylecheckNotInMegacheck(x int) { diff --git a/test/testdata/tagliatelle.go b/test/testdata/tagliatelle.go index bc3320f1d554..2c32360ff2ed 100644 --- a/test/testdata/tagliatelle.go +++ b/test/testdata/tagliatelle.go @@ -4,8 +4,8 @@ package testdata import "time" type TglFoo struct { - ID string `json:"ID"` // ERROR `json\(camel\): got 'ID' want 'id'` - UserID string `json:"UserID"` // ERROR `json\(camel\): got 'UserID' want 'userId'` + ID string `json:"ID"` // want `json\(camel\): got 'ID' want 'id'` + UserID string `json:"UserID"` // want `json\(camel\): got 'UserID' want 'userId'` Name string `json:"name"` Value time.Duration `json:"value,omitempty"` Bar TglBar `json:"bar"` @@ -15,7 +15,7 @@ type TglFoo struct { type TglBar struct { Name string `json:"-"` Value string `json:"value"` - CommonServiceFooItem *TglBir `json:"CommonServiceItem,omitempty"` // ERROR `json\(camel\): got 'CommonServiceItem' want 'commonServiceItem'` + CommonServiceFooItem *TglBir `json:"CommonServiceItem,omitempty"` // want `json\(camel\): got 'CommonServiceItem' want 'commonServiceItem'` } type TglBir struct { @@ -26,7 +26,7 @@ type TglBir struct { type Bur struct { Name string - Value string `yaml:"Value"` // ERROR `yaml\(camel\): got 'Value' want 'value'` + Value string `yaml:"Value"` // want `yaml\(camel\): got 'Value' want 'value'` More string `json:"-"` Also string `json:"also,omitempty"` ReqPerS string `avro:"req_per_s"` diff --git a/test/testdata/tenv.go b/test/testdata/tenv.go index 3ae19de9243b..7023ead8c710 100644 --- a/test/testdata/tenv.go +++ b/test/testdata/tenv.go @@ -21,28 +21,28 @@ func setup() { } func TestF(t *testing.T) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err } } func BenchmarkF(b *testing.B) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err } } func testTB(tb testing.TB) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err } } diff --git a/test/testdata/tenv_all.go b/test/testdata/tenv_all.go index 3ae19de9243b..7023ead8c710 100644 --- a/test/testdata/tenv_all.go +++ b/test/testdata/tenv_all.go @@ -21,28 +21,28 @@ func setup() { } func TestF(t *testing.T) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err } } func BenchmarkF(b *testing.B) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err } } func testTB(tb testing.TB) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err } } diff --git a/test/testdata/tenv_all_test.go b/test/testdata/tenv_all_test.go index d39c27eb61e9..b370915f6f8a 100644 --- a/test/testdata/tenv_all_test.go +++ b/test/testdata/tenv_all_test.go @@ -12,37 +12,37 @@ var ( ) func setup() { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `testing\\.Setenv\\(\\)` in setup" _ = err } } func TestF(t *testing.T) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err } } func BenchmarkF(b *testing.B) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err } } func testTB(tb testing.TB) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err } } diff --git a/test/testdata/tenv_go118.go b/test/testdata/tenv_go118.go index 0f143f72cfb1..bcdf9dcabaf7 100644 --- a/test/testdata/tenv_go118.go +++ b/test/testdata/tenv_go118.go @@ -10,10 +10,10 @@ import ( ) func FuzzF(f *testing.F) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `f\\.Setenv\\(\\)` in FuzzF" _ = err } } diff --git a/test/testdata/tenv_test.go b/test/testdata/tenv_test.go index 0e2a1d048404..76f358fd6e68 100644 --- a/test/testdata/tenv_test.go +++ b/test/testdata/tenv_test.go @@ -20,28 +20,28 @@ func setup() { } func TestF(t *testing.T) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `t\\.Setenv\\(\\)` in TestF" _ = err } } func BenchmarkF(b *testing.B) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `b\\.Setenv\\(\\)` in BenchmarkF" _ = err } } func testTB(tb testing.TB) { - os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" - err := os.Setenv("a", "b") // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + err := os.Setenv("a", "b") // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err - if err := os.Setenv("a", "b"); err != nil { // ERROR "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" + if err := os.Setenv("a", "b"); err != nil { // want "os\\.Setenv\\(\\) can be replaced by `tb\\.Setenv\\(\\)` in testTB" _ = err } } diff --git a/test/testdata/testpackage_test.go b/test/testdata/testpackage_test.go index c5be3346a21a..d40aa1e116f7 100644 --- a/test/testdata/testpackage_test.go +++ b/test/testdata/testpackage_test.go @@ -1,2 +1,2 @@ //golangcitest:args -Etestpackage -package testdata // ERROR "package should be `testdata_test` instead of `testdata`" +package testdata // want "package should be `testdata_test` instead of `testdata`" diff --git a/test/testdata/thelper.go b/test/testdata/thelper.go index c5a4760e6728..6458ab2dc4b8 100644 --- a/test/testdata/thelper.go +++ b/test/testdata/thelper.go @@ -3,42 +3,42 @@ package testdata import "testing" -func thelperWithHelperAfterAssignment(t *testing.T) { // ERROR "test helper function should start from t.Helper()" +func thelperWithHelperAfterAssignment(t *testing.T) { // want "test helper function should start from t.Helper()" _ = 0 t.Helper() } -func thelperWithNotFirst(s string, t *testing.T, i int) { // ERROR `parameter \*testing.T should be the first` +func thelperWithNotFirst(s string, t *testing.T, i int) { // want `parameter \*testing.T should be the first` t.Helper() } -func thelperWithIncorrectName(o *testing.T) { // ERROR `parameter \*testing.T should have name t` +func thelperWithIncorrectName(o *testing.T) { // want `parameter \*testing.T should have name t` o.Helper() } -func bhelperWithHelperAfterAssignment(b *testing.B) { // ERROR "test helper function should start from b.Helper()" +func bhelperWithHelperAfterAssignment(b *testing.B) { // want "test helper function should start from b.Helper()" _ = 0 b.Helper() } -func bhelperWithNotFirst(s string, b *testing.B, i int) { // ERROR `parameter \*testing.B should be the first` +func bhelperWithNotFirst(s string, b *testing.B, i int) { // want `parameter \*testing.B should be the first` b.Helper() } -func bhelperWithIncorrectName(o *testing.B) { // ERROR `parameter \*testing.B should have name b` +func bhelperWithIncorrectName(o *testing.B) { // want `parameter \*testing.B should have name b` o.Helper() } -func tbhelperWithHelperAfterAssignment(tb testing.TB) { // ERROR "test helper function should start from tb.Helper()" +func tbhelperWithHelperAfterAssignment(tb testing.TB) { // want "test helper function should start from tb.Helper()" _ = 0 tb.Helper() } -func tbhelperWithNotFirst(s string, tb testing.TB, i int) { // ERROR `parameter testing.TB should be the first` +func tbhelperWithNotFirst(s string, tb testing.TB, i int) { // want `parameter testing.TB should be the first` tb.Helper() } -func tbhelperWithIncorrectName(o testing.TB) { // ERROR `parameter testing.TB should have name tb` +func tbhelperWithIncorrectName(o testing.TB) { // want `parameter testing.TB should have name tb` o.Helper() } diff --git a/test/testdata/thelper_go118.go b/test/testdata/thelper_go118.go index e61c68ee5ad4..bea2adf9bdaf 100644 --- a/test/testdata/thelper_go118.go +++ b/test/testdata/thelper_go118.go @@ -6,16 +6,16 @@ package testdata import "testing" -func fhelperWithHelperAfterAssignment(f *testing.F) { // ERROR "test helper function should start from f.Helper()" +func fhelperWithHelperAfterAssignment(f *testing.F) { // want "test helper function should start from f.Helper()" _ = 0 f.Helper() } -func fhelperWithNotFirst(s string, f *testing.F, i int) { // ERROR `parameter \*testing.F should be the first` +func fhelperWithNotFirst(s string, f *testing.F, i int) { // want `parameter \*testing.F should be the first` f.Helper() } -func fhelperWithIncorrectName(o *testing.F) { // ERROR `parameter \*testing.F should have name f` +func fhelperWithIncorrectName(o *testing.F) { // want `parameter \*testing.F should have name f` o.Helper() } diff --git a/test/testdata/thelper_with_options.go b/test/testdata/thelper_with_options.go index 83c1586eb490..cf39e8a985d6 100644 --- a/test/testdata/thelper_with_options.go +++ b/test/testdata/thelper_with_options.go @@ -4,12 +4,12 @@ package testdata import "testing" -func thelperWithHelperAfterAssignmentWO(t *testing.T) { // ERROR "test helper function should start from t.Helper()" +func thelperWithHelperAfterAssignmentWO(t *testing.T) { // want "test helper function should start from t.Helper()" _ = 0 t.Helper() } -func thelperWithNotFirstWO(s string, t *testing.T, i int) { // ERROR `parameter \*testing.T should be the first` +func thelperWithNotFirstWO(s string, t *testing.T, i int) { // want `parameter \*testing.T should be the first` t.Helper() } diff --git a/test/testdata/tparallel/missing_subtest_test.go b/test/testdata/tparallel/missing_subtest_test.go deleted file mode 100644 index 02e791ec44fc..000000000000 --- a/test/testdata/tparallel/missing_subtest_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package testdata - -import ( - "testing" -) - -func TestSubtests(t *testing.T) { - t.Parallel() - - t.Run("", func(t *testing.T) { - }) -} diff --git a/test/testdata/tparallel/missing_toplevel_test.go b/test/testdata/tparallel/missing_toplevel_test.go deleted file mode 100644 index 4b9d6e14e9a7..000000000000 --- a/test/testdata/tparallel/missing_toplevel_test.go +++ /dev/null @@ -1,11 +0,0 @@ -package testdata - -import ( - "testing" -) - -func TestTopLevel(t *testing.T) { - t.Run("", func(t *testing.T) { - t.Parallel() - }) -} diff --git a/test/testdata/tparallel/happy_path_test.go b/test/testdata/tparallel_happy_path_test.go similarity index 75% rename from test/testdata/tparallel/happy_path_test.go rename to test/testdata/tparallel_happy_path_test.go index 43073e95943a..cc3f86868529 100644 --- a/test/testdata/tparallel/happy_path_test.go +++ b/test/testdata/tparallel_happy_path_test.go @@ -1,3 +1,5 @@ +//golangcitest:args -Etparallel +//golangcitest:expected_exitcode 0 package testdata import ( diff --git a/test/testdata/tparallel_missing_subtest_test.go b/test/testdata/tparallel_missing_subtest_test.go new file mode 100644 index 000000000000..44f7275fe033 --- /dev/null +++ b/test/testdata/tparallel_missing_subtest_test.go @@ -0,0 +1,13 @@ +//golangcitest:args -Etparallel +package testdata + +import ( + "testing" +) + +func TestSubtests(t *testing.T) { // want "TestSubtests's subtests should call t.Parallel" + t.Parallel() + + t.Run("", func(t *testing.T) { + }) +} diff --git a/test/testdata/tparallel_missing_toplevel_test.go b/test/testdata/tparallel_missing_toplevel_test.go new file mode 100644 index 000000000000..fbf4ac5d3788 --- /dev/null +++ b/test/testdata/tparallel_missing_toplevel_test.go @@ -0,0 +1,12 @@ +//golangcitest:args -Etparallel +package testdata + +import ( + "testing" +) + +func TestTopLevel(t *testing.T) { // want "TestTopLevel should call t.Parallel on the top level as well as its subtests" + t.Run("", func(t *testing.T) { + t.Parallel() + }) +} diff --git a/test/testdata/unconvert.go b/test/testdata/unconvert.go index ce72581e2a3c..bbd7ad090901 100644 --- a/test/testdata/unconvert.go +++ b/test/testdata/unconvert.go @@ -5,6 +5,6 @@ import "log" func Unconvert() { a := 1 - b := int(a) // ERROR "unnecessary conversion" + b := int(a) // want "unnecessary conversion" log.Print(b) } diff --git a/test/testdata/unparam.go b/test/testdata/unparam.go index 1cba338f82e9..18eb8e2b39e6 100644 --- a/test/testdata/unparam.go +++ b/test/testdata/unparam.go @@ -1,7 +1,7 @@ //golangcitest:args -Eunparam package testdata -func unparamUnused(a, b uint) uint { // ERROR "`unparamUnused` - `b` is unused" +func unparamUnused(a, b uint) uint { // want "`unparamUnused` - `b` is unused" a++ return a } diff --git a/test/testdata/unused.go b/test/testdata/unused.go index 97aa39d59ca6..d514ea515108 100644 --- a/test/testdata/unused.go +++ b/test/testdata/unused.go @@ -1,20 +1,20 @@ //golangcitest:args -Eunused package testdata -func fn1() {} // ERROR "func `fn1` is unused" +func fn1() {} // want "func `fn1` is unused" //nolint:unused func fn2() { fn3() } -func fn3() {} // ERROR "func `fn3` is unused" +func fn3() {} // want "func `fn3` is unused" -func fn4() { fn5() } // ERROR "func `fn4` is unused" +func fn4() { fn5() } // want "func `fn4` is unused" -func fn5() {} // ERROR "func `fn5` is unused" +func fn5() {} // want "func `fn5` is unused" -func fn6() { fn4() } // ERROR "func `fn6` is unused" +func fn6() { fn4() } // want "func `fn6` is unused" -type unusedStruct struct{} // ERROR "type `unusedStruct` is unused" +type unusedStruct struct{} // want "type `unusedStruct` is unused" type unusedStructNolintUnused struct{} //nolint:unused diff --git a/test/testdata/usestdlibvars.go b/test/testdata/usestdlibvars.go index c3c4e46324ae..e9af3c9cf543 100644 --- a/test/testdata/usestdlibvars.go +++ b/test/testdata/usestdlibvars.go @@ -9,5 +9,5 @@ func _200() { func _200_1() { var w http.ResponseWriter - w.WriteHeader(200) // ERROR `"200" can be replaced by http.StatusOK` + w.WriteHeader(200) // want `"200" can be replaced by http.StatusOK` } diff --git a/test/testdata/varcheck.go b/test/testdata/varcheck.go index 654b7bbbce09..d4bc8f7bc5a4 100644 --- a/test/testdata/varcheck.go +++ b/test/testdata/varcheck.go @@ -1,4 +1,4 @@ //golangcitest:args -Evarcheck package testdata -var v string // ERROR "`v` is unused" +var v string // want "`v` is unused" diff --git a/test/testdata/varnamelen.go b/test/testdata/varnamelen.go index b1f9053a6850..4afee7557aef 100644 --- a/test/testdata/varnamelen.go +++ b/test/testdata/varnamelen.go @@ -4,7 +4,7 @@ package testdata import "math" func varnamelen() { - x := math.MinInt8 // ERROR "variable name 'x' is too short for the scope of its usage" + x := math.MinInt8 // want "variable name 'x' is too short for the scope of its usage" x++ x++ x++ diff --git a/test/testdata/wastedassign.go b/test/testdata/wastedassign.go index f781d0fc9e15..714f3a6382a7 100644 --- a/test/testdata/wastedassign.go +++ b/test/testdata/wastedassign.go @@ -27,28 +27,28 @@ func noUseParams(params string) int { func f(param int) int { println(param) - useOutOfIf := 1212121 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf := 1212121 // want "assigned to useOutOfIf, but reassigned without using the value" ret := 0 if false { - useOutOfIf = 200 // ERROR "assigned to useOutOfIf, but never used afterwards" + useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" return 0 } else if param == 100 { - useOutOfIf = 100 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" useOutOfIf = 201 useOutOfIf = pa(useOutOfIf) - useOutOfIf += 200 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" } else { useOutOfIf = 100 useOutOfIf += 100 useOutOfIf = pa(useOutOfIf) - useOutOfIf += 200 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" } if false { - useOutOfIf = 200 // ERROR "assigned to useOutOfIf, but never used afterwards" + useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" return 0 } else if param == 200 { - useOutOfIf = 100 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" useOutOfIf = 201 useOutOfIf = pa(useOutOfIf) useOutOfIf += 200 @@ -62,7 +62,7 @@ func f(param int) int { println(useOutOfIf) useOutOfIf = 192 useOutOfIf += 100 - useOutOfIf += 200 // ERROR "assigned to useOutOfIf, but never used afterwards" + useOutOfIf += 200 // want "assigned to useOutOfIf, but never used afterwards" return ret } @@ -71,7 +71,7 @@ func checkLoopTest() int { noUse := 1111 println(noUse) - noUse = 1111 // ERROR "assigned to noUse, but never used afterwards" + noUse = 1111 // want "assigned to noUse, but never used afterwards" for { if hoge == 14 { break @@ -86,21 +86,21 @@ func r(param int) int { useOutOfIf := 1212121 ret := 0 if false { - useOutOfIf = 200 // ERROR "assigned to useOutOfIf, but never used afterwards" + useOutOfIf = 200 // want "assigned to useOutOfIf, but never used afterwards" return 0 } else if param == 100 { ret = useOutOfIf } else if param == 200 { - useOutOfIf = 100 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf = 100 // want "assigned to useOutOfIf, but reassigned without using the value" useOutOfIf = 100 useOutOfIf = pa(useOutOfIf) - useOutOfIf += 200 // ERROR "assigned to useOutOfIf, but reassigned without using the value" + useOutOfIf += 200 // want "assigned to useOutOfIf, but reassigned without using the value" } useOutOfIf = 12 println(useOutOfIf) useOutOfIf = 192 useOutOfIf += 100 - useOutOfIf += 200 // ERROR "assigned to useOutOfIf, but never used afterwards" + useOutOfIf += 200 // want "assigned to useOutOfIf, but never used afterwards" return ret } @@ -108,7 +108,7 @@ func mugen() { var i int var hoge int for { - hoge = 5 // ERROR "assigned to hoge, but reassigned without using the value" + hoge = 5 // want "assigned to hoge, but reassigned without using the value" // break } diff --git a/test/testdata/wrapcheck.go b/test/testdata/wrapcheck.go index 386fec9f6b40..5615906fb52c 100644 --- a/test/testdata/wrapcheck.go +++ b/test/testdata/wrapcheck.go @@ -8,7 +8,7 @@ import ( func do() error { _, err := json.Marshal(struct{}{}) if err != nil { - return err // ERROR "error returned from external package is unwrapped" + return err // want "error returned from external package is unwrapped" } return nil diff --git a/test/testdata/wsl.go b/test/testdata/wsl.go index 75311c5c2fc8..af8d92b7c0dc 100644 --- a/test/testdata/wsl.go +++ b/test/testdata/wsl.go @@ -11,46 +11,46 @@ func main() { var ( y = 0 ) - if y < 1 { // ERROR "if statements should only be cuddled with assignments" + if y < 1 { // want "if statements should only be cuddled with assignments" fmt.Println("tight") } thisIsNotUsedInIf := true - if 2 > 1 { // ERROR "if statements should only be cuddled with assignments used in the if statement itself" + if 2 > 1 { // want "if statements should only be cuddled with assignments used in the if statement itself" return } one := 1 two := 2 three := 3 - if three == 3 { // ERROR "only one cuddle assignment allowed before if statement" + if three == 3 { // want "only one cuddle assignment allowed before if statement" fmt.Println("too many cuddled assignments", one, two, thisIsNotUsedInIf) } var a = "a" - var b = "b" // ERROR "declarations should never be cuddled" + var b = "b" // want "declarations should never be cuddled" if true { return } - if false { // ERROR "if statements should only be cuddled with assignments" + if false { // want "if statements should only be cuddled with assignments" return } for i := range make([]int, 10) { fmt.Println(i) fmt.Println(i + i) - continue // ERROR "branch statements should not be cuddled if block has more than two lines" + continue // want "branch statements should not be cuddled if block has more than two lines" } assignOne := a fmt.Println(assignOne) - assignTwo := b // ERROR "assignments should only be cuddled with other assignments" + assignTwo := b // want "assignments should only be cuddled with other assignments" fmt.Println(assignTwo) _, cf1 := context.WithCancel(context.Background()) _, cf2 := context.WithCancel(context.Background()) - defer cf1() // ERROR "only one cuddle assignment allowed before defer statement" + defer cf1() // want "only one cuddle assignment allowed before defer statement" defer cf2() err := multiline( @@ -65,7 +65,7 @@ func main() { "spanning", "multiple", ) - if err != nil { // ERROR "if statements should only be cuddled with assignments used in the if statement itself" + if err != nil { // want "if statements should only be cuddled with assignments used in the if statement itself" panic("not from the line above") } @@ -89,7 +89,7 @@ func f1() int { func f2() int { x := 1 y := 3 - return x + y // ERROR "return statements should not be cuddled if block has more than two lines" + return x + y // want "return statements should not be cuddled if block has more than two lines" } func f3() int { @@ -99,7 +99,7 @@ func f3() int { } notSum := 0 - for _, v := range []int{1, 2, 4} { // ERROR "ranges should only be cuddled with assignments used in the iteration" + for _, v := range []int{1, 2, 4} { // want "ranges should only be cuddled with assignments used in the iteration" sum += v } @@ -133,7 +133,7 @@ func sliceExpr() { } notOk := 1 - if v := aSlice[start]; v == 1 { // ERROR "if statements should only be cuddled with assignments used in the if statement itself" + if v := aSlice[start]; v == 1 { // want "if statements should only be cuddled with assignments used in the if statement itself" fmt.Println("notOk") fmt.Println(notOk) } @@ -153,7 +153,7 @@ func indexExpr() { } xxx := "xxx" - if _, ok := aMap[key]; ok { // ERROR "if statements should only be cuddled with assignments used in the if statement itself" + if _, ok := aMap[key]; ok { // want "if statements should only be cuddled with assignments used in the if statement itself" fmt.Println("not ok") fmt.Println(xxx) } @@ -199,7 +199,7 @@ func IncDecStmt() { } func AnonymousBlock() { - func(a, b int) { // ERROR "block should not start with a whitespace" + func(a, b int) { // want "block should not start with a whitespace" fmt.Println(a + b) }(1, 1) diff --git a/test/testshared/analysis.go b/test/testshared/analysis.go new file mode 100644 index 000000000000..77e7d858a860 --- /dev/null +++ b/test/testshared/analysis.go @@ -0,0 +1,200 @@ +package testshared + +import ( + "encoding/json" + "fmt" + "go/parser" + "go/token" + "os" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + "testing" + "text/scanner" + + "github.com/stretchr/testify/require" + + "github.com/golangci/golangci-lint/pkg/result" +) + +const keyword = "want" + +const testdataDir = "testdata" + +type jsonResult struct { + Issues []*result.Issue +} + +type expectation struct { + kind string // either "fact" or "diagnostic" + name string // name of object to which fact belongs, or "package" ("fact" only) + rx *regexp.Regexp +} + +type key struct { + file string + line int +} + +// Analyze analyzes the test expectations ('want'). +// inspired by https://github.com/golang/tools/blob/b3b5c13b291f9653da6f31b95db100a2e26bd186/go/analysis/analysistest/analysistest.go +func Analyze(t *testing.T, sourcePath string, rawData []byte) { + fileData, err := os.ReadFile(sourcePath) + require.NoError(t, err) + + want, err := parseComments(sourcePath, fileData) + require.NoError(t, err) + + var reportData jsonResult + err = json.Unmarshal(rawData, &reportData) + require.NoError(t, err) + + for _, issue := range reportData.Issues { + if !strings.HasPrefix(issue.Pos.Filename, testdataDir) { + issue.Pos.Filename = filepath.Join(testdataDir, issue.Pos.Filename) + } + checkMessage(t, want, issue.Pos, "diagnostic", issue.FromLinter, issue.Text) + } + + var surplus []string + for key, expects := range want { + for _, exp := range expects { + err := fmt.Sprintf("%s:%d: no %s was reported matching %#q", key.file, key.line, exp.kind, exp.rx) + surplus = append(surplus, err) + } + } + + sort.Strings(surplus) + + for _, err := range surplus { + t.Errorf("%s", err) + } +} + +// inspired by https://github.com/golang/tools/blob/b3b5c13b291f9653da6f31b95db100a2e26bd186/go/analysis/analysistest/analysistest.go +func parseComments(sourcePath string, fileData []byte) (map[key][]expectation, error) { + fset := token.NewFileSet() + + // the error is ignored to let 'typecheck' handle compilation error + f, _ := parser.ParseFile(fset, sourcePath, fileData, parser.ParseComments) + + want := make(map[key][]expectation) + + for _, comment := range f.Comments { + for _, c := range comment.List { + text := strings.TrimPrefix(c.Text, "//") + if text == c.Text { // not a //-comment. + text = strings.TrimPrefix(text, "/*") + text = strings.TrimSuffix(text, "*/") + } + + if i := strings.Index(text, "// "+keyword); i >= 0 { + text = text[i+len("// "):] + } + + posn := fset.Position(c.Pos()) + + text = strings.TrimSpace(text) + + if rest := strings.TrimPrefix(text, keyword); rest != text { + delta, expects, err := parseExpectations(rest) + if err != nil { + return nil, err + } + + want[key{sourcePath, posn.Line + delta}] = expects + } + } + } + + return want, nil +} + +// inspired by https://github.com/golang/tools/blob/b3b5c13b291f9653da6f31b95db100a2e26bd186/go/analysis/analysistest/analysistest.go +func parseExpectations(text string) (lineDelta int, expects []expectation, err error) { + var scanErr string + sc := new(scanner.Scanner).Init(strings.NewReader(text)) + sc.Error = func(s *scanner.Scanner, msg string) { + scanErr = msg // e.g. bad string escape + } + sc.Mode = scanner.ScanIdents | scanner.ScanStrings | scanner.ScanRawStrings | scanner.ScanInts + + scanRegexp := func(tok rune) (*regexp.Regexp, error) { + if tok != scanner.String && tok != scanner.RawString { + return nil, fmt.Errorf("got %s, want regular expression", + scanner.TokenString(tok)) + } + pattern, _ := strconv.Unquote(sc.TokenText()) // can't fail + return regexp.Compile(pattern) + } + + for { + tok := sc.Scan() + switch tok { + case '+': + tok = sc.Scan() + if tok != scanner.Int { + return 0, nil, fmt.Errorf("got +%s, want +Int", scanner.TokenString(tok)) + } + lineDelta, _ = strconv.Atoi(sc.TokenText()) + case scanner.String, scanner.RawString: + rx, err := scanRegexp(tok) + if err != nil { + return 0, nil, err + } + expects = append(expects, expectation{"diagnostic", "", rx}) + + case scanner.Ident: + name := sc.TokenText() + tok = sc.Scan() + if tok != ':' { + return 0, nil, fmt.Errorf("got %s after %s, want ':'", + scanner.TokenString(tok), name) + } + tok = sc.Scan() + rx, err := scanRegexp(tok) + if err != nil { + return 0, nil, err + } + expects = append(expects, expectation{"diagnostic", name, rx}) + + case scanner.EOF: + if scanErr != "" { + return 0, nil, fmt.Errorf("%s", scanErr) + } + return lineDelta, expects, nil + + default: + return 0, nil, fmt.Errorf("unexpected %s", scanner.TokenString(tok)) + } + } +} + +// inspired by https://github.com/golang/tools/blob/b3b5c13b291f9653da6f31b95db100a2e26bd186/go/analysis/analysistest/analysistest.go +func checkMessage(t *testing.T, want map[key][]expectation, posn token.Position, kind, name, message string) { + k := key{posn.Filename, posn.Line} + expects := want[k] + var unmatched []string + + for i, exp := range expects { + if exp.kind == kind && (exp.name == "" || exp.name == name) { + if exp.rx.MatchString(message) { + // matched: remove the expectation. + expects[i] = expects[len(expects)-1] + expects = expects[:len(expects)-1] + want[k] = expects + return + } + unmatched = append(unmatched, fmt.Sprintf("%#q", exp.rx)) + } + } + + if unmatched == nil { + t.Errorf("%v: unexpected %s: %v", posn, kind, message) + } else { + t.Errorf("%v: %s %q does not match pattern %s", + posn, kind, message, strings.Join(unmatched, " or ")) + } +} diff --git a/test/testshared/analysis_test.go b/test/testshared/analysis_test.go new file mode 100644 index 000000000000..2c7f69666d06 --- /dev/null +++ b/test/testshared/analysis_test.go @@ -0,0 +1,138 @@ +package testshared + +import ( + "regexp" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +//nolint:funlen +func Test_parseComments(t *testing.T) { + testCases := []struct { + filename string + data string + expected map[key][]expectation + }{ + { + filename: "a/b.go", + data: `package main // want package:"found" + +`, + expected: map[key][]expectation{ + {file: "a/b.go", line: 1}: { + {kind: "diagnostic", name: "package", rx: regexp.MustCompile(`found`)}, + }, + }, + }, + { + filename: "a/c.go", + data: `package main + +func main() { + println("hello, world") // want "call of println" +} +`, + expected: map[key][]expectation{ + {file: "a/c.go", line: 4}: { + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println`)}, + }, + }, + }, + { + filename: "a/d.go", + data: `package main + +func main() { + // OK /* */-form. + println("hello") /* want "call of println" */ +} +`, + expected: map[key][]expectation{ + {file: "a/d.go", line: 5}: { + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println`)}, + }, + }, + }, + { + filename: "a/e.go", + data: `package main + +func main() { + // OK (nested comment) + println("hello") // some comment // want "call of println" +} +`, + expected: map[key][]expectation{ + {file: "a/e.go", line: 5}: { + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println`)}, + }, + }, + }, + { + filename: "a/f.go", + data: `package main + +func main() { + // OK (nested comment in /**/) + println("hello") /* some comment // want "call of println" */ +} +`, + expected: map[key][]expectation{ + {file: "a/f.go", line: 5}: { + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println`)}, + }, + }, + }, + { + filename: "a/g.go", + data: `package main + +func main() { + // OK (multiple expectations on same line) + println(); println() // want "call of println(...)" "call of println(...)" +} +`, + expected: map[key][]expectation{ + {file: "a/g.go", line: 5}: { + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println(...)`)}, + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println(...)`)}, + }, + }, + }, + { + filename: "a/h.go", + data: `package main + +func println(...interface{}) { println() } // want println:"found" "call of println(...)" +`, + expected: map[key][]expectation{ + {file: "a/h.go", line: 3}: { + {kind: "diagnostic", name: "println", rx: regexp.MustCompile(`found`)}, + {kind: "diagnostic", name: "", rx: regexp.MustCompile(`call of println(...)`)}, + }, + }, + }, + { + filename: "a/b_test.go", + data: `package main + +// Test file shouldn't mess with things +`, + expected: map[key][]expectation{}, + }, + } + + for _, test := range testCases { + test := test + t.Run(test.filename, func(t *testing.T) { + t.Parallel() + + expectations, err := parseComments(test.filename, []byte(test.data)) + require.NoError(t, err) + + assert.Equal(t, test.expected, expectations) + }) + } +} diff --git a/test/testshared/directives.go b/test/testshared/directives.go index 5599ad6ab10c..b29f305f97e6 100644 --- a/test/testshared/directives.go +++ b/test/testshared/directives.go @@ -5,11 +5,14 @@ import ( "go/build/constraint" "os" "runtime" + "strconv" "strings" "testing" hcversion "github.com/hashicorp/go-version" "github.com/stretchr/testify/require" + + "github.com/golangci/golangci-lint/pkg/exitcodes" ) // RunContext FIXME rename? @@ -17,11 +20,12 @@ type RunContext struct { Args []string ConfigPath string ExpectedLinter string + ExitCode int } // ParseTestDirectives parses test directives from sources files. // -//nolint:gocyclo +//nolint:gocyclo,funlen func ParseTestDirectives(tb testing.TB, sourcePath string) *RunContext { tb.Helper() @@ -29,7 +33,9 @@ func ParseTestDirectives(tb testing.TB, sourcePath string) *RunContext { require.NoError(tb, err) tb.Cleanup(func() { _ = f.Close() }) - rc := &RunContext{} + rc := &RunContext{ + ExitCode: exitcodes.IssuesFound, + } scanner := bufio.NewScanner(f) for scanner.Scan() { @@ -82,6 +88,14 @@ func ParseTestDirectives(tb testing.TB, sourcePath string) *RunContext { rc.ExpectedLinter = after continue + case "//golangcitest:expected_exitcode": + require.NotEmpty(tb, after) + val, err := strconv.Atoi(after) + require.NoError(tb, err) + + rc.ExitCode = val + continue + default: require.Failf(tb, "invalid prefix of comment line %s", line) } diff --git a/test/testshared/directives_test.go b/test/testshared/directives_test.go index fa0c62820897..bee856cd3083 100644 --- a/test/testshared/directives_test.go +++ b/test/testshared/directives_test.go @@ -5,6 +5,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/golangci/golangci-lint/pkg/exitcodes" ) func TestParseTestDirectives(t *testing.T) { @@ -15,6 +17,7 @@ func TestParseTestDirectives(t *testing.T) { Args: []string{"-Efoo", "--simple", "--hello=world"}, ConfigPath: "testdata/example.yml", ExpectedLinter: "bar", + ExitCode: exitcodes.Success, } assert.Equal(t, expected, rc) } diff --git a/test/testshared/runner.go b/test/testshared/runner.go index 1b872e837cb1..06c9e7303a51 100644 --- a/test/testshared/runner.go +++ b/test/testshared/runner.go @@ -3,6 +3,7 @@ package testshared import ( "os" "os/exec" + "path/filepath" "strings" "sync" "syscall" @@ -122,8 +123,8 @@ func (b *RunnerBuilder) WithArgs(args ...string) *RunnerBuilder { return b } -func (b *RunnerBuilder) WithTargetPath(target string) *RunnerBuilder { - b.target = target +func (b *RunnerBuilder) WithTargetPath(targets ...string) *RunnerBuilder { + b.target = filepath.Join(targets...) return b } @@ -233,7 +234,7 @@ func (r *Runner) Run() *RunnerResult { } } -func (r *Runner) RawRun() ([]byte, error) { +func (r *Runner) Command() *exec.Cmd { r.tb.Helper() runArgs := append([]string{r.command}, r.args...) @@ -245,7 +246,7 @@ func (r *Runner) RawRun() ([]byte, error) { cmd := exec.Command("../golangci-lint", runArgs...) cmd.Env = append(os.Environ(), r.env...) - return cmd.CombinedOutput() + return cmd } type RunnerResult struct { @@ -319,6 +320,10 @@ func InstallGolangciLint(tb testing.TB) { cmd := exec.Command("make", "-C", "..", "build") - err := cmd.Run() - assert.NoError(tb, err, "Can't go install golangci-lint") + output, err := cmd.CombinedOutput() + if err != nil { + tb.Log(string(output)) + } + + require.NoError(tb, err, "Can't go install golangci-lint") } diff --git a/test/testshared/runner_test.go b/test/testshared/runner_test.go index 36c1e347dacd..af5fe7603e40 100644 --- a/test/testshared/runner_test.go +++ b/test/testshared/runner_test.go @@ -140,7 +140,7 @@ func TestRunnerBuilder_Runner(t *testing.T) { "--go=1.17", "--internal-cmd-test", "--allow-parallel-runners", - "./testdata/all.go", + "testdata/all.go", }, }, }, diff --git a/test/testshared/testdata/all.go b/test/testshared/testdata/all.go index ca997786281b..dfc78e1c55d8 100644 --- a/test/testshared/testdata/all.go +++ b/test/testshared/testdata/all.go @@ -1,6 +1,7 @@ //golangcitest:args -Efoo --simple --hello=world //golangcitest:config_path testdata/example.yml //golangcitest:expected_linter bar +//golangcitest:expected_exitcode 0 package testdata import "fmt" From d286cb910c4fb9f91d26e630e033b05ae3bfd9db Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sat, 20 Aug 2022 19:05:13 +0200 Subject: [PATCH 147/162] docs: add a section about default exclusions (#3117) --- .golangci.reference.yml | 19 +++++++++++++++++-- docs/src/docs/contributing/workflow.mdx | 2 +- docs/src/docs/usage/false-positives.mdx | 7 +++++++ pkg/config/issues.go | 7 ++++--- scripts/expand_website_templates/main.go | 16 ++++++++++++++++ 5 files changed, 45 insertions(+), 6 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 7a60cfb2aed8..8b241682d471 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -2097,7 +2097,7 @@ issues: # it can be disabled by `exclude-use-default: false`. # To list all excluded by default patterns execute `golangci-lint run --help` # - # Default: [] + # Default: https://golangci-lint.run/usage/false-positives/#default-exclusions exclude: - abcdef @@ -2139,9 +2139,24 @@ issues: exclude-case-sensitive: false # The list of ids of default excludes to include or disable. + # https://golangci-lint.run/usage/false-positives/#default-exclusions # Default: [] include: - - EXC0002 # disable excluding of issues about comments from golint. + - EXC0001 + - EXC0002 + - EXC0003 + - EXC0004 + - EXC0005 + - EXC0006 + - EXC0007 + - EXC0008 + - EXC0009 + - EXC0010 + - EXC0011 + - EXC0012 + - EXC0013 + - EXC0014 + - EXC0015 # Maximum issues count per one linter. # Set to 0 to disable. diff --git a/docs/src/docs/contributing/workflow.mdx b/docs/src/docs/contributing/workflow.mdx index e565a4e5bb78..afe9623dcaae 100644 --- a/docs/src/docs/contributing/workflow.mdx +++ b/docs/src/docs/contributing/workflow.mdx @@ -14,7 +14,7 @@ conduct](https://github.com/golangci/golangci-lint/blob/master/CODE_OF_CONDUCT.m Prerequisites: - `make` -- [Go 1.13+](https://golang.org/doc/install) +- [Go](https://golang.org/doc/install) Fork and clone [golangci-lint](https://github.com/golangci/golangci-lint) repository. diff --git a/docs/src/docs/usage/false-positives.mdx b/docs/src/docs/usage/false-positives.mdx index ade523fca4a4..354aee9f67fa 100644 --- a/docs/src/docs/usage/false-positives.mdx +++ b/docs/src/docs/usage/false-positives.mdx @@ -142,3 +142,10 @@ func someLegacyFunction() *string { You can see more examples of using `//nolint` in [our tests](https://github.com/golangci/golangci-lint/tree/master/pkg/result/processors/testdata) for it. Use `//nolint` instead of `// nolint` because machine-readable comments should have no space by Go convention. + +## Default Exclusions + +Some exclusions are considered as common, to help golangci-lint users those common exclusions are used as default exclusions. + +If you don't want to use it you can set `issues.exclude-use-default` to `false`. +{.DefaultExclusions} diff --git a/pkg/config/issues.go b/pkg/config/issues.go index a56823eed8d7..b2437ec97471 100644 --- a/pkg/config/issues.go +++ b/pkg/config/issues.go @@ -188,15 +188,16 @@ func GetDefaultExcludePatternsStrings() []string { return ret } +// TODO(ldez): this behavior must be changed in v2, because this is confusing. func GetExcludePatterns(include []string) []ExcludePattern { - includeMap := make(map[string]bool, len(include)) + includeMap := make(map[string]struct{}, len(include)) for _, inc := range include { - includeMap[inc] = true + includeMap[inc] = struct{}{} } var ret []ExcludePattern for _, p := range DefaultExcludePatterns { - if !includeMap[p.ID] { + if _, ok := includeMap[p.ID]; !ok { ret = append(ret, p) } } diff --git a/scripts/expand_website_templates/main.go b/scripts/expand_website_templates/main.go index 554bffc1eae3..a9d39ddec441 100644 --- a/scripts/expand_website_templates/main.go +++ b/scripts/expand_website_templates/main.go @@ -212,6 +212,7 @@ func buildTemplateContext() (map[string]string, error) { "LintersCommandOutputDisabledOnly": string(lintersOutParts[1]), "EnabledByDefaultLinters": getLintersListMarkdown(true), "DisabledByDefaultLinters": getLintersListMarkdown(false), + "DefaultExclusions": getDefaultExclusions(), "ThanksList": getThanksList(), "RunHelpText": string(shortHelp), "ChangeLog": string(changeLog), @@ -219,6 +220,21 @@ func buildTemplateContext() (map[string]string, error) { }, nil } +func getDefaultExclusions() string { + bufferString := bytes.NewBufferString("") + + for _, pattern := range config.DefaultExcludePatterns { + _, _ = fmt.Fprintln(bufferString) + _, _ = fmt.Fprintf(bufferString, "### %s\n", pattern.ID) + _, _ = fmt.Fprintln(bufferString) + _, _ = fmt.Fprintf(bufferString, "- linter: `%s`\n", pattern.Linter) + _, _ = fmt.Fprintf(bufferString, "- pattern: `%s`\n", strings.ReplaceAll(pattern.Pattern, "`", "`")) + _, _ = fmt.Fprintf(bufferString, "- why: %s\n", pattern.Why) + } + + return bufferString.String() +} + func getLintersListMarkdown(enabled bool) string { var neededLcs []*linter.Config lcs := lintersdb.NewManager(nil, nil).GetAllSupportedLinterConfigs() From d57145d4026fbb9e88712603eae1a7af22aecf4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Aug 2022 13:23:05 +0200 Subject: [PATCH 148/162] build(deps): bump github.com/securego/gosec/v2 from 2.12.0 to 2.13.1 (#3119) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 134 +++++++++++---------- go.mod | 2 +- go.sum | 259 +--------------------------------------- 3 files changed, 72 insertions(+), 323 deletions(-) diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 8b241682d471..408a3bad2a36 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -725,77 +725,79 @@ linters-settings: # Available rules: https://github.com/securego/gosec#available-rules # Default: [] - means include all rules includes: - - G101 - - G102 - - G103 - - G104 - - G106 - - G107 - - G108 - - G109 - - G110 - - G111 - - G112 - - G113 - - G201 - - G202 - - G203 - - G204 - - G301 - - G302 - - G303 - - G304 - - G305 - - G306 - - G307 - - G401 - - G402 - - G403 - - G404 - - G501 - - G502 - - G503 - - G504 - - G505 - - G601 + - G101 # Look for hard coded credentials + - G102 # Bind to all interfaces + - G103 # Audit the use of unsafe block + - G104 # Audit errors not checked + - G106 # Audit the use of ssh.InsecureIgnoreHostKey + - G107 # Url provided to HTTP request as taint input + - G108 # Profiling endpoint automatically exposed on /debug/pprof + - G109 # Potential Integer overflow made by strconv.Atoi result conversion to int16/32 + - G110 # Potential DoS vulnerability via decompression bomb + - G111 # Potential directory traversal + - G112 # Potential slowloris attack + - G113 # Usage of Rat.SetString in math/big with an overflow (CVE-2022-23772) + - G114 # Use of net/http serve function that has no support for setting timeouts + - G201 # SQL query construction using format string + - G202 # SQL query construction using string concatenation + - G203 # Use of unescaped data in HTML templates + - G204 # Audit use of command execution + - G301 # Poor file permissions used when creating a directory + - G302 # Poor file permissions used with chmod + - G303 # Creating tempfile using a predictable path + - G304 # File path provided as taint input + - G305 # File traversal when extracting zip/tar archive + - G306 # Poor file permissions used when writing to a new file + - G307 # Deferring a method which returns an error + - G401 # Detect the usage of DES, RC4, MD5 or SHA1 + - G402 # Look for bad TLS connection settings + - G403 # Ensure minimum RSA key length of 2048 bits + - G404 # Insecure random number source (rand) + - G501 # Import blocklist: crypto/md5 + - G502 # Import blocklist: crypto/des + - G503 # Import blocklist: crypto/rc4 + - G504 # Import blocklist: net/http/cgi + - G505 # Import blocklist: crypto/sha1 + - G601 # Implicit memory aliasing of items from a range statement # To specify a set of rules to explicitly exclude. # Available rules: https://github.com/securego/gosec#available-rules # Default: [] excludes: - - G101 - - G102 - - G103 - - G104 - - G106 - - G107 - - G108 - - G109 - - G110 - - G111 - - G112 - - G113 - - G201 - - G202 - - G203 - - G204 - - G301 - - G302 - - G303 - - G304 - - G305 - - G306 - - G307 - - G401 - - G402 - - G403 - - G404 - - G501 - - G502 - - G503 - - G504 - - G505 - - G601 + - G101 # Look for hard coded credentials + - G102 # Bind to all interfaces + - G103 # Audit the use of unsafe block + - G104 # Audit errors not checked + - G106 # Audit the use of ssh.InsecureIgnoreHostKey + - G107 # Url provided to HTTP request as taint input + - G108 # Profiling endpoint automatically exposed on /debug/pprof + - G109 # Potential Integer overflow made by strconv.Atoi result conversion to int16/32 + - G110 # Potential DoS vulnerability via decompression bomb + - G111 # Potential directory traversal + - G112 # Potential slowloris attack + - G113 # Usage of Rat.SetString in math/big with an overflow (CVE-2022-23772) + - G114 # Use of net/http serve function that has no support for setting timeouts + - G201 # SQL query construction using format string + - G202 # SQL query construction using string concatenation + - G203 # Use of unescaped data in HTML templates + - G204 # Audit use of command execution + - G301 # Poor file permissions used when creating a directory + - G302 # Poor file permissions used with chmod + - G303 # Creating tempfile using a predictable path + - G304 # File path provided as taint input + - G305 # File traversal when extracting zip/tar archive + - G306 # Poor file permissions used when writing to a new file + - G307 # Deferring a method which returns an error + - G401 # Detect the usage of DES, RC4, MD5 or SHA1 + - G402 # Look for bad TLS connection settings + - G403 # Ensure minimum RSA key length of 2048 bits + - G404 # Insecure random number source (rand) + - G501 # Import blocklist: crypto/md5 + - G502 # Import blocklist: crypto/des + - G503 # Import blocklist: crypto/rc4 + - G504 # Import blocklist: net/http/cgi + - G505 # Import blocklist: crypto/sha1 + - G601 # Implicit memory aliasing of items from a range statement # Exclude generated files # Default: false diff --git a/go.mod b/go.mod index f9dc01e0c4c2..94ec973288ae 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 github.com/sashamelentyev/usestdlibvars v1.10.0 - github.com/securego/gosec/v2 v2.12.0 + github.com/securego/gosec/v2 v2.13.1 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.7 github.com/sirupsen/logrus v1.9.0 diff --git a/go.sum b/go.sum index 30ea18bb9312..a928a03aa099 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,5 @@ 4d63.com/gochecknoglobals v0.1.0 h1:zeZSRqj5yCg28tCkIV/z/lWbwvNm5qnKVS15PI8nhD0= 4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= -bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= 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= @@ -15,7 +14,6 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6 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.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU= 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= @@ -33,15 +31,12 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k 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/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w= -cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk= 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= -contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Antonboom/errname v0.1.7 h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako= github.com/Antonboom/errname v0.1.7/go.mod h1:g0ONh16msHIPgJSGsecu1G/dcF2hlYR/0SddnIAGavU= @@ -55,12 +50,8 @@ github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rW github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 h1:DGdS4FlsdM6OkluXOhgkvwx05ZjD3Idm9WqtYnOmSuY= github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2/go.mod h1:xj0D2jwLdp6tOKLheyZCsfL0nz8DaicmJxSwj3VcHtY= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/OpenPeeDeeP/depguard v1.1.0 h1:pjK9nLPS1FwQYGGpPxoMYpe7qACHOhAWQMQzV71i49o= github.com/OpenPeeDeeP/depguard v1.1.0/go.mod h1:JtAMzWkmFEzDPyAd+W0NHl1lvpQKTvT9jnRVsohBKpc= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -74,21 +65,14 @@ github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQ github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= -github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/ashanbrown/forbidigo v1.3.0 h1:VkYIwb/xxdireGAdJNZoo24O4lmnEWkactplBlWTShc= github.com/ashanbrown/forbidigo v1.3.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= -github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= 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/bkielbasa/cyclop v1.2.0 h1:7Jmnh0yL2DjKfw28p86YTd/B4lRGcNuu12sKE35sM7A= github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= @@ -116,46 +100,26 @@ 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/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -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-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -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.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cristalhq/acmd v0.7.0/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= github.com/daixiang0/gci v0.6.3 h1:wUAqXChk8HbwXn8AfxD9DYSCp9Bpz1L3e6Q4Roe+q9E= github.com/daixiang0/gci v0.6.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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/denis-tingaikin/go-header v0.4.3 h1:tEaZKAlqql6SKCY++utLmkPLd6K8IBM20Ha7UVm+mtU= github.com/denis-tingaikin/go-header v0.4.3/go.mod h1:0wOCWuN71D5qIgE2nz9KrKmuYBAC2Mra5RassOIQ2/c= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= 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.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/esimonov/ifshort v1.0.4 h1:6SID4yGWfRae/M7hkVDVVyppy8q/v9OuxNdmjLQStBA= github.com/esimonov/ifshort v1.0.4/go.mod h1:Pe8zjlRrJ80+q2CxHLfEOfTwxCZ4O+MuhcHcfgNWTk0= github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= @@ -163,14 +127,10 @@ github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4 github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-critic/go-critic v0.6.4 h1:tucuG1pvOyYgpBIrVxw0R6gwO42lNa92Aq3VaDoIs+E= github.com/go-critic/go-critic v0.6.4/go.mod h1:qL5SOlk7NtY6sJPoVCTKDIgzNOxHkkkOCVDyi9wJe1U= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -184,11 +144,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= @@ -215,11 +172,7 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.1.1/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.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= 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= @@ -230,7 +183,6 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt 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.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 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= @@ -269,8 +221,6 @@ github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSW github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= 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/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= -github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs= 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= @@ -294,30 +244,17 @@ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hf 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-20200507031123-427632fa3b1c/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/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= -github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/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/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/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM= -github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U= github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= -github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= @@ -333,12 +270,6 @@ github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3 github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= -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/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= @@ -348,49 +279,32 @@ github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mO github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= 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/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= -github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= 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/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jgautheron/goconst v1.5.1 h1:HxVbL1MhydKs8R8n/HE5NPvzfaYmQJA3o879lE4+WcM= github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= -github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= 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.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/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= 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/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= @@ -398,7 +312,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= 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= @@ -412,7 +325,6 @@ github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= github.com/kunwardeep/paralleltest v1.0.6 h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g= github.com/kunwardeep/paralleltest v1.0.6/go.mod h1:Y0Y0XISdZM5IKm3TREQMZ6iteqn1YuwCsJO/0kL9Zes= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/kyoh86/exportloopref v0.1.8 h1:5Ry/at+eFdkX9Vsdw3qU4YkvGtzuVfzT4X7S77LoN/M= github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= @@ -421,16 +333,11 @@ github.com/ldez/tagliatelle v0.3.1 h1:3BqVVlReVUZwafJUwQ+oxbx2BEX2vUG4Yu/NOfMiKi github.com/ldez/tagliatelle v0.3.1/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= github.com/leonklingele/grouper v1.1.0 h1:tC2y/ygPbMFSBOs3DcyaEMKnnwH7eYKzohOtRrf0SAg= github.com/leonklingele/grouper v1.1.0/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= -github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= @@ -439,21 +346,12 @@ github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7 github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -463,33 +361,21 @@ github.com/mbilski/exhaustivestruct v1.2.0 h1:wCBmUnSYufAHO6J4AVWY6ff+oxWxsVFrwg github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= github.com/mgechev/revive v1.2.3 h1:NzIEEa9+WimQ6q2Ov7OcNeySS/IOcwtkQ8RAh0R5UJ4= github.com/mgechev/revive v1.2.3/go.mod h1:iAWlQishqCuj4yhV24FTnKSXGpbAA+0SckXB8GQMX/Q= -github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= -github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= 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-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -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/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= 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/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= -github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= -github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= 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/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= -github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc= github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 h1:4kuARK6Y6FxaNu/BnU2OAaLF86eTVhP2hjTB6iMvItA= @@ -498,42 +384,22 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nishanths/exhaustive v0.8.1 h1:0QKNascWv9qIHY7zRoZSxeRr6kuk5aAT3YXLTiDmjTo= github.com/nishanths/exhaustive v0.8.1/go.mod h1:qj+zJJUgJ76tR92+25+03oYUhzF4R7/2Wk7fGTfCHmg= -github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= -github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.2 h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw= github.com/pelletier/go-toml/v2 v2.0.2/go.mod h1:MovirKjgVRESsAvNZlAjtFwV867yGuwRkXbG66OzopI= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d h1:CdDQnGF8Nq9ocOS/xlSptM1N3BbrA6/kmaep5ggwaIA= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -541,7 +407,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/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 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/polyfloyd/go-errorlint v1.0.2 h1:kp1yvHflYhTmw5m3MmBy8SCyQkKPjwDthVuMH0ug6Yk= @@ -570,8 +435,6 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= -github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= github.com/quasilyte/go-ruleguard v0.3.17 h1:cDdoaSbQg11LXPDQqiCK54QmQXsEQQCTIgdcpeULGSI= github.com/quasilyte/go-ruleguard v0.3.17/go.mod h1:sST5PvaR7yb/Az5ksX8oc88usJ4EGjmJv7cK7y3jyig= @@ -586,13 +449,8 @@ github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 h1:L8QM9bvf github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -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/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= @@ -602,20 +460,17 @@ github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3 github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sashamelentyev/usestdlibvars v1.10.0 h1:hBW8NyJSmHImE/vI1r3gmGWiFkHtnqwd3DnoqoPxxj4= github.com/sashamelentyev/usestdlibvars v1.10.0/go.mod h1:nBjNFNgqwmaJuFKBvv/KoewMqAQJ8Ijq0z1u2W3nQIo= -github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= -github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= +github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shirou/gopsutil/v3 v3.22.7 h1:flKnuCMfUUrO+oAvwAd6GKZgnPzr098VA/UJ14nhJd4= github.com/shirou/gopsutil/v3 v3.22.7/go.mod h1:s648gW4IywYzUfE/KjXxUsqrqx/T2xO5VqOXxONeRfI= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -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/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= @@ -624,29 +479,20 @@ github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sonatard/noctx v0.0.1 h1:VC1Qhl6Oxx9vvWo3UDgrGXYCeKCe3Wbw7qAWL6FrmTY= github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= github.com/sourcegraph/go-diff v0.6.1 h1:hmA1LzxW0n1c3Q4YbrFgg4P99GSnebYa3x8gr0HZqLQ= github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 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 v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= 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.3/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.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= @@ -657,13 +503,11 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 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.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= @@ -687,21 +531,14 @@ github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03O github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomarrell/wrapcheck/v2 v2.6.2 h1:3dI6YNcrJTQ/CJQ6M/DUkc0gnqYSIk6o0rChn9E/D0M= github.com/tomarrell/wrapcheck/v2 v2.6.2/go.mod h1:ao7l5p0aOlUNJKI0qVwB4Yjlqutd0IvAB9Rdwyilxvg= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/tommy-muehle/go-mnd/v2 v2.5.0 h1:iAj0a8e6+dXSL7Liq0aXPox36FiN1dBbjA6lt9fl65s= github.com/tommy-muehle/go-mnd/v2 v2.5.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ultraware/funlen v0.0.3 h1:5ylVWm8wsNwH5aWo9438pwvsK0QiqVuUrt9bn7S/iLA= github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= github.com/ultraware/whitespace v0.0.5 h1:hh+/cpIcopyMYbZNVov9iSxvJU3OYQg78Sfaqzi/CzI= github.com/ultraware/whitespace v0.0.5/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= -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/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= @@ -710,17 +547,10 @@ github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD github.com/valyala/quicktemplate v1.7.0 h1:LUPTJmlVcb46OOUY3IeD9DojFpAVbsG+5WFTcjMJzCM= github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= -github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= -github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= -github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= -github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= 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= @@ -732,45 +562,28 @@ github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPR github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= -go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= 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.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.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -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.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -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.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/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-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-20201221181555-eec23a3978ad/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-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= 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-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 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= @@ -781,7 +594,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 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-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= @@ -798,7 +610,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu 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/lint v0.0.0-20210508222113-6edffad5e616/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= @@ -816,9 +627,7 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVD golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 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-20181114220301-adae6a3d119a/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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -830,9 +639,6 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL 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-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/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= @@ -840,28 +646,22 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL 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-20200421231249-e086a090c8fd/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-20200520004742-59133d7f0dd7/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-20201110031124-69a78807bb2b/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-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/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 h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -878,7 +678,6 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ 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-20190412183630-56d357773e84/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= @@ -890,12 +689,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+v golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-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-20181205085412-a5c9d58dba9a/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -904,15 +699,8 @@ 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-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/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= @@ -925,7 +713,6 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w 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-20200420163511-1957bb5e6d1f/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= @@ -939,7 +726,6 @@ 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-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/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= @@ -954,10 +740,8 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/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-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -965,7 +749,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/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-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME= golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/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/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -977,15 +760,11 @@ 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 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -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.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/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-20181030221726-6c7e314b6563/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-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= @@ -1005,17 +784,13 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/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-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/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-20191108193012-7d206e10da11/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-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 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-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1033,7 +808,6 @@ golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWc golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 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= @@ -1041,9 +815,6 @@ golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 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= @@ -1058,7 +829,6 @@ golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4f 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-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1081,7 +851,6 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt 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.10.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= @@ -1101,13 +870,10 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl 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.2/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-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/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= @@ -1115,7 +881,6 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn 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-20190927181202-20e1ac93f88c/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= @@ -1129,14 +894,11 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG 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-20200423170343-7949de9c1215/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-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 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= @@ -1147,19 +909,15 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D 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/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 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.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= 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.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= 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= @@ -1187,23 +945,13 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/cheggaaa/pb.v1 v1.0.28/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/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI= gopkg.in/ini.v1 v1.66.6/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/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.3/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.6/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= @@ -1232,4 +980,3 @@ mvdan.cc/unparam v0.0.0-20220706161116-678bad134442/go.mod h1:F/Cxw/6mVrNKqrR2Yj 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= From 4160e8c396c2aaab72a9ec1a377b56a0f92ebf34 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 21 Aug 2022 13:30:34 +0200 Subject: [PATCH 149/162] dev: fix output tests (#3118) --- test/output_test.go | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/test/output_test.go b/test/output_test.go index 75f8469e82a7..e1127b12cedf 100644 --- a/test/output_test.go +++ b/test/output_test.go @@ -9,22 +9,22 @@ import ( "github.com/stretchr/testify/require" + "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/test/testshared" ) //nolint:misspell,lll -const expectedJSONOutput = `{"Issues":[{"FromLinter":"misspell","Text":"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `","Severity":"","SourceLines":["\t// comment with incorrect spelling: occured // want \"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `\""],"Replacement":{"NeedOnlyDelete":false,"NewLines":null,"Inline":{"StartCol":37,"Length":7,"NewString":"occurred"}},"Pos":{"Filename":"testdata/misspell.go","Offset":0,"Line":6,"Column":38},"ExpectNoLint":false,"ExpectedNoLintLinter":""}],"Report":{"Linters":[{"Name":"asasalint"},{"Name":"asciicheck"},{"Name":"bidichk"},{"Name":"bodyclose"},{"Name":"containedctx"},{"Name":"contextcheck"},{"Name":"cyclop"},{"Name":"decorder"},{"Name":"deadcode","EnabledByDefault":true},{"Name":"depguard"},{"Name":"dogsled"},{"Name":"dupl"},{"Name":"durationcheck"},{"Name":"errcheck","EnabledByDefault":true},{"Name":"errchkjson"},{"Name":"errname"},{"Name":"errorlint"},{"Name":"execinquery"},{"Name":"exhaustive"},{"Name":"exhaustivestruct"},{"Name":"exhaustruct"},{"Name":"exportloopref"},{"Name":"forbidigo"},{"Name":"forcetypeassert"},{"Name":"funlen"},{"Name":"gci"},{"Name":"gochecknoglobals"},{"Name":"gochecknoinits"},{"Name":"gocognit"},{"Name":"goconst"},{"Name":"gocritic"},{"Name":"gocyclo"},{"Name":"godot"},{"Name":"godox"},{"Name":"goerr113"},{"Name":"gofmt"},{"Name":"gofumpt"},{"Name":"goheader"},{"Name":"goimports"},{"Name":"golint"},{"Name":"gomnd"},{"Name":"gomoddirectives"},{"Name":"gomodguard"},{"Name":"goprintffuncname"},{"Name":"gosec"},{"Name":"gosimple","EnabledByDefault":true},{"Name":"govet","EnabledByDefault":true},{"Name":"grouper"},{"Name":"ifshort"},{"Name":"importas"},{"Name":"ineffassign","EnabledByDefault":true},{"Name":"interfacer"},{"Name":"ireturn"},{"Name":"lll"},{"Name":"maintidx"},{"Name":"makezero"},{"Name":"maligned"},{"Name":"misspell","Enabled":true},{"Name":"nakedret"},{"Name":"nestif"},{"Name":"nilerr"},{"Name":"nilnil"},{"Name":"nlreturn"},{"Name":"noctx"},{"Name":"nonamedreturns"},{"Name":"nosnakecase"},{"Name":"nosprintfhostport"},{"Name":"paralleltest"},{"Name":"prealloc"},{"Name":"predeclared"},{"Name":"promlinter"},{"Name":"revive"},{"Name":"rowserrcheck"},{"Name":"scopelint"},{"Name":"sqlclosecheck"},{"Name":"staticcheck","EnabledByDefault":true},{"Name":"structcheck"},{"Name":"stylecheck"},{"Name":"tagliatelle"},{"Name":"tenv"},{"Name":"testpackage"},{"Name":"thelper"},{"Name":"tparallel"},{"Name":"typecheck","EnabledByDefault":true},{"Name":"unconvert"},{"Name":"unparam"},{"Name":"unused","EnabledByDefault":true},{"Name":"usestdlibvars"},{"Name":"varcheck","EnabledByDefault":true},{"Name":"varnamelen"},{"Name":"wastedassign"},{"Name":"whitespace"},{"Name":"wrapcheck"},{"Name":"wsl"},{"Name":"nolintlint"}]}}` +const expectedJSONOutput = `{"Issues":[{"FromLinter":"misspell","Text":"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `","Severity":"","SourceLines":["\t// comment with incorrect spelling: occured // want \"` + "`" + `occured` + "`" + ` is a misspelling of ` + "`" + `occurred` + "`" + `\""],"Replacement":{"NeedOnlyDelete":false,"NewLines":null,"Inline":{"StartCol":37,"Length":7,"NewString":"occurred"}},"Pos":{"Filename":"testdata/misspell.go","Offset":0,"Line":6,"Column":38},"ExpectNoLint":false,"ExpectedNoLintLinter":""}]` -func TestOutput_Stderr(t *testing.T) { +func TestOutput_lineNumber(t *testing.T) { sourcePath := filepath.Join(testdataDir, "misspell.go") - fmt.Println(filepath.Abs(sourcePath)) testshared.NewRunnerBuilder(t). WithArgs( "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", - "--out-format=line-number,json:stderr", + "--out-format=line-number", ). WithDirectives(sourcePath). WithTargetPath(sourcePath). @@ -32,8 +32,25 @@ func TestOutput_Stderr(t *testing.T) { Install(). Run(). //nolint:misspell - ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`"). - ExpectOutputContains(expectedJSONOutput) + ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`") +} + +func TestOutput_Stderr(t *testing.T) { + sourcePath := filepath.Join(testdataDir, "misspell.go") + + testshared.NewRunnerBuilder(t). + WithArgs( + "--disable-all", + "--print-issued-lines=false", + "--print-linter-name=false", + "--out-format=json:stderr", + ). + WithDirectives(sourcePath). + WithTargetPath(sourcePath). + Runner(). + Install(). + Run(). + ExpectHasIssue(expectedJSONOutput) } func TestOutput_File(t *testing.T) { @@ -46,15 +63,14 @@ func TestOutput_File(t *testing.T) { "--disable-all", "--print-issued-lines=false", "--print-linter-name=false", - fmt.Sprintf("--out-format=json:%s,line-number", resultPath), + fmt.Sprintf("--out-format=json:%s", resultPath), ). WithDirectives(sourcePath). WithTargetPath(sourcePath). Runner(). Install(). Run(). - //nolint:misspell - ExpectHasIssue("testdata/misspell.go:6:38: `occured` is a misspelling of `occurred`") + ExpectExitCode(exitcodes.IssuesFound) b, err := os.ReadFile(resultPath) require.NoError(t, err) From 14714050d7c40c07bc266fd48c8143d4990951dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Aug 2022 13:31:10 +0200 Subject: [PATCH 150/162] build(deps): bump github.com/sashamelentyev/usestdlibvars from 1.10.0 to 1.13.0 (#3120) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 94ec973288ae..76e4765b14c1 100644 --- a/go.mod +++ b/go.mod @@ -74,7 +74,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 - github.com/sashamelentyev/usestdlibvars v1.10.0 + github.com/sashamelentyev/usestdlibvars v1.13.0 github.com/securego/gosec/v2 v2.13.1 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.22.7 @@ -173,7 +173,7 @@ require ( golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220804214406-8e32c043e418 // indirect + golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect diff --git a/go.sum b/go.sum index a928a03aa099..fbaf2ca8cb45 100644 --- a/go.sum +++ b/go.sum @@ -458,8 +458,8 @@ github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8 github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= -github.com/sashamelentyev/usestdlibvars v1.10.0 h1:hBW8NyJSmHImE/vI1r3gmGWiFkHtnqwd3DnoqoPxxj4= -github.com/sashamelentyev/usestdlibvars v1.10.0/go.mod h1:nBjNFNgqwmaJuFKBvv/KoewMqAQJ8Ijq0z1u2W3nQIo= +github.com/sashamelentyev/usestdlibvars v1.13.0 h1:uObNudVEEHf6JbOJy5bgKJloA1bWjxR9fwgNFpPzKnI= +github.com/sashamelentyev/usestdlibvars v1.13.0/go.mod h1:D2Wb7niIYmTB+gB8z7kh8tyP5ccof1dQ+SFk+WW5NtY= github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= github.com/securego/gosec/v2 v2.13.1/go.mod h1:EO1sImBMBWFjOTFzMWfTRrZW6M15gm60ljzrmy/wtHo= github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= @@ -747,8 +747,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220702020025-31831981b65f/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-20220804214406-8e32c043e418 h1:9vYwv7OjYaky/tlAeD7C4oC9EsPTlaFl1H2jS++V+ME= -golang.org/x/sys v0.0.0-20220804214406-8e32c043e418/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/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/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 69a49cf6141f7d21025000baaa7d3242e8a8e932 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Aug 2022 13:42:30 +0200 Subject: [PATCH 151/162] build(deps): bump github.com/GaijinEntertainment/go-exhaustruct/v2 from 2.2.2 to 2.3.0 (#3122) --- go.mod | 3 ++- go.sum | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 76e4765b14c1..42f507c4977c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/Antonboom/nilnil v0.1.1 github.com/BurntSushi/toml v1.2.0 github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 - github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 + github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 github.com/OpenPeeDeeP/depguard v1.1.0 github.com/alexkohler/prealloc v1.0.0 github.com/alingse/asasalint v0.0.11 @@ -170,6 +170,7 @@ require ( go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.17.0 // indirect + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect diff --git a/go.sum b/go.sum index fbaf2ca8cb45..bca0fd485365 100644 --- a/go.sum +++ b/go.sum @@ -48,8 +48,8 @@ github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 h1:DGdS4FlsdM6OkluXOhgkvwx05ZjD3Idm9WqtYnOmSuY= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2/go.mod h1:xj0D2jwLdp6tOKLheyZCsfL0nz8DaicmJxSwj3VcHtY= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 h1:+r1rSv4gvYn0wmRjC8X7IAzX8QezqtFV9m0MUHFJgts= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0/go.mod h1:b3g59n2Y+T5xmcxJL+UEG2f8cQploZm1mR/v6BW0mU0= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/OpenPeeDeeP/depguard v1.1.0 h1:pjK9nLPS1FwQYGGpPxoMYpe7qACHOhAWQMQzV71i49o= @@ -594,6 +594,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 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-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic= golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= From 1bb23af956a6216302cf9ea25cdd9dd60003b082 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Aug 2022 13:42:57 +0200 Subject: [PATCH 152/162] build(deps): bump github.com/mattn/go-colorable from 0.1.12 to 0.1.13 (#3123) --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 42f507c4977c..d94dfebbd95f 100644 --- a/go.mod +++ b/go.mod @@ -59,7 +59,7 @@ require ( github.com/lufeee/execinquery v1.2.1 github.com/maratori/testpackage v1.1.0 github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // v1.0 - github.com/mattn/go-colorable v0.1.12 + github.com/mattn/go-colorable v0.1.13 github.com/mbilski/exhaustivestruct v1.2.0 github.com/mgechev/revive v1.2.3 github.com/mitchellh/go-homedir v1.1.0 @@ -138,7 +138,7 @@ require ( github.com/kisielk/gotool v1.0.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.6 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect diff --git a/go.sum b/go.sum index bca0fd485365..12699238c722 100644 --- a/go.sum +++ b/go.sum @@ -347,11 +347,12 @@ github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859 github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= -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.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -739,7 +740,6 @@ golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBc 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-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= From 63b2fe004847ccbe4d744f392e749d575dd77be8 Mon Sep 17 00:00:00 2001 From: Sasha Melentyev Date: Sun, 21 Aug 2022 15:05:41 +0300 Subject: [PATCH 153/162] feat: add interfacebloat (#3024) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 7 ++ go.mod | 1 + go.sum | 2 + pkg/config/linters_settings.go | 5 ++ pkg/golinters/interfacebloat.go | 27 +++++++ pkg/lint/lintersdb/manager.go | 7 ++ test/testdata/interfacebloat.go | 126 ++++++++++++++++++++++++++++++++ 7 files changed, 175 insertions(+) create mode 100644 pkg/golinters/interfacebloat.go create mode 100644 test/testdata/interfacebloat.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index 408a3bad2a36..ac5dedea8183 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1074,6 +1074,11 @@ linters-settings: - pkg: knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+) alias: $1$2 + interfacebloat: + # The maximum number of methods allowed for an interface. + # Default: 10 + max: 5 + ireturn: # ireturn allows using `allow` and `reject` settings at the same time. # Both settings are lists of the keywords and regular expressions matched to interface or package names. @@ -1923,6 +1928,7 @@ linters: - ifshort - importas - ineffassign + - interfacebloat - interfacer - ireturn - lll @@ -2025,6 +2031,7 @@ linters: - ifshort - importas - ineffassign + - interfacebloat - interfacer - ireturn - lll diff --git a/go.mod b/go.mod index d94dfebbd95f..dc598b75d309 100644 --- a/go.mod +++ b/go.mod @@ -74,6 +74,7 @@ require ( github.com/ryancurrah/gomodguard v1.2.4 github.com/ryanrolds/sqlclosecheck v0.3.0 github.com/sanposhiho/wastedassign/v2 v2.0.6 + github.com/sashamelentyev/interfacebloat v1.1.0 github.com/sashamelentyev/usestdlibvars v1.13.0 github.com/securego/gosec/v2 v2.13.1 github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c diff --git a/go.sum b/go.sum index 12699238c722..c348e99fe7fc 100644 --- a/go.sum +++ b/go.sum @@ -459,6 +459,8 @@ github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8 github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= +github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= github.com/sashamelentyev/usestdlibvars v1.13.0 h1:uObNudVEEHf6JbOJy5bgKJloA1bWjxR9fwgNFpPzKnI= github.com/sashamelentyev/usestdlibvars v1.13.0/go.mod h1:D2Wb7niIYmTB+gB8z7kh8tyP5ccof1dQ+SFk+WW5NtY= github.com/securego/gosec/v2 v2.13.1 h1:7mU32qn2dyC81MH9L2kefnQyRMUarfDER3iQyMHcjYM= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 1e923409a05d..242a1de1f3d8 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -151,6 +151,7 @@ type LintersSettings struct { Grouper GrouperSettings Ifshort IfshortSettings ImportAs ImportAsSettings + InterfaceBloat InterfaceBloatSettings Ireturn IreturnSettings Lll LllSettings MaintIdx MaintIdxSettings @@ -454,6 +455,10 @@ type ImportAsAlias struct { Alias string } +type InterfaceBloatSettings struct { + Max int `mapstructure:"max"` +} + type IreturnSettings struct { Allow []string `mapstructure:"allow"` Reject []string `mapstructure:"reject"` diff --git a/pkg/golinters/interfacebloat.go b/pkg/golinters/interfacebloat.go new file mode 100644 index 000000000000..f9cf81c8130c --- /dev/null +++ b/pkg/golinters/interfacebloat.go @@ -0,0 +1,27 @@ +package golinters + +import ( + "github.com/sashamelentyev/interfacebloat/pkg/analyzer" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewInterfaceBloat(settings *config.InterfaceBloatSettings) *goanalysis.Linter { + a := analyzer.New() + + cfgMap := make(map[string]map[string]interface{}) + if settings != nil { + cfgMap[a.Name] = map[string]interface{}{ + analyzer.InterfaceMaxMethodsFlag: settings.Max, + } + } + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeSyntax) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 4552153c69bd..4d69aac6f6d2 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -137,6 +137,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { grouperCfg *config.GrouperSettings ifshortCfg *config.IfshortSettings importAsCfg *config.ImportAsSettings + interfaceBloatCfg *config.InterfaceBloatSettings ireturnCfg *config.IreturnSettings lllCfg *config.LllSettings maintIdxCfg *config.MaintIdxSettings @@ -209,6 +210,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { grouperCfg = &m.cfg.LintersSettings.Grouper ifshortCfg = &m.cfg.LintersSettings.Ifshort importAsCfg = &m.cfg.LintersSettings.ImportAs + interfaceBloatCfg = &m.cfg.LintersSettings.InterfaceBloat ireturnCfg = &m.cfg.LintersSettings.Ireturn lllCfg = &m.cfg.LintersSettings.Lll maintIdxCfg = &m.cfg.LintersSettings.MaintIdx @@ -557,6 +559,11 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetUnused). WithURL("https://github.com/gordonklaus/ineffassign"), + linter.NewConfig(golinters.NewInterfaceBloat(interfaceBloatCfg)). + WithSince("v1.49.0"). + WithPresets(linter.PresetStyle). + WithURL("https://github.com/sashamelentyev/interfacebloat"), + linter.NewConfig(golinters.NewInterfacer()). WithSince("v1.0.0"). WithLoadForGoAnalysis(). diff --git a/test/testdata/interfacebloat.go b/test/testdata/interfacebloat.go new file mode 100644 index 000000000000..e85ebd4a94b8 --- /dev/null +++ b/test/testdata/interfacebloat.go @@ -0,0 +1,126 @@ +//golangcitest:args -Einterfacebloat +package testdata + +import "time" + +type InterfaceBloatExample01 interface { // want "the interface has more than 10 methods: 11" + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() + a11() +} + +func InterfaceBloatExample02() { + var _ interface { // want "the interface has more than 10 methods: 11" + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() + a11() + } +} + +func InterfaceBloatExample03() interface { // want "the interface has more than 10 methods: 11" + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() + a11() +} { + return nil +} + +type InterfaceBloatExample04 struct { + Foo interface { // want "the interface has more than 10 methods: 11" + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() + a11() + } +} + +type InterfaceBloatSmall01 interface { + a01() time.Duration + a02() + a03() + a04() + a05() +} + +type InterfaceBloatSmall02 interface { + a06() + a07() + a08() + a09() + a10() + a11() +} + +type InterfaceBloatExample05 interface { + InterfaceBloatSmall01 + InterfaceBloatSmall02 +} + +type InterfaceBloatExample06 interface { + interface { // want "the interface has more than 10 methods: 11" + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() + a11() + } +} + +type InterfaceBloatTypeGeneric interface { + ~uint8 | ~uint16 | ~uint32 | ~uint64 | uint | + ~int8 | ~int16 | ~int32 | ~int64 | int | + ~float32 | ~float64 | + ~string +} + +func InterfaceBloatExampleNoProblem() interface { + a01() time.Duration + a02() + a03() + a04() + a05() + a06() + a07() + a08() + a09() + a10() +} { + return nil +} From 970b0a5bd7568f3a2b69f0af49be092c7a378307 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 21 Aug 2022 14:07:08 +0200 Subject: [PATCH 154/162] fix: set an explicit GOROOT in the Docker image for go-critic (#3106) --- .gitattributes | 1 - .github/workflows/tag.yml | 2 +- build/Dockerfile | 2 ++ build/{Dockerfile.alpine => alpine.Dockerfile} | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) rename build/{Dockerfile.alpine => alpine.Dockerfile} (90%) diff --git a/.gitattributes b/.gitattributes index 236bbf95fc20..32f1001be0a5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ go.sum linguist-generated -Dockerfile.* linguist-language=Dockerfile diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml index c2bb3e6c6047..e3cc09410ac4 100644 --- a/.github/workflows/tag.yml +++ b/.github/workflows/tag.yml @@ -37,7 +37,7 @@ jobs: matrix: target: - Dockerfile: build/Dockerfile - - Dockerfile: build/Dockerfile.alpine + - Dockerfile: build/alpine.Dockerfile steps: - uses: actions/checkout@v3 diff --git a/build/Dockerfile b/build/Dockerfile index 0bf96710448d..b3839a4eb1c8 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -11,6 +11,8 @@ RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$VERSION -X # stage 2 FROM golang:1.19 +# related to https://github.com/golangci/golangci-lint/issues/3107 +ENV GOROOT /usr/local/go # don't place it into $GOPATH/bin because Drone mounts $GOPATH as volume COPY --from=builder /golangci/golangci-lint /usr/bin/ CMD ["golangci-lint"] diff --git a/build/Dockerfile.alpine b/build/alpine.Dockerfile similarity index 90% rename from build/Dockerfile.alpine rename to build/alpine.Dockerfile index 37e97695d1a0..c19449fbc197 100644 --- a/build/Dockerfile.alpine +++ b/build/alpine.Dockerfile @@ -16,6 +16,8 @@ RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=$VERSION -X # stage 2 FROM golang:1.19-alpine +# related to https://github.com/golangci/golangci-lint/issues/3107 +ENV GOROOT /usr/local/go # gcc is required to support cgo; # git and mercurial are needed most times for go get`, etc. # See https://github.com/docker-library/golang/issues/80 From e1afce44332c177ae56e3fd8e6d0b1d6250d7b3f Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 21 Aug 2022 16:51:36 +0200 Subject: [PATCH 155/162] dev: improve runner to run dir with go.mod (#3124) --- test/linters_test.go | 35 ++++++++++++++++++++++++----- test/testshared/analysis.go | 6 ----- test/testshared/runner.go | 45 ++++++++++++++++++++++--------------- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/test/linters_test.go b/test/linters_test.go index 3d8ca694c58f..6794efa10045 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -1,13 +1,17 @@ package test import ( + "os" "os/exec" "path/filepath" + "strings" "testing" + "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/golangci/golangci-lint/pkg/logutils" "github.com/golangci/golangci-lint/test/testshared" ) @@ -28,18 +32,32 @@ func testSourcesFromDir(t *testing.T, dir string) { sources := findSources(t, dir, "*.go") - testshared.InstallGolangciLint(t) + binPath := testshared.InstallGolangciLint(t) - for _, s := range sources { - s := s - t.Run(filepath.Base(s), func(subTest *testing.T) { + cwd, err := os.Getwd() + require.NoError(t, err) + t.Cleanup(func() { _ = os.Chdir(cwd) }) + + err = os.Chdir(dir) + require.NoError(t, err) + + log := logutils.NewStderrLog("test") + log.SetLevel(logutils.LogLevelInfo) + + for _, source := range sources { + source := source + t.Run(filepath.Base(source), func(subTest *testing.T) { subTest.Parallel() - testOneSource(subTest, s) + + rel, err := filepath.Rel(dir, sources[0]) + require.NoError(t, err) + + testOneSource(subTest, log, binPath, rel) }) } } -func testOneSource(t *testing.T, sourcePath string) { +func testOneSource(t *testing.T, log *logutils.StderrLog, binPath, sourcePath string) { t.Helper() rc := testshared.ParseTestDirectives(t, sourcePath) @@ -62,6 +80,7 @@ func testOneSource(t *testing.T, sourcePath string) { } cmd := testshared.NewRunnerBuilder(t). + WithBinPath(binPath). WithNoParallelRunners(). WithArgs(caseArgs...). WithRunContext(rc). @@ -69,8 +88,12 @@ func testOneSource(t *testing.T, sourcePath string) { Runner(). Command() + startedAt := time.Now() + output, err := cmd.CombinedOutput() + log.Infof("ran [%s] in %s", strings.Join(cmd.Args, " "), time.Since(startedAt)) + // The returned error will be nil if the test file does not have any issues // and thus the linter exits with exit code 0. // So perform the additional assertions only if the error is non-nil. diff --git a/test/testshared/analysis.go b/test/testshared/analysis.go index 77e7d858a860..be1ed731275a 100644 --- a/test/testshared/analysis.go +++ b/test/testshared/analysis.go @@ -6,7 +6,6 @@ import ( "go/parser" "go/token" "os" - "path/filepath" "regexp" "sort" "strconv" @@ -21,8 +20,6 @@ import ( const keyword = "want" -const testdataDir = "testdata" - type jsonResult struct { Issues []*result.Issue } @@ -52,9 +49,6 @@ func Analyze(t *testing.T, sourcePath string, rawData []byte) { require.NoError(t, err) for _, issue := range reportData.Issues { - if !strings.HasPrefix(issue.Pos.Filename, testdataDir) { - issue.Pos.Filename = filepath.Join(testdataDir, issue.Pos.Filename) - } checkMessage(t, want, issue.Pos, "diagnostic", issue.FromLinter, issue.Text) } diff --git a/test/testshared/runner.go b/test/testshared/runner.go index 06c9e7303a51..1c3e3fba51ae 100644 --- a/test/testshared/runner.go +++ b/test/testshared/runner.go @@ -17,12 +17,13 @@ import ( "github.com/golangci/golangci-lint/pkg/logutils" ) -const binName = "../golangci-lint" +const defaultBinPath = "../golangci-lint" type RunnerBuilder struct { tb testing.TB log logutils.Log + binPath string command string env []string @@ -42,11 +43,18 @@ func NewRunnerBuilder(tb testing.TB) *RunnerBuilder { return &RunnerBuilder{ tb: tb, log: log, + binPath: defaultBinPath, command: "run", allowParallelRunners: true, } } +func (b *RunnerBuilder) WithBinPath(binPath string) *RunnerBuilder { + b.binPath = binPath + + return b +} + func (b *RunnerBuilder) WithCommand(command string) *RunnerBuilder { b.command = command @@ -162,6 +170,7 @@ func (b *RunnerBuilder) Runner() *Runner { } return &Runner{ + binPath: b.binPath, log: b.log, tb: b.tb, env: b.env, @@ -174,6 +183,7 @@ type Runner struct { log logutils.Log tb testing.TB + binPath string env []string command string args []string @@ -197,11 +207,10 @@ func (r *Runner) Run() *RunnerResult { runArgs := append([]string{r.command}, r.args...) defer func(startedAt time.Time) { - r.log.Infof("ran [%s %s] in %s", binName, strings.Join(runArgs, " "), time.Since(startedAt)) + r.log.Infof("ran [%s %s] in %s", r.binPath, strings.Join(runArgs, " "), time.Since(startedAt)) }(time.Now()) - cmd := exec.Command(binName, runArgs...) - cmd.Env = append(os.Environ(), r.env...) + cmd := r.Command() out, err := cmd.CombinedOutput() if err != nil { @@ -239,11 +248,8 @@ func (r *Runner) Command() *exec.Cmd { runArgs := append([]string{r.command}, r.args...) - defer func(startedAt time.Time) { - r.log.Infof("ran [../golangci-lint %s] in %s", strings.Join(runArgs, " "), time.Since(startedAt)) - }(time.Now()) - - cmd := exec.Command("../golangci-lint", runArgs...) + //nolint:gosec + cmd := exec.Command(r.binPath, runArgs...) cmd.Env = append(os.Environ(), r.env...) return cmd @@ -311,19 +317,22 @@ func (r *RunnerResult) ExpectHasIssue(issueText string) *RunnerResult { return r.ExpectExitCode(exitcodes.IssuesFound).ExpectOutputContains(issueText) } -func InstallGolangciLint(tb testing.TB) { +func InstallGolangciLint(tb testing.TB) string { tb.Helper() - if os.Getenv("GOLANGCI_LINT_INSTALLED") == "true" { - return - } + if os.Getenv("GOLANGCI_LINT_INSTALLED") != "true" { + cmd := exec.Command("make", "-C", "..", "build") - cmd := exec.Command("make", "-C", "..", "build") + output, err := cmd.CombinedOutput() + if err != nil { + tb.Log(string(output)) + } - output, err := cmd.CombinedOutput() - if err != nil { - tb.Log(string(output)) + require.NoError(tb, err, "Can't go install golangci-lint") } - require.NoError(tb, err, "Can't go install golangci-lint") + abs, err := filepath.Abs(defaultBinPath) + require.NoError(tb, err) + + return abs } From 37d3aa437a9192ae167c71e63719ddf1c858be7f Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 21 Aug 2022 21:37:47 +0200 Subject: [PATCH 156/162] feat: deprecate varcheck, deadcode, and structcheck (#3125) --- .golangci.yml | 3 --- pkg/lint/lintersdb/manager.go | 9 ++++--- pkg/result/processors/nolint_test.go | 25 ++++++++++++------- pkg/result/processors/processor_test.go | 6 +++++ .../processors/testdata/nolint_bad_names.go | 23 ++++++++++++++--- .../processors/testdata/nolint_whole_file.go | 14 +++++++++-- test/bench/bench_test.go | 5 ---- test/run_test.go | 15 ++--------- test/testdata/deadcode.go | 2 +- test/testdata/deadcode_main_pkg/main_test.go | 15 ----------- test/testdata/gomodguard.go | 4 +-- test/testdata/nolintlint.go | 2 +- test/testdata/varcheck.go | 2 +- 13 files changed, 66 insertions(+), 59 deletions(-) delete mode 100644 test/testdata/deadcode_main_pkg/main_test.go diff --git a/.golangci.yml b/.golangci.yml index 90c71c9eb678..c12bc0d439cb 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -68,7 +68,6 @@ linters: disable-all: true enable: - bodyclose - - deadcode - depguard - dogsled - dupl @@ -93,13 +92,11 @@ linters: - noctx - nolintlint - staticcheck - - structcheck - stylecheck - typecheck - unconvert - unparam - unused - - varcheck - whitespace # don't enable: diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 4d69aac6f6d2..668eae22ff0a 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -320,7 +320,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). - WithURL("https://github.com/remyoudompheng/go-misc/tree/master/deadcode"), + WithURL("https://github.com/remyoudompheng/go-misc/tree/master/deadcode"). + Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"), linter.NewConfig(golinters.NewDepguard(depGuardCfg)). WithSince("v1.4.0"). @@ -714,6 +715,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). WithURL("https://github.com/opennota/check"). + Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"). WithNoopFallback(m.cfg), linter.NewConfig(golinters.NewStylecheck(stylecheckCfg)). @@ -786,7 +788,8 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.0.0"). WithLoadForGoAnalysis(). WithPresets(linter.PresetUnused). - WithURL("https://github.com/opennota/check"), + WithURL("https://github.com/opennota/check"). + Deprecated("The owner seems to have abandoned the linter.", "v1.49.0", "unused"), linter.NewConfig(golinters.NewVarnamelen(varnamelenCfg)). WithSince("v1.43.0"). @@ -831,9 +834,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { golinters.NewStaticcheck(staticcheckCfg).Name(): true, golinters.NewUnused(unusedCfg).Name(): true, golinters.NewGosimple(gosimpleCfg).Name(): true, - golinters.NewVarcheck(varcheckCfg).Name(): true, golinters.NewIneffassign().Name(): true, - golinters.NewDeadcode().Name(): true, golinters.NewTypecheck().Name(): true, } return enableLinterConfigs(lcs, func(lc *linter.Config) bool { diff --git a/pkg/result/processors/nolint_test.go b/pkg/result/processors/nolint_test.go index 97ab34e51379..0ebe8c9a78a0 100644 --- a/pkg/result/processors/nolint_test.go +++ b/pkg/result/processors/nolint_test.go @@ -128,16 +128,23 @@ func TestNolintInvalidLinterName(t *testing.T) { { Pos: token.Position{ Filename: fileName, - Line: 3, + Line: 10, }, - FromLinter: "varcheck", + FromLinter: "errcheck", + }, + { + Pos: token.Position{ + Filename: fileName, + Line: 13, + }, + FromLinter: "errcheck", }, { Pos: token.Position{ Filename: fileName, - Line: 6, + Line: 22, }, - FromLinter: "deadcode", + FromLinter: "ineffassign", }, } @@ -244,22 +251,22 @@ func TestIgnoredRangeMatches(t *testing.T) { func TestNolintWholeFile(t *testing.T) { fileName := filepath.Join("testdata", "nolint_whole_file.go") - p := newTestNolintProcessor(nil) + p := newTestNolintProcessor(getMockLog()) defer p.Finish() processAssertEmpty(t, p, result.Issue{ Pos: token.Position{ Filename: fileName, - Line: 4, + Line: 9, }, - FromLinter: "varcheck", + FromLinter: "errcheck", }) processAssertSame(t, p, result.Issue{ Pos: token.Position{ Filename: fileName, - Line: 4, + Line: 14, }, - FromLinter: "deadcode", + FromLinter: "govet", }) } diff --git a/pkg/result/processors/processor_test.go b/pkg/result/processors/processor_test.go index ef9117416255..3f396b437266 100644 --- a/pkg/result/processors/processor_test.go +++ b/pkg/result/processors/processor_test.go @@ -35,17 +35,23 @@ func newIssueFromTextTestCase(text string) result.Issue { } func process(t *testing.T, p Processor, issues ...result.Issue) []result.Issue { + t.Helper() + processedIssues, err := p.Process(issues) assert.NoError(t, err) return processedIssues } func processAssertSame(t *testing.T, p Processor, issues ...result.Issue) { + t.Helper() + processedIssues := process(t, p, issues...) assert.Equal(t, issues, processedIssues) } func processAssertEmpty(t *testing.T, p Processor, issues ...result.Issue) { + t.Helper() + processedIssues := process(t, p, issues...) assert.Empty(t, processedIssues) } diff --git a/pkg/result/processors/testdata/nolint_bad_names.go b/pkg/result/processors/testdata/nolint_bad_names.go index c3b04dfb6ab2..2335751a5bec 100644 --- a/pkg/result/processors/testdata/nolint_bad_names.go +++ b/pkg/result/processors/testdata/nolint_bad_names.go @@ -1,8 +1,25 @@ package testdata -var nolintUnknownLinter1 bool //nolint:bad1,deadcode,varcheck,megacheck +import "math" -//nolint:bad2,deadcode,megacheck -func nolintUnknownLinter2() { +func RetErr() error { + return nil +} + +func MissedErrorCheck() { + RetErr() //nolint:bad1,errcheck +} + +//nolint:bad2,errcheck +func MissedErrorCheck2() { + RetErr() +} +func _() { + x := math.MinInt8 + for { + _ = x + x = 0 //nolint:bad1,ineffassign + x = 0 + } } diff --git a/pkg/result/processors/testdata/nolint_whole_file.go b/pkg/result/processors/testdata/nolint_whole_file.go index e0f93c83b2f8..49826524d31c 100644 --- a/pkg/result/processors/testdata/nolint_whole_file.go +++ b/pkg/result/processors/testdata/nolint_whole_file.go @@ -1,4 +1,14 @@ -//nolint: varcheck +//nolint:errcheck package testdata -var nolintVarcheck int +func RetError() error { + return nil +} + +func MissedErrorCheck1() { + RetErr() +} + +func jo(v, w bool) bool { + return v == w || v == w +} diff --git a/test/bench/bench_test.go b/test/bench/bench_test.go index 3e565b9732c1..c96d14a37453 100644 --- a/test/bench/bench_test.go +++ b/test/bench/bench_test.go @@ -47,12 +47,7 @@ func prepareGithubProject(owner, name string) func(*testing.B) { func getBenchLintersArgsNoMegacheck() []string { return []string{ - "--enable=deadcode", "--enable=gocyclo", - "--enable=golint", - "--enable=varcheck", - "--enable=structcheck", - "--enable=maligned", "--enable=errcheck", "--enable=dupl", "--enable=ineffassign", diff --git a/test/run_test.go b/test/run_test.go index bde6f4347952..2128a68c5f9a 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -251,8 +251,8 @@ func TestSortedResults(t *testing.T) { { opt: "--sort-results=false", want: strings.Join([]string{ - "testdata/sort_results/main.go:12:5: `db` is unused (deadcode)", "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", + "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", }, "\n"), }, @@ -260,7 +260,7 @@ func TestSortedResults(t *testing.T) { opt: "--sort-results=true", want: strings.Join([]string{ "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", - "testdata/sort_results/main.go:12:5: `db` is unused (deadcode)", + "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", }, "\n"), }, @@ -435,17 +435,6 @@ func TestSkippedDirsTestdata(t *testing.T) { ExpectNoIssues() // all was skipped because in testdata } -func TestDeadcodeNoFalsePositivesInMainPkg(t *testing.T) { - testshared.NewRunnerBuilder(t). - WithNoConfig(). - WithArgs("--disable-all", "-Edeadcode"). - WithTargetPath(testdataDir, "deadcode_main_pkg"). - Runner(). - Install(). - Run(). - ExpectNoIssues() -} - func TestIdentifierUsedOnlyInTests(t *testing.T) { testshared.NewRunnerBuilder(t). WithNoConfig(). diff --git a/test/testdata/deadcode.go b/test/testdata/deadcode.go index e2c55580dd34..670047a548f0 100644 --- a/test/testdata/deadcode.go +++ b/test/testdata/deadcode.go @@ -1,4 +1,4 @@ -//golangcitest:args -Edeadcode +//golangcitest:args -Edeadcode --internal-cmd-test package testdata var y int diff --git a/test/testdata/deadcode_main_pkg/main_test.go b/test/testdata/deadcode_main_pkg/main_test.go deleted file mode 100644 index 6a30794fa9ff..000000000000 --- a/test/testdata/deadcode_main_pkg/main_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package main - -import "testing" - -func TestF(t *testing.T) { - -} - -func BenchmarkF(t *testing.B) { - -} - -func ExampleF() { - -} diff --git a/test/testdata/gomodguard.go b/test/testdata/gomodguard.go index a4c18c4ce50e..9cb1cf68f67c 100644 --- a/test/testdata/gomodguard.go +++ b/test/testdata/gomodguard.go @@ -12,13 +12,13 @@ import ( // Something just some struct type Something struct{} -func aAllowedImport() { //nolint:deadcode,unused +func aAllowedImport() { //nolint:unused mfile, _ := modfile.Parse("go.mod", []byte{}, nil) log.Println(mfile) } -func aBlockedImport() { //nolint:deadcode,unused +func aBlockedImport() { //nolint:unused data := []byte{} something := Something{} _ = yaml.Unmarshal(data, &something) diff --git a/test/testdata/nolintlint.go b/test/testdata/nolintlint.go index 719576b77531..adb7bbd50a03 100644 --- a/test/testdata/nolintlint.go +++ b/test/testdata/nolintlint.go @@ -8,7 +8,7 @@ import "fmt" func Foo() { fmt.Println("not specific") //nolint // want "directive `.*` should mention specific linter such as `//nolint:my-linter`" fmt.Println("not machine readable") // nolint // want "directive `.*` should be written as `//nolint`" - fmt.Println("extra spaces") // nolint:deadcode // because // want "directive `.*` should not have more than one leading space" + fmt.Println("extra spaces") // nolint:unused // because // want "directive `.*` should not have more than one leading space" // test expanded range //nolint:misspell // deliberate misspelling to trigger nolintlint diff --git a/test/testdata/varcheck.go b/test/testdata/varcheck.go index d4bc8f7bc5a4..858c236d2010 100644 --- a/test/testdata/varcheck.go +++ b/test/testdata/varcheck.go @@ -1,4 +1,4 @@ -//golangcitest:args -Evarcheck +//golangcitest:args -Evarcheck --internal-cmd-test package testdata var v string // want "`v` is unused" From 3aea4ce9ced663f34beb27a7c944c0eac68d778f Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 21 Aug 2022 22:52:03 +0200 Subject: [PATCH 157/162] fix: flaky tests --- test/run_test.go | 2 -- test/testdata/sort_results/main.go | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/test/run_test.go b/test/run_test.go index 2128a68c5f9a..51d0ad86a379 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -253,13 +253,11 @@ func TestSortedResults(t *testing.T) { want: strings.Join([]string{ "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", - "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", }, "\n"), }, { opt: "--sort-results=true", want: strings.Join([]string{ - "testdata/sort_results/main.go:8:6: func `returnError` is unused (unused)", "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", }, "\n"), diff --git a/test/testdata/sort_results/main.go b/test/testdata/sort_results/main.go index 2d7c3d38869f..293f6e6da72a 100644 --- a/test/testdata/sort_results/main.go +++ b/test/testdata/sort_results/main.go @@ -11,6 +11,6 @@ func returnError() error { var db *sql.DB -func _() { +func Example() { returnError() } From 320a18eb372f5a1084b038633095a3955c806d9b Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 21 Aug 2022 23:03:16 +0200 Subject: [PATCH 158/162] dev: concat string --- test/run_test.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/run_test.go b/test/run_test.go index 51d0ad86a379..ea5013c14b33 100644 --- a/test/run_test.go +++ b/test/run_test.go @@ -250,17 +250,13 @@ func TestSortedResults(t *testing.T) { }{ { opt: "--sort-results=false", - want: strings.Join([]string{ - "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", + want: "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)" + "\n" + "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", - }, "\n"), }, { opt: "--sort-results=true", - want: strings.Join([]string{ - "testdata/sort_results/main.go:12:5: var `db` is unused (unused)", + want: "testdata/sort_results/main.go:12:5: var `db` is unused (unused)" + "\n" + "testdata/sort_results/main.go:15:13: Error return value is not checked (errcheck)", - }, "\n"), }, } From f48530e25ea0b1db098c025a27348a720c4492b7 Mon Sep 17 00:00:00 2001 From: Timon Wong Date: Tue, 23 Aug 2022 04:49:39 +0800 Subject: [PATCH 159/162] feat: add logrlint (#3093) Co-authored-by: Fernandez Ludovic --- .golangci.reference.yml | 2 ++ Makefile | 4 ++++ go.mod | 1 + go.sum | 2 ++ pkg/golinters/logrlint.go | 19 +++++++++++++++++++ pkg/lint/lintersdb/manager.go | 6 ++++++ test/linters_test.go | 12 ++++++++++++ test/testdata/logrlint/go.mod | 5 +++++ test/testdata/logrlint/go.sum | 2 ++ test/testdata/logrlint/logrlint.go | 16 ++++++++++++++++ 10 files changed, 69 insertions(+) create mode 100644 pkg/golinters/logrlint.go create mode 100644 test/testdata/logrlint/go.mod create mode 100644 test/testdata/logrlint/go.sum create mode 100644 test/testdata/logrlint/logrlint.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index ac5dedea8183..e02897245170 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1932,6 +1932,7 @@ linters: - interfacer - ireturn - lll + - logrlint - maintidx - makezero - maligned @@ -2035,6 +2036,7 @@ linters: - interfacer - ireturn - lll + - logrlint - maintidx - makezero - maligned diff --git a/Makefile b/Makefile index 0933674f1e87..9561191f9990 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,10 @@ test_linters: GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdata/$T .PHONY: test_linters +test_linters_sub: + GL_TEST_RUN=1 go test -v ./test -count 1 -run TestSourcesFromTestdataSubDir/$T +.PHONY: test_linters_sub + # Maintenance fast_generate: assets/github-action-config.json diff --git a/go.mod b/go.mod index dc598b75d309..4069dee67f7b 100644 --- a/go.mod +++ b/go.mod @@ -94,6 +94,7 @@ require ( github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 + github.com/timonwong/logrlint v0.1.0 github.com/tomarrell/wrapcheck/v2 v2.6.2 github.com/tommy-muehle/go-mnd/v2 v2.5.0 github.com/ultraware/funlen v0.0.3 diff --git a/go.sum b/go.sum index c348e99fe7fc..d615d7da055f 100644 --- a/go.sum +++ b/go.sum @@ -530,6 +530,8 @@ github.com/tetafro/godot v1.4.11 h1:BVoBIqAf/2QdbFmSwAWnaIqDivZdOV0ZRwEm6jivLKw= github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 h1:kl4KhGNsJIbDHS9/4U9yQo1UcPQM0kOMJHn29EoH/Ro= github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/timonwong/logrlint v0.1.0 h1:phZCcypL/vtx6cGxObJgWZ5wexZF5SXFPLOM+ru0e/M= +github.com/timonwong/logrlint v0.1.0/go.mod h1:Zleg4Gw+kRxNej+Ra7o+tEaW5k1qthTaYKU7rSD39LU= github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= diff --git a/pkg/golinters/logrlint.go b/pkg/golinters/logrlint.go new file mode 100644 index 000000000000..9899808c7476 --- /dev/null +++ b/pkg/golinters/logrlint.go @@ -0,0 +1,19 @@ +package golinters + +import ( + "github.com/timonwong/logrlint" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewLogrLint() *goanalysis.Linter { + a := logrlint.Analyzer + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + nil, + ).WithLoadMode(goanalysis.LoadModeTypesInfo) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 668eae22ff0a..9a1f1fa4d5f0 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -582,6 +582,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.8.0"). WithPresets(linter.PresetStyle), + linter.NewConfig(golinters.NewLogrLint()). + WithSince("v1.49.0"). + WithLoadForGoAnalysis(). + WithPresets(linter.PresetBugs). + WithURL("https://github.com/timonwong/logrlint"), + linter.NewConfig(golinters.NewMaintIdx(maintIdxCfg)). WithSince("v1.44.0"). WithPresets(linter.PresetComplexity). diff --git a/test/linters_test.go b/test/linters_test.go index 6794efa10045..db2ce7d0eb21 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -25,6 +25,18 @@ func TestTypecheck(t *testing.T) { testSourcesFromDir(t, filepath.Join(testdataDir, "notcompiles")) } +func TestSourcesFromTestdataSubDir(t *testing.T) { + subDirs := []string{ + "logrlint", + } + + for _, dir := range subDirs { + t.Run(dir, func(t *testing.T) { + testSourcesFromDir(t, filepath.Join(testdataDir, dir)) + }) + } +} + func testSourcesFromDir(t *testing.T, dir string) { t.Helper() diff --git a/test/testdata/logrlint/go.mod b/test/testdata/logrlint/go.mod new file mode 100644 index 000000000000..a9d8d16ad374 --- /dev/null +++ b/test/testdata/logrlint/go.mod @@ -0,0 +1,5 @@ +module logrlint + +go 1.16 + +require github.com/go-logr/logr v1.2.3 diff --git a/test/testdata/logrlint/go.sum b/test/testdata/logrlint/go.sum new file mode 100644 index 000000000000..6da913857d04 --- /dev/null +++ b/test/testdata/logrlint/go.sum @@ -0,0 +1,2 @@ +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= diff --git a/test/testdata/logrlint/logrlint.go b/test/testdata/logrlint/logrlint.go new file mode 100644 index 000000000000..6277dea4e146 --- /dev/null +++ b/test/testdata/logrlint/logrlint.go @@ -0,0 +1,16 @@ +//golangcitest:args -Elogrlint +package logrlint + +import ( + "fmt" + + "github.com/go-logr/logr" +) + +func Example() { + log := logr.Discard() + log = log.WithValues("key") // want `odd number of arguments passed as key-value pairs for logging` + log.Info("message", "key1", "value1", "key2", "value2", "key3") // want `odd number of arguments passed as key-value pairs for logging` + log.Error(fmt.Errorf("error"), "message", "key1", "value1", "key2") // want `odd number of arguments passed as key-value pairs for logging` + log.Error(fmt.Errorf("error"), "message", "key1", "value1", "key2", "value2") +} From 77962e92832feaf1e2e9056bc66869fa0e6ebc5d Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 23 Aug 2022 10:33:57 +0200 Subject: [PATCH 160/162] dev: fix linter tests (#3128) --- test/linters_test.go | 2 +- test/testshared/runner.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/linters_test.go b/test/linters_test.go index db2ce7d0eb21..0293a74f4c5f 100644 --- a/test/linters_test.go +++ b/test/linters_test.go @@ -61,7 +61,7 @@ func testSourcesFromDir(t *testing.T, dir string) { t.Run(filepath.Base(source), func(subTest *testing.T) { subTest.Parallel() - rel, err := filepath.Rel(dir, sources[0]) + rel, err := filepath.Rel(dir, source) require.NoError(t, err) testOneSource(subTest, log, binPath, rel) diff --git a/test/testshared/runner.go b/test/testshared/runner.go index 1c3e3fba51ae..0c54af7db5e2 100644 --- a/test/testshared/runner.go +++ b/test/testshared/runner.go @@ -104,7 +104,17 @@ func (b *RunnerBuilder) WithRunContext(rc *RunContext) *RunnerBuilder { return b } - return b.WithConfigFile(rc.ConfigPath).WithArgs(rc.Args...) + dir, err := os.Getwd() + require.NoError(b.tb, err) + + configPath := filepath.FromSlash(rc.ConfigPath) + + base := filepath.Base(dir) + if strings.HasPrefix(configPath, base) { + configPath = strings.TrimPrefix(configPath, base+string(filepath.Separator)) + } + + return b.WithConfigFile(configPath).WithArgs(rc.Args...) } func (b *RunnerBuilder) WithDirectives(sourcePath string) *RunnerBuilder { From 58809c3bf5d4e94500f7880978b6eb5e204f0f96 Mon Sep 17 00:00:00 2001 From: Choko Date: Tue, 23 Aug 2022 20:19:26 +0900 Subject: [PATCH 161/162] feat: add reassign linter (#3064) --- .golangci.reference.yml | 9 ++++++ go.mod | 1 + go.sum | 2 ++ pkg/config/linters_settings.go | 5 ++++ pkg/golinters/reassign.go | 32 +++++++++++++++++++++ pkg/lint/lintersdb/manager.go | 7 +++++ test/testdata/configs/reassign_patterns.yml | 5 ++++ test/testdata/reassign.go | 13 +++++++++ test/testdata/reassign_patterns.go | 14 +++++++++ 9 files changed, 88 insertions(+) create mode 100644 pkg/golinters/reassign.go create mode 100644 test/testdata/configs/reassign_patterns.yml create mode 100644 test/testdata/reassign.go create mode 100644 test/testdata/reassign_patterns.go diff --git a/.golangci.reference.yml b/.golangci.reference.yml index e02897245170..2baf9f7f67e7 100644 --- a/.golangci.reference.yml +++ b/.golangci.reference.yml @@ -1225,6 +1225,13 @@ linters-settings: - CamelCase - UnitAbbreviations + reassign: + # Patterns for global variable names that are checked for reassignment. + # See https://github.com/curioswitch/go-reassign#usage + # Default: ["EOF", "Err.*"] + patterns: + - ".*" + revive: # Maximum number of open files at the same time. # See https://github.com/mgechev/revive#command-line-flags @@ -1951,6 +1958,7 @@ linters: - prealloc - predeclared - promlinter + - reassign - revive - rowserrcheck - scopelint @@ -2055,6 +2063,7 @@ linters: - prealloc - predeclared - promlinter + - reassign - revive - rowserrcheck - scopelint diff --git a/go.mod b/go.mod index 4069dee67f7b..46d111d92b1d 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,7 @@ require ( github.com/breml/errchkjson v0.3.0 github.com/butuzov/ireturn v0.1.1 github.com/charithe/durationcheck v0.0.9 + github.com/curioswitch/go-reassign v0.1.2 github.com/daixiang0/gci v0.6.3 github.com/denis-tingaikin/go-header v0.4.3 github.com/esimonov/ifshort v1.0.4 diff --git a/go.sum b/go.sum index d615d7da055f..e2e7ec2fa9ee 100644 --- a/go.sum +++ b/go.sum @@ -103,6 +103,8 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cristalhq/acmd v0.7.0/go.mod h1:LG5oa43pE/BbxtfMoImHCQN++0Su7dzipdgBjMCBVDQ= +github.com/curioswitch/go-reassign v0.1.2 h1:ekM07+z+VFT560Exz4mTv0/s1yU9gem6CJc/tlYpkmI= +github.com/curioswitch/go-reassign v0.1.2/go.mod h1:bFJIHgtTM3hRm2sKXSPkbwNjSFyGURQXyn4IXD2qwfQ= github.com/daixiang0/gci v0.6.3 h1:wUAqXChk8HbwXn8AfxD9DYSCp9Bpz1L3e6Q4Roe+q9E= github.com/daixiang0/gci v0.6.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 242a1de1f3d8..f1c36c380d60 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -168,6 +168,7 @@ type LintersSettings struct { Prealloc PreallocSettings Predeclared PredeclaredSettings Promlinter PromlinterSettings + Reassign ReassignSettings Revive ReviveSettings RowsErrCheck RowsErrCheckSettings Staticcheck StaticCheckSettings @@ -532,6 +533,10 @@ type PromlinterSettings struct { DisabledLinters []string `mapstructure:"disabled-linters"` } +type ReassignSettings struct { + Patterns []string `mapstructure:"patterns"` +} + type ReviveSettings struct { MaxOpenFiles int `mapstructure:"max-open-files"` IgnoreGeneratedHeader bool `mapstructure:"ignore-generated-header"` diff --git a/pkg/golinters/reassign.go b/pkg/golinters/reassign.go new file mode 100644 index 000000000000..a9ff67ee07aa --- /dev/null +++ b/pkg/golinters/reassign.go @@ -0,0 +1,32 @@ +package golinters + +import ( + "fmt" + "strings" + + "github.com/curioswitch/go-reassign" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewReassign(settings *config.ReassignSettings) *goanalysis.Linter { + a := reassign.NewAnalyzer() + + var cfg map[string]map[string]interface{} + if settings != nil && len(settings.Patterns) > 0 { + cfg = map[string]map[string]interface{}{ + a.Name: { + reassign.FlagPattern: fmt.Sprintf("^(%s)$", strings.Join(settings.Patterns, "|")), + }, + } + } + + return goanalysis.NewLinter( + a.Name, + a.Doc, + []*analysis.Analyzer{a}, + cfg, + ).WithLoadMode(goanalysis.LoadModeSyntax) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 9a1f1fa4d5f0..8eb119437866 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -154,6 +154,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { preallocCfg *config.PreallocSettings predeclaredCfg *config.PredeclaredSettings promlinterCfg *config.PromlinterSettings + reassignCfg *config.ReassignSettings reviveCfg *config.ReviveSettings rowserrcheckCfg *config.RowsErrCheckSettings staticcheckCfg *config.StaticCheckSettings @@ -227,6 +228,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { parallelTestCfg = &m.cfg.LintersSettings.ParallelTest predeclaredCfg = &m.cfg.LintersSettings.Predeclared promlinterCfg = &m.cfg.LintersSettings.Promlinter + reassignCfg = &m.cfg.LintersSettings.Reassign reviveCfg = &m.cfg.LintersSettings.Revive rowserrcheckCfg = &m.cfg.LintersSettings.RowsErrCheck staticcheckCfg = &m.cfg.LintersSettings.Staticcheck @@ -683,6 +685,11 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetStyle). WithURL("https://github.com/yeya24/promlinter"), + linter.NewConfig(golinters.NewReassign(reassignCfg)). + WithSince("1.49.0"). + WithPresets(linter.PresetBugs). + WithURL("https://github.com/curioswitch/go-reassign"), + linter.NewConfig(golinters.NewRevive(reviveCfg)). WithSince("v1.37.0"). WithPresets(linter.PresetStyle, linter.PresetMetaLinter). diff --git a/test/testdata/configs/reassign_patterns.yml b/test/testdata/configs/reassign_patterns.yml new file mode 100644 index 000000000000..5af124dbd4f1 --- /dev/null +++ b/test/testdata/configs/reassign_patterns.yml @@ -0,0 +1,5 @@ +linters-settings: + reassign: + patterns: + - DefaultClient + - DefaultTransport diff --git a/test/testdata/reassign.go b/test/testdata/reassign.go new file mode 100644 index 000000000000..27a7baa5121e --- /dev/null +++ b/test/testdata/reassign.go @@ -0,0 +1,13 @@ +//golangcitest:args -Ereassign +package testdata + +import ( + "io" + "net/http" +) + +func reassignTest() { + http.DefaultClient = nil + http.DefaultTransport = nil + io.EOF = nil // want `reassigning variable EOF in other package io` +} diff --git a/test/testdata/reassign_patterns.go b/test/testdata/reassign_patterns.go new file mode 100644 index 000000000000..dc83cd71c0ef --- /dev/null +++ b/test/testdata/reassign_patterns.go @@ -0,0 +1,14 @@ +//golangcitest:args -Ereassign +//golangcitest:config_path testdata/configs/reassign_patterns.yml +package testdata + +import ( + "io" + "net/http" +) + +func reassignTestPatterns() { + http.DefaultClient = nil // want `reassigning variable DefaultClient in other package http` + http.DefaultTransport = nil // want `reassigning variable DefaultTransport in other package http` + io.EOF = nil +} From cc2d97f31dea62c47c55d5b7a93637e242df7ad1 Mon Sep 17 00:00:00 2001 From: sylvia <1227977886@qq.com> Date: Tue, 23 Aug 2022 20:03:20 +0800 Subject: [PATCH 162/162] contextcheck: bump to v1.0.6 && re-enable (#3102) --- go.mod | 2 +- go.sum | 4 ++-- pkg/golinters/contextcheck.go | 13 +++++++++---- pkg/lint/lintersdb/manager.go | 3 +-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 46d111d92b1d..cff3b89fc920 100644 --- a/go.mod +++ b/go.mod @@ -91,7 +91,7 @@ require ( github.com/ssgreg/nlreturn/v2 v2.2.1 github.com/stbenjam/no-sprintf-host-port v0.1.1 github.com/stretchr/testify v1.8.0 - github.com/sylvia7788/contextcheck v1.0.4 + github.com/sylvia7788/contextcheck v1.0.6 github.com/tdakkota/asciicheck v0.1.1 github.com/tetafro/godot v1.4.11 github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 diff --git a/go.sum b/go.sum index e2e7ec2fa9ee..cb8bbdd72363 100644 --- a/go.sum +++ b/go.sum @@ -520,8 +520,8 @@ github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PK github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.4.0 h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs= github.com/subosito/gotenv v1.4.0/go.mod h1:mZd6rFysKEcUhUHXJk0C/08wAgyDBFuwEYL7vWWGaGo= -github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= -github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= +github.com/sylvia7788/contextcheck v1.0.6 h1:o2EZgVPyMKE/Mtoqym61DInKEjwEbsmyoxg3VrmjNO4= +github.com/sylvia7788/contextcheck v1.0.6/go.mod h1:9XDxwvxyuKD+8N+a7Gs7bfWLityh5t70g/GjdEt2N2M= github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= diff --git a/pkg/golinters/contextcheck.go b/pkg/golinters/contextcheck.go index 38ede810dec9..9ec35796b282 100644 --- a/pkg/golinters/contextcheck.go +++ b/pkg/golinters/contextcheck.go @@ -5,13 +5,18 @@ import ( "golang.org/x/tools/go/analysis" "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" + "github.com/golangci/golangci-lint/pkg/lint/linter" ) func NewContextCheck() *goanalysis.Linter { + analyzer := contextcheck.NewAnalyzer(contextcheck.Configuration{}) + return goanalysis.NewLinter( - "contextcheck", - "check the function whether use a non-inherited context", - []*analysis.Analyzer{contextcheck.NewAnalyzer()}, + analyzer.Name, + analyzer.Doc, + []*analysis.Analyzer{analyzer}, nil, - ).WithLoadMode(goanalysis.LoadModeTypesInfo) + ).WithContextSetter(func(lintCtx *linter.Context) { + analyzer.Run = contextcheck.NewRun(lintCtx.Packages, false) + }).WithLoadMode(goanalysis.LoadModeTypesInfo) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 8eb119437866..b17ce3befd79 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -304,8 +304,7 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithSince("v1.43.0"). WithPresets(linter.PresetBugs). WithLoadForGoAnalysis(). - WithURL("https://github.com/sylvia7788/contextcheck"). - WithNoopFallback(m.cfg), + WithURL("https://github.com/sylvia7788/contextcheck"), linter.NewConfig(golinters.NewCyclop(cyclopCfg)). WithSince("v1.37.0").